GBDT的损失函数为绝对值时,每棵树去拟合梯度吗?还是仍拟合残差?

  统计/机器学习 监督式学习 损失函数    浏览次数:4871        分享
0

GBDT的损失函数为绝对值时,负梯度为-1或1,每棵树去拟合-1吗?还是仍拟合残差?

绝对值损失函数下,负梯度为一个符号函数

但是根据推导


f m-1 为前m-1棵树模型之和  ,T 为第m棵树,L 表示损失函数

r代表残差,这里看到要让Loss变小,第m棵树应该去拟合残差。

所以 负梯度和 这个推导矛盾了啊。。。。


 

奶瓶他哥   2019-03-04 18:15



   2个回答 
0

我的理解是:

当损失函数为MAE的时候,梯度就只有3种可能,-1,0,+1。

我们用梯度作为训练样本,但是会重新用残差拟合一遍,所以每棵树拟合出来的结果依然是残差。

SofaSofa数据科学社区DS面试题库 DS面经

LiShanfei   2019-03-05 11:59

那一般损失函数 都用残差去拟合,,这个负梯度 提出来有啥意义啊- - 。 - 奶瓶他哥   2019-03-06 12:34
0

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$。


SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2019-03-05 14:26

你这个 已经是XGBoost 的推导了, 你的意思就是对负梯度前面再加个 常数权重 是这个意思吧。 - 奶瓶他哥   2019-03-06 12:36
GBDT的step size是用line search方法找出来的最佳步长,而不是设定的常数。 - Zealing   2019-03-06 16:25


  相关讨论

如何理解GBDT里面“损失函数的负梯度在当前模型的值,可以作为残差的估计”?

GBDT做回归时,如果设定树的深度为2,那树的第一层是用残差计算方差还是用原来的Y计算方差?

GBDT做分类时,算出残差结果以后,以什么作为损失函数去判断在哪里分叉?

回归树是以什么标准来选特征的?

关于损失函数h(x), J(x), cost的概念问题

二元分类为什么不能用MSE做为损失函数?

怎么理解surrogate loss function代理损失函数?

logloss的取值范围是多少?一般好的分类器能达到多少?

Hamming Loss汉明损失的计算公式是什么?

python求logloss

  随便看看

tsne被忽视?tsne有什么缺点?

kNN算法有哪些缺点?

plt.show()之后matplotlib图像依然不展示

求多个torch tensor的平均值

线性回归需要满足哪些基本前提假设