博客园有位前辈总结得很清晰有条理,借鉴一下:https://www.cnblogs.com/pinard/p/6133937.html
简单把里面我自己要备忘的要点概括一下:
1)基本原理:Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2.,如此重复进行,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。
2)算法要点大纲:
1)如何计算学习误差率e?
2) 如何得到弱学习器权重系数α?
3)如何更新样本权重D?
4) 使用何种结合策略?
只要是boosting大家族的算法,都要解决这4个问题。
3)算法流程:
这里我们对AdaBoost二元分类问题算法流程做一个总结。
输入为样本集T={(x,y1),(x2,y2),…(xm,ym)},输出为{-1, +1},弱分类器算法, 弱分类器迭代次数K。
输出为最终的强分类器f(x)
1) 初始化样本集权重为
2) 对于k=1,2,…K:
a) 使用具有权重Dk的样本集来训练数据,得到弱分类器Gk(x)
b)计算Gk(x)的分类误差率
c) 计算弱分类器的系数
d) 更新样本集的权重分布
3) 构建最终分类器。
4)算法总结:
理论上任何学习器都可以用于Adaboost.但一般来说,使用最广泛的Adaboost弱学习器是决策树和神经网络。对于决策树,Adaboost分类用了CART分类树,而Adaboost回归用了CART回归树。
这里对Adaboost算法的优缺点做一个总结。
Adaboost的主要优点有:
1)Adaboost作为分类器时,分类精度很高
2)在Adaboost的框架下,可以使用各种回归分类模型来构建弱学习器,非常灵活。
3)作为简单的二元分类器时,构造简单,结果可理解。
4)不容易发生过拟合
Adaboost的主要缺点有:
1)对异常样本敏感,异常样本在迭代中可能会获得较高的权重,影响最终的强学习器的预测准确性。