参考书籍:
周志华.机器学习 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
中训练分类器 |
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 的减小而增大,分类误差率越小的基本分类器在最终分类器中的作用最大。