GBDT的损失函数为绝对值时,负梯度为-1或1,每棵树去拟合-1吗?还是仍拟合残差?
绝对值损失函数下,负梯度为一个符号函数
但是根据推导
f m-1 为前m-1棵树模型之和 ,T 为第m棵树,L 表示损失函数
r代表残差,这里看到要让Loss变小,第m棵树应该去拟合残差。
所以 负梯度和 这个推导矛盾了啊。。。。
2个回答
我的理解是:
当损失函数为MAE的时候,梯度就只有3种可能,-1,0,+1。
我们用梯度作为训练样本,但是会重新用残差拟合一遍,所以每棵树拟合出来的结果依然是残差。
SofaSofa数据科学社区DS面试题库 DS面经
那一般损失函数 都用残差去拟合,,这个负梯度 提出来有啥意义啊- - 。
-
奶瓶他哥
2019-03-06 12:34
1.类似Gradient Descent(GD), GBDT用 -gradient*step_size 逼近残差。负梯度正比于残差。其中step_size 可以是常数(原始GD),或二阶偏导的倒数(牛顿法),或用line search得到的当前最佳步长 。这里用L1norm Loss,二阶偏导为0,所以只能用常数或line search。参考这里。
2.对每个数据($x_i,y_i$)来说,$f_m(x_i)->-ag_i\in[-a,a]$,其中$a$是step size。
3.以固定step size a为例,对某棵树来说,当分类正确时,对最终输出$y_i$只贡献固定份额$a$,当分类错误时,也只惩罚固定份额$a$。比如$y_i=10,a=1$,起始点$y_i^0=0$,那么需要分类结果是$10+k$正确$k$错误才能拟合$y_i$。
你这个 已经是XGBoost 的推导了,
你的意思就是对负梯度前面再加个 常数权重 是这个意思吧。
-
奶瓶他哥
2019-03-06 12:36
GBDT的step size是用line search方法找出来的最佳步长,而不是设定的常数。
-
Zealing
2019-03-06 16:25