标签(空格分隔): ML
注:本文假设读者已经有了AdaBoost和GBDT的背景知识。
看到网上关于AdaBoost和GBDT资料都不少,可是鲜有资料介绍他们联系,刚好之前有看过,最近复习到此,觉得有所收获,所以记录下来。此为读书笔记,若有错误,请予纠正。
前情概要:涉及公式较多,如要阅读,请提前找一个安静场所。
转载请标明出处:http://blog.csdn.net/wuzqChom/article/details/69487847
本篇文章分为两部分,第二部分:http://blog.csdn.net/wuzqChom/article/details/69487888
另一个角度看AdaBoost
我们已经知道AdaBoost每一次的样本的权重更新公式如下:
♣t=1−εtεt−−−−√ (更新权值公式的推导可见周志华《机器学习》p175),只需要这是最优的更新因子就行了,推导这里略过。
Ut+1n 为第 t+1 轮第 n 个样本的权重。
AdaBoost最终的学习的分类器为
G(x)=sign(∑Tt=1αtgt(x))
公式的符号说明如下:
T
为投票分类器的个数,即总共有多少棵决策树
gt(x)
为第
t
个分类器(决策树)的学习到的结果,
sign为符号函数
这里只是利用
αt=ln♣t
做了一个小小的变换,
yn
是
xn
样本的真实label,
gt(xn)
为训练出分类器得到的label,若同号则降低该样本的权重否则增大错误样本的权重使得分类器下一轮尽可能分对。
还记得我们的前面的大分类器
G(x)
取符号函数钱的式子。
换个角度考虑
G(x)=sign(∑Tt=1αtwigt(x)ϕisn)
得到,
UT+1n∝exp(−ynsn)
把
w
看成是权重,
margin=yn(wTϕ(xn)+b)||w||
所以边界当然是希望是正的并且越大越好,这也显示了AdaBoost出来的可视化图形其边界和SVM很相似。
所以现在的优化目标变成了
最大化 ynsn⇔ 最小化 exp(−ynsn)⇔ 最小化 UT+1n
所以可以认为AdaBoost的优化目标为减少 ∑Nn=1Utn ,这也是很好理解的AdaBoost想要训练样本尽量正确那么就会降低其权值,从实验情况来看,也确实有这个性质。
如果说上面这种推导方式比较难以理解,那么我们再从另一个角度看看:
假设 Zt=∑Nn=1Utn ,为第t次迭代的权重之和。那么 Zt 和 Zt−1 的关系如下:
Zt=Zt−1εtexp(αt)+Zt−1(1−εt)exp(−αt)
什么意思呢?
εt 是我们的分类器的错误率, ♣t=exp(αt) 把权重,即错误的权重乘上 ♣t ,正确的权重除以 ♣t 。第一部分就是所有错误样本更新后的权重之和,第二部分为所有错正确样本更新后的权重之和。和上面的权重更新公式是一致的。这个式子清楚之后我们把 αt 代入:
Zt=Zt−1εtexp(αt)+Zt−1(1−εt)exp(−αt)=Zt−1εt(1−εt)εt−−−−−−−√+Zt−1(1−εt)εt1−εt−−−−−−√)=2Zt−1εt−ε2t−−−−−−√
所以 εt−ε2t−−−−−−√ 在 εt=0.5 时可以取得最大值,由于 0<εt<0.5 ,所以 Zt<Zt−1 。所以从第二个角度说明了Adaboost的可以使得样本的权重之和不断减小。
于是,我么就有了新的目标函数:
∑Nn=1UT+1n=1N∑Nn=1exp(−yn∑Tt=1αtgt(xn))
走了那么久,别忘了为什么出发,到现在还没有见到GBDT?有了上面这个式子,GBDT马上出场。请见下一部分。
参考资料:
林轩田. 机器学习课程技法部分 Lecture 11.
李宏毅. machine learning course Ensemble.