目录
1. Boosting原理
2. Adaboost
3. 前向分布算法
4. 梯度提升算法
4.1 GBDT
4.2 Xgboost
4.3 LightGBM
上一章讲了使用Bagging去优化模型,Bagging思想的实质是:通过Bootstrap 的方式对全样本数据集进行抽样得到抽样子集,对不同的子集使用同一种基本模型进行拟合,然后投票得出最终的预测。我们也从前面的探讨知道:Bagging主要通过降低方差的方式减少预测误差。
那么,本章介绍的Boosting是与Bagging截然不同的思想,Boosting方法是使用同一组数据集进行反复学习,得到一系列简单模型,然后组合这些模型构成一个预测性能十分强大的机器学习模型。显然,Boosting提高最终的预测效果是通过不断减少偏差的形式,与Bagging有着本质的不同。在Boosting这一大类方法中,主要介绍两类常用的Boosting方式:Adaptive Boosting (自适应增强)和 Gradient Boosting(梯度增强) ,以及它们的变体Xgboost、LightGBM。
"强可学习"和"弱可学习":
强可学习和弱可学习的错误率都小于1/2。
在PAC(概率近似正确)学习的框架下,强可学习和弱可学习是等价的。在学习中,如果已经发现了弱可学习算法,能否将他提升至强可学习算法。提升方法就是从弱学习算法出发,反复学习,得到一系列弱分类器(基本分类器),然后通过一定的形式去组合这些弱分类器构成一个强分类器。
大多数的Boosting方法都是通过改变训练数据集的概率分布(训练数据不同样本的权值),针对不同概率分布的数据调用弱分类算法学习一系列的弱分类器,组合形成强分类器。简单说:1)反复训练预测错误的“错题”样本;2)多个模型的综合判断比单个模型更准确。
对于Boosting方法来说,有两个问题需要给出答案:第一个是每一轮学习应该如何改变数据的概率分布,第二个是如何将各个弱分类器组合起来。
对于Adaboost来说,解决上述的两个问题的方式是:1. 提高那些被前一轮分类器错误分类的样本的权重,而降低那些被正确分类的样本的权重。这样一来,那些在上一轮分类器中没有得到正确分类的样本,由于其权重的增大而在后一轮的训练中“备受关注”。2. 各个弱分类器的组合是通过采取加权多数表决的方式,具体来说,加大分类错误率低的弱分类器的权重,因为这些分类器能更好地完成分类任务,而减小分类错误率较大的弱分类器的权重,使其在表决中起较小的作用。
Adaboost算法:
对于步骤(3),线性组合