AdaBoost
AdaBoost是将弱学习器提升为强学习器的算法,首先从初始训练集训练一个基学习器,再根据基学习器的表现对样本分布进行调整,基于调整后的样本分布训练下一个学习器,下一个基学习器会更多的关注先前学习器做错的样本。如此重复进行,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。
AdaBoost算法模型之加性模型
通过最小化指数损失函数来进行模型求解
其中是真实函数,
为什么可以用指数损失函数代替原本分类任务中的0/1损失函数
上式意味着达到了最优贝叶斯错误率,换言之,若指数损失函数最小,则分类错误率也将最小化。
由于这个替代函数有更好的数学性质,例如它是连续可微函数,因此,我们用它代替0/1损失函数作为优化目标。
在AdaBoost算法中,第一个学习器是通过直接将基学习器算法用于初始数据分布而得;此后迭代地生成
和
,当基学习器
基于分布
产生后,该分类器的权重
应使得
最小化指数损失函数。
其中
考虑指数损失函数的倒数
令上式为零得
AdaBoost算法在获得之后样本分布将进行调整,使下一轮的基学习器能纠正
的一些错误。理想的
能纠正
的全部错误,即最小化
得到理想的基学习器为
由此可见。理想的在分布
下最小化分类误差,因此,弱分类器将基于
来训练,且针对
的分类误差应小于0.5.
样本分布更新公式:
从偏差-方差的角度来看,boosting主要关注降低偏差,因此boosting能基于泛化性能相当弱的学习器构建出很强的学习器.