小白也能看懂的Gradient Boosting的简单理解

近期学到这个,整理了一下笔记发上来~

小建议:
先理解信息熵、决策树、Adaboost以及机器学习基础,这样学起来更容易懂~

简单理解

我们知道,ensemble learning(可以理解为“组学习”)分为bagging和boosting。

首先,我们从对Gradient Boosting的简单理解开始~(敲黑板~重点关注下Residual)

我们先从一个示例数据集(来源于Josh Starmer的视频)开始,如下所示:
身高Height,喜欢的颜色Favorite Color以及性别Gender均为输入变量(理解为x),体重Weight是预测目标(即为y)。

Height (m) Favorite Color Gender Weight (kg) Residual
1.6 Blue Male 88 16.8
1.6 Green Female 76 4.8
1.5 Blue Female 56 -15.2
1.8 Red Male 73 1.8
1.5 Green Male 77 5.8
1.4 Blue Female 57 -14.2
这里我们暂时只考虑四个叶子节点的情况(实际情况常常考虑8-32个节点),多节点的思路跟这个是类似的。于是我们得到了图二中的“误差树”,将第一和第三个叶节点计算平均值得到图三的“误差树”。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
先从体重入手,这里我们利用平均值作为我们的预测值,计算得到平均体重为71.2kg。然后我们计算参数Residual的值:

Residual = 观测值 – 预测值(如16.8 = 88 – 71.2)

观测值是指数据表中的各行的体重(88、76 …),预测值就是我们上面计算得到的71.2。逐个代入计算,我们得到了表格最右侧的Residual列。

但是!这样计算的结果虽然偏置较低,但是方差可能会很高。咋办?
解决的办法是——加入一个学习率:

第二个Residual(也称Pseudo Residual) = 观测值 - (平均体重 + 学习率 * 第一个误差树)

第二个Residual = 观测值 - (平均体重 + 学习率 * 第二个误差树)
… …

扫描二维码关注公众号,回复: 9027961 查看本文章

设置学习率为0.1,于是我们得到:

Residual Residual2 Residual3
16.8 15.1 13.6
4.8 4.3 3.9
-15.2 -13.7 -12.4
1.8 1.4 1.1
5.8 5.4 5.1
-14.2 -12.7 -11.4

(Residual3的第一个 = 88 -(71.2 + 0.1 * 16.8)+(0.1 * 15.1)= 13.6)

大家可以看出,Gradient boosting其实就是用我们熟悉的梯度下降(泰勒一阶展开)的思路求解预测函数的。
例如,在线性回归里面:

第二个参数 = 第一个参数 + 参数增量

类似的,在Gradient Boosting里面:

第二个函数 = 第一个函数 + 函数增量

最终函数等于每次迭代的增量的累加和。而这里面的增量(residual),就是一个个的弱分类器。

总结

Gradient Boosting与梯度下降类似,通过迭代更新。不同的是,梯度下降是基于参数的更新,而它是基于函数的更新,最终函数的增量叠加可以理解为很多弱分类器的叠加。

Reference

https://www.youtube.com/watch?v=3CC4N4z3GJc
https://www.youtube.com/watch?v=ErDgauqnTHk
https://www.bilibili.com/video/av70439977from=search&seid=10587792174714988540

发布了4 篇原创文章 · 获赞 1 · 访问量 157

猜你喜欢

转载自blog.csdn.net/SophisticatedWolf/article/details/104191660