您的位置:首页 > 其它

机器学习原理 || 集成算法: Adaboost

2018-01-26 20:12 267 查看
参考书籍:

周志华.机器学习 P171

​李航.统计学习方法 P137

范明译.数据挖掘导论 P168

the element of statistical learning datamining .inference and prediction P337

Anintroduction to statitic learning P316

PRML P657



这里先介绍Adaboost

Adaboost:基于加性模型迭代式优化指数损失函数

1、思想:

先从初始训练集训练出一个基学习器

根据基学习器的表现对样本分布进行调整,将分错的样本的权重增大

基于调整后的样本分布来训练下一个基学习器

反复进行,训练T个学习器,采用结合策略进行预测

2、目标函数

最小化指数损失函数

Lexp(H│D)=E(x│D)e(−yH(x))

H(x)=ΣTt=1αtht(x)

Lexp(H│D)=E(x│D)e−yH(x)最小化损失函数
∂Lexp(H│D)∂H(x)=E(x│D)(e−yH(x)⋅(−y))令∂Lexp(H│D)∂H(x)=0
=−eH(x)P(y=1│x)+eH(x)P(y=−1│x)
H(x)=12lnP(y=1│x)P(y=−1│x)
sign(H(x))=sign(12lnP(y=1│x)P(y=−1│x)))
该指数函数是 0-1 损失函数的替代函数

3、步骤

输入:训练集D=(x1,y1),(x2,y2),…,(xn,yn);基学习算法;训练轮数T

输出:最终分类器

过程:

1.初始化样本权值分布 D1=(w11,…,w1i,…,w1n),w1i=1n,i=1,2,…,n
fort 1,2,…,T:
2. 基于分布Dt 从数据训练集D中训练分类器ht
3. 计算ht 在训练集上的分类误差率
et=P(ht(x)≠y)=Σni=1wtiI(ht(xi)≠yi)
if et<0.5 then break ( 或者采用重采样的方法)
4. 确定分类器ht 的权重
αt=12ln1−etet
5. 更新样本分布
Dt+1=(wt+1,1,…,wt+1,i,…,wt+1,n)
wt+1,i=wtiZte(−yiαtht(x),i=1,2,…,n
end for
构建分类器的线性组合:f(x)=ΣTt=1αtht(x)
最终分类器:H(x)=sign(ΣTt=1αtht(x))
注:

1、对无法接受带权样本的基学习算法,可通过重采样处理;即根据新的样本分布对训练集进行采样

2、每轮生成基学习器时,需满足基本条件: et<0.5

3、αt 与et 的关系:当et<0.5时,αt>0, αt 随et 的减小而增大,分类误差率越小的基本分类器在最终分类器中的作用最大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 机器学习