最近在做集成学习的时候,对Adaboost非常感兴趣,就自己复现了这个程序。
首先提升方法是基于这样的一个思想:对于一个复杂的任务来说,通将多个专家的判断进行适当的综合所得到的判断,这样得到的结果会比单个专家的判断要好。
Adaboost做法的核心问题,是通过提高前一轮分类器分类错误的样本的权值,降低分类分类正确的样本权值,对于那些没有本分类正确的样本会得到后面分类器更多的关注。然后可以产生很多的弱分类器,通过多数加权投票组合这些弱分类器,加大误差率小的分类器,减少误差率大的分类器,使其在表决中起到较少的作用。
Adaboost算法流程:
假设给定一个二分类的训练数据集
在这里x 代表输入的样例,y代表样例所属的类别空间。
在这里,Adaboost输入的是带标签的样例空间,输出的是最终的学习器。
(1) 初始化训练数据的权值分布。