课前甜点
现在年轻人工作压力都比较大,所以难免用一些饮料和小甜品来带走压力排出体外,当然也会多少影响身体健康。但是想起他排压功效我们难免会用一点。
coffee.jpg
提升树我们这里解释一下,我们知道所有模型都类似于一个函数来反应数据输入和输出之间的关系 ,在 GDBT 中我们可以将每颗决策树也可以看出函数 T 。
- 所产生的残差
- 这里的 和 做对比找到残差为 ,那么我们这里 要去拟合不是 y 而是 没有拟合上的那部分,也就是 所产出残差
- 所产生的残差为
只有大家把这个这个过程理解好了,从上面过程我们不难发现每一次生成树数据 x 没有发生变化而 y 发生了变化,每一次输入都是上一次的残差和 x 组合作为下一颗决策树的训练数据。
这里值得注意如果我们使用损失函数是平方损失,那么我们对观测值求梯度也就是等于求观察值的残差,这一点我们想验证一下???。如何我们损失函数不是平方差损失时,需要使用梯度来代替求残差方式来做损失函数。
-
加法模型
怎么理解什么是加法模型
上面过程大家想必已经很清楚了,我们可以通过不断增加 f(x) 到模型增,将所有 f(x) 求和得到新的估计值
这里暂时可以忽略 就和下面提升树模型是一样,其实 T(决策树)可以看成一个函数
-
损失函数
接下拉我们就可以定义损失函数,
我们可以将 替换为 这表示 h(x) 是由 M 分类器不断拟合上一次残差的函数所组成。我们接下就是今天重点也就是如何使用梯度来做这件事情
-
推导
- 初始化 我们初始化
-
定义损失函数 我们一共 M 树在梯度提升树中, 那么损失函数就是
-
转换
我们通过下面损失函数进行一阶泰勒展开,这里理解还有有点难度,希望大家停下来思考几分钟,细细品味如何实现泰勒展开
如何假设
条件成立前提下就有下面不等式成立
那么梯度提升树, 就是上一个损失函数的梯度即可,无需求具体决策树,求出梯度加进去就可以了。那么也就是我们可以一直去求梯度然后加上去就可以得到想要的模型。
我们现在用 然后倒入到上面式子
代表是一颗决策树,当我们输入 到这颗决策树后, 最后就会落到某一个叶子节点,那么如果假设决策树有 T 个叶节点,我们用 来表示每一个叶节点。那么现在我们可以将损失函数进一步进行变换
现在我们把求和带回到这个式子
在 m 损失函数中 是上一个决策树的值与当前损失函数没有关系可以看成固定值,与损失函数最小值没有关系。
最小时我们损失函数就达到最小值。上面是按样本进行求和
而这里是按决策树叶节点来进行求和, 表示落在同一 t 节点上的样本数,也就是将样本根据其落在决策树哪一个叶节点进行分类求和后,在去对所有叶节点进行进行求和来替换掉原有按样本进行求和。我们用 来进行替换上式得到下面式子
通过就可以进行划分,通过对 进行划分我们的两个叶节点然后分别计算 和 来计算有点类似信息增益。然后可以根据样本特征来分别计算划分找到 Gain 最大的情况来决定根据哪个特征进行分类。
缺点
并非是真的拟合残差,只是拟合梯度,如果使用平方损失时,拟合梯度就是拟合残差。
最后希望大家关注我们微信公众号
wechat.jpeg
网友评论