摘要:
继前面的gbdt,xgboost,这里是关于另外一个很有名的boosting算法,Adaboost,Ada是Adaptive的缩写(此外,有一种优化算法adagrad,自适应梯度下降也是用的adaptive缩写)。
同时由于网上对Adaboost的介绍的资料也很充足。在李航《统计学习方法》上面也有一个实际演算的例子。周志华《西瓜书》也对adaboost作了比较清晰的分析,所这里只是简单总结一下要点。
核心:
AdaBoost也是一类boosting的算法,既然是boosting算法所以核心也是符合这样一个训练过程:在训练第n个分类器时,会利用前n-1个分类器的结果。具体来说在Adaboost里面是通过前n-1个分类器的学习结果对第n个分类器即将学习的样本权重进行调整,最后预测的结果为将n个学习得到的分类器进行加权求和后经过符号函数的映射。
算法步骤:
输入:
1.训练集
2.基学习算法
3.迭代次数
过程:
1.初始化样本权重
2.
3.
(利用基学习算法拟合
权重下的数据集
)
4.
(计算分类错误率,错误样本数/总样本数)
5.
(计算当前分类器的权重,对数比率。比率是正确率/错误率)
6.
,其中规范因子
7.
输出:
1.
要点小结:
1.adaboost的两个权重值
从上面的算法流程上看,adaboost的关键是计算两个权重值。第一个是样本的权重值,第二个是第n个分类器的权重值。
样本的权重值除第一个分类器初始化为了
外,其余都是利用规范因子×样本加权的指数损失数值。规范因子其实就是所有样本的加权指数损失值的和。而所谓的加权指数损失值就是:
,其实就是样本的权重×样本在当前模型下的指数损失值
第二个权重就是每个分类器的权重,其直接由一个对数比率给出,比率是正确率与错误率的比值。
2.adaboost基本分类器选择树模型
当adaboost的基本分类器选择树模型时,需要特别注意的是,此时使用的树是分类树!这里区别于gbdt和xgboost。gbdt和xgboost使用的树是回归树。