AdaBoost简单总结

摘要:

继前面的gbdt,xgboost,这里是关于另外一个很有名的boosting算法,Adaboost,Ada是Adaptive的缩写(此外,有一种优化算法adagrad,自适应梯度下降也是用的adaptive缩写)。
同时由于网上对Adaboost的介绍的资料也很充足。在李航《统计学习方法》上面也有一个实际演算的例子。周志华《西瓜书》也对adaboost作了比较清晰的分析,所这里只是简单总结一下要点。

核心:

AdaBoost也是一类boosting的算法,既然是boosting算法所以核心也是符合这样一个训练过程:在训练第n个分类器时,会利用前n-1个分类器的结果。具体来说在Adaboost里面是通过前n-1个分类器的学习结果对第n个分类器即将学习的样本权重进行调整,最后预测的结果为将n个学习得到的分类器进行加权求和后经过符号函数的映射。

算法步骤:


输入:
1.训练集 D = ( x 1 , y 1 ) , ( x 1 , y 1 ) . . . ( x m , y m )
2.基学习算法 Γ
3.迭代次数 T
过程:
1.初始化样本权重 D 1 ( w ) = { w 11 , w 12 , w 13 . . . . w 1 m } , w 1 i = 1 m
2. f o r   t = 1 , 2 , 3... T   d o :
3.           h t = Γ ( D , D t ) (利用基学习算法拟合 D t 权重下的数据集 D )
4.           ϵ = P x D t ( h t ( x ) ! = f ( x ) ) (计算分类错误率,错误样本数/总样本数)
5.           α t = 1 2 l n ( 1 ϵ ϵ ) (计算当前分类器的权重,对数比率。比率是正确率/错误率)
6.           w 2 i = 1 Z t w t i e y i α t h t ( x i ) ,其中规范因子 Z t = i w t i e y i α t h t ( x i )
7. e n d   f o r
输出:
1. y i = s i g n ( t T α t h t ( x i ) )


要点小结:

1.adaboost的两个权重值

从上面的算法流程上看,adaboost的关键是计算两个权重值。第一个是样本的权重值,第二个是第n个分类器的权重值。
样本的权重值除第一个分类器初始化为了 1 m 外,其余都是利用规范因子×样本加权的指数损失数值。规范因子其实就是所有样本的加权指数损失值的和。而所谓的加权指数损失值就是: w t i e y i α t h t ( x i ) ,其实就是样本的权重×样本在当前模型下的指数损失值

第二个权重就是每个分类器的权重,其直接由一个对数比率给出,比率是正确率与错误率的比值。

2.adaboost基本分类器选择树模型

当adaboost的基本分类器选择树模型时,需要特别注意的是,此时使用的树是分类树!这里区别于gbdt和xgboost。gbdt和xgboost使用的树是回归树。

猜你喜欢

转载自blog.csdn.net/qq_22238533/article/details/79539972
今日推荐