【机器学习基础】决策树及其ensemble方法(RF, LGBM, Xgboost, GBDT, 梯度提升boosting)
1. 关系
2. Boostrap
Boostrap是一种通过有放回的抽样方式生成更多样本集,从而达到扩大样本集,来更好研究样本的目的。
3. Bagging
3.1 Baggin定义
Bagging通过boostrap的方式生成更多样本集,在每个样本集的样本上使用学习器进行学习,最终投票得出最终结果。
3.2 随机森林(RandomForest)
RF就是在Bagging上使用决策树,只不过新加入一个特色,即用boostrap取样本时不仅随机抽样,还限定了特征的数量,丰富了森林里的数目种类。
4. Boosting
4.1 Boosting定义
Boosting(Adaboost)是一种用来提高弱分类算法准确度的方法,在这个系列里每个学习器都是针对对上一个学习器不足的补充(!!!重点!!!),然后以一定的方式将他们组合成一个预测函数。Boosting是一种提高任意给定学习算法准确度的方法。
与RF不同的是:RF是随机生成新树的,Boosting每一个新的学习器都是针对性提升上一棵树不足的。RF每棵树对最终结果影响相同,Boosting根据使用方法不同,投票比例也不同。
投票比例和新树的选择详细看公式推导。
4.2 Adaboost
Adaboost的主要思想是集合多个模型形成加法模型进行预测,在添加一个新模型的时候需要考虑两个问题:如果选择最优的模型?新加入的模型的权重设置?
设定总模型为
G
(
x
)
G(x)
G(x),第m轮新加入的模型为
G
m
(
x
)
G_m(x)
Gm(x)。
- 如何选择最优的模型?
使用上一轮的训练样本的权重,比较多个基学习器的误差,选择误差较小的模型作为加入的最优的模型。
其中,这一轮的训练样本的权重 w m , i w_{m,i} wm,i是根据 w m − 1 , i w_{m-1,}i wm−1,i和 y i ∗ G m ( x i ) y_i * G_m(x_i) yi∗Gm(xi)计算决定的。第一轮训练样本的初始权重是 1 N \frac{1}{N} N1。 - 新加入的模型的权重设置?
计算在 G m ( x ) G_m(x) Gm(x)基础上的残差 e m e_m em(这里是与Gradient Boosting的区别),则新加入的模型权重是
α m = 1 2 ∗ l o g ( 1 − e m e m ) \alpha_m = \frac{1}{2} * log(\frac{1 - e_m}{e_m}) αm=21∗log(em1−em)
解决上述两个问题之后,由于Boosting的本质是加法模型,所以最后得到的总模型是
G ( x ) = s i g n ( ∑ m = 1 M α m ∗ G m ( x ) ) G(x) = sign(\sum^M_{m=1} \alpha_m * G_m(x)) G(x)=sign(m=1∑Mαm∗Gm(x))
4.3 Gradient Boosting
不同于Adaboost,gradient boosting每一次的计算都是为了减少上一次学习器的残差,从而在残差减少梯度方向上建立新的模型。gradient boosting在选择最优模型的时候,不是直接迭代计算,而是计算残差函数,然后对残差进行拟合出一个回归树(如果基模型是树模型),得到需要新加入的模型。