Boosting
2018-10-19 本文已影响3人
0过把火0
序
boosting是集成学习中的一个大家族,本次记录boosting的相关概念以及与bagging的区别。
boosting思想
Boosting是一族可以将若学习器提升为强学习器的算法,代表算法为AdaBoost。该算法的工作机制:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器。如此反复进行,直至学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。
boosting与bagging
1、样本选取方式
bagging是有放回地均匀采样,从原始训练集中选取的子集之间是相互独立的。
boosting:每一轮的训练集不变,只是训练集中的每个样例在分类器中的权重发生变化,而这个权值是根据上一轮分类结果进行调整的。
2、样例权重
bagging:均匀采样,样例权重相同
boosting:根据错误率不断调整样例的权重,错误率越大,权重越大。
3、预测函数
bagging:所有预测函数的权重相同
boosting:每个弱分类器具有不同的权重,分类误差小的分类器会有更大的权重(因为要在最后的结合中起更大的作用)
4、并行计算
bagging:各个预测函数可以并行生成
boosting:各个预测函数顺序生成,因为后一个学习器的参数需要前一个模型的结果。
boosting与bagging的各自适用场景
- 特征维度
特征维度过大时,bagging(特指RF)优于boosting(特指adaboost),但是更准确来讲,作为梯度提升树的变种xgb和lgb当然也具备列采样甚至更好的算法来应对这种情况,这里只说传统意义下的bagging与boosting要如何选择。 - 数据量
数据量过大情况下,优先使用bagging,因为bagging的树的生长过程是并行的,而boosting是串行。 - 模型鲁棒性
若训练集较小,此时使用boosting训练如果参数控制不好容易过拟合,因为boosting本身是一个关注降低模型偏差的方法,而bagging是降低模型方差的方法,因为bagging的各种样本及属性的随机扰动策略使得模型会鲁棒性较好,但是当然我们需要关注基模型的偏差。 - 数据量适中,维度大小适中的情况下
优先选用boosting,因为boosting的精度更高一些,因为其对各个样本是给予相关权重的,而不像bagging是均匀看待和抽样。 - 噪声点
Boosting算法对噪声异常敏感,从偏差与方差间的权衡来看,如果数据是嘈杂的,Boosting算法可能会呈现出较高的模型方差。然而在其他情况下,Boosting算法往往能够取得较好的效果。