06 集成学习 - Boosting - GBDT算法原理、总结

05 集成学习 - Boosting - GBDT初探

十四、GBDT的构成

● GBDT由三部分构成:DT(Regression Decistion Tree-回归决策树)、GB(Gradient Boosting-梯度提升)、Shrinkage(衰减)
1、先构建回归决策树,然后用到提升的思想:ft(x) = ∑ ht(x);
2、梯度提升: 下一个模在拟合上一个模型的残差,其实就等价于在拟合上一个模型的梯度。
3、衰减: ft(x) = step × ∑ ht(x); 衰减指公式里的step值,上一章最后有详述。

● 由多棵决策树组成,所有树的结果累加起来就是最终结果。(上一章的例子中可以直观感受到这一点。)

● 迭代决策树和随机森林的区别:
1、随机森林使用抽取不同的样本,构建不同的子树。也就是说第m棵树的构建和前m-1棵树的结果是没有关系的。(所以人家可以同时构建所有的树)

2、迭代决策树在构建子树的时候,使用之前子树构建结果后,形成的残差作为输入数据,再构建下一个子树;然后最终预测的时候按照子树构建的顺序进行预测,并将预测结果相加。(而你要看前面人的脸色行事)

迭代决策树

十五、GBDT算法原理

1、 给定输入向量X和输出变量Y组成的若干训练样本(X1,Y1),(X2,Y2)...(Xn,Yn),目标是找到近似函数F(X),使得损失函数L(Y,F(X))的损失值最小。
其实机器学习这个领域,本质上都想达到这个目标。正如我在第一章里说的,我们尽可能想要找到一个模型,符合造物主公式。无论哪种机器学习的模型,我们都在追求损失函数最小。

2、 L损失函数一般采用最小二乘损失函数或者绝对值损失函数。
F(X)是常数。(参考第7步)
● 看左边最小二乘的公式,关于F(X)求偏导,得到F(X)-y 。F(X)是真实值y的均值的时候,该损失函数最小。
● 看右边的绝对值损失函数,当F(X)是中位数的时候损失最小。

最小二乘(左) 绝对值损失函数(右)

3、 最优解为:
比较最小二乘损失函数和绝对值损失函数,哪个更小就选哪个。

最优解

4、 假定F(X)是一组最优基函数 fi(X) 的加权和(即衰减的思想)

理解和的概念

原本14,16,24,26,一下子变成-1,1,-1,1,变化幅度太大了,所以加上缩放系数。

理解衰减的概念

5、用贪心算法的思想扩展得到 Fm(X),求解最优 f 。

贪心算法(相邻两步的解最优):在当前的情况下,求解下一步的最优解。当算法包含若干步的时候,贪心算法只能保证下一步的算法是最优解,而不能保证在整个求解的过程中获得全局最优解。

使用贪心算法考虑GBDT问题:每求一步基模型,都是当前步骤的最优情况。如下图所示:第m步的强模型= 第m-1的强模型 + 使得损失函数达到最小时候的对应的基模型: fm(Xi)

但这个基模型 fm(Xi)不能保证在未来的全局中它是最优的模型。

6、如果以贪心算法在每次选择最优基函数 f 时仍然困难,使用梯度下降法近似计算。

7、给定常数函数 F0(X) 第2步中提到的F(X)
即得损失函数L最小的时候,对应的yi和c,构成了常数函数 F0(X)

这个常数不是随便给的,比如当你选择使用最小二乘构建损失函数的时候,如果下图中的样本不是一个30岁,而是(14,16,24,26),那么我们预测的F(X)常数应该是均值,即F(X) = (14+16+24+26)/4 = 20。此时损失函数= (14-20)^2 + (16-20)^2 + (24-20)^2 + (26-20)^2 = 104。在相同标准下,如果这个损失函数值最小,那么用 F(X)=20作为常数作为这一步的基模型构建最优。此时yi和c分别为 (14,6) (16,4) (24,4) (26,6),下一步要预测的真实值(残差) = (6,4,4,6)

理解和的概念

8、根据梯度下降计算学习率
在第7步我们得到了F(X)的值,作为这一步的输入。
这里将损失函数对F(X)进行求导,在第2步中我们可以看到,当对最小二乘进行求导后,得到 |y-F(X)| 。这是针对一个样本求导,如果是所有的样本求导并求和,得到的是 ∑|y-F(X)| ,这就是最小二乘损失函数的导函数。

最小二乘(左) 绝对值损失函数(右)

这里的αim(第i个样本集的第m个模型对应的学习率) 就是下一步模型中的需要预测的真实值y,学习率αim可以近似看成是残差。(伪残差)

9、使用数据(xiim) (i=1……n )计算拟合残差找到一个CART回归树,得到第m棵树。
第m棵树是什么样的?

作为一个样本X,将X放入模型之后,最终会落到某个叶子节点中。这个叶子节点中对应了一个目标值。

左边 - 最优的单个叶子节点,决策树每次找到的都是一个常量。右边 - 第m棵树,公式含义:首先判断x是否属于叶子,属于返回1,不属于返回0。对于所有的leaf叶子,x最终只属于一个叶子。

左边 - 第m个基模型中第j个叶子节点的取值,右边 - 第m棵树基模型的表达方式

10、更新模型

十六、GBDT回归算法和分类算法的区别

1、两者唯一的区别就是选择不同的损失函数。
2、回归算法选择的损失函数一般是均方差(最小二乘)或者绝对值误差;而在分类算法中一般的损失函数选择对数函数来表示。

十七、GBDT scikit-learn相关参数

GBDT的代码和AdaBoosting类似,这里简单对其相关的参数进行介绍:
工作中对常用的参数如何选择会问得比较多。
比较关键的是n_estimators 和 learning_rate的设置。
当上面两个参数怎么调都调不好模型的时候,尝试使用subsample参数。

十八、GBDT总结

GBDT的优点如下:
1、可以处理连续值和离散值;
2、在相对少的调参情况下,模型的预测效果也会不错;
3、模型的鲁棒性比较强。

GBDT的缺点如下:
由于弱学习器之间存在关联关系,难以并行训练模型。

十九、Bagging、Boosting的区别

1、样本选择:Bagging算法是有放回的随机采样;Boosting算法是每一轮训练集长度不变,是训练集中的每个样例在分类器中的权重发生变化(Adaboost),而权重根据上一轮的分类结果进行调整;对于GBDT来说,目标值Y实际上发生了变化,基于梯度来确定新的目标Y。

2、样例权重:Bagging使用随机抽样,样例的权重相等;Boosting(Adaboost)根据错误率不断的调整样例的权重值,错误率越大则权重越大;

3、预测函数:Bagging所有预测模型的权重相等;Boosting(Adaboost)算法对于误差小的分类器具有更大的权重。

4、并行计算:Bagging算法可以并行生成各个基模型;Boosting理论上只能顺序生产,因为后一个模型需要前一个模型的结果;

5、Bagging是减少模型的variance(方差);Boosting是减少模型的Bias(偏度)。

6、Bagging里每个分类模型都是强分类器,因为降低的是方差,方差过高需要降低是过拟合;Boosting里每个分类模型都是弱分类器,因为降低的是偏度,偏度过高是欠拟合。

7、方差和偏差的问题:error = Bias + Variance

Bagging对样本重采样,对每一轮的采样数据集都训练一个模型,最后取平均。由于样本集的相似性和使用的同种模型,因此各个模型的具有相似的bias和variance;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容