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

  统计/机器学习 监督式学习 损失函数    浏览次数:203        分享
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面经 问答 实战

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面经 问答 实战

Zealing   2019-03-05 14:26

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


  相关主题

关于knn算法中kd树的问题   1回答

Adaboost里的树有没有可能权重是负数?   1回答

决策树可以做多元分类吗?   1回答

决策树的深度和数据特征个数的关系   1回答

Extra Tree算法   1回答

决策树算法ID3,C4.5和CART的特点、异同?   3回答

python里实现一个简单的决策树   1回答

随机森林如何调参?   3回答

随机森林中增加树的数量对于偏差和方差的影响   2回答

Gradient tree boosting和random forest (随机森林) 有什么区别和联系   1回答

决策树剪枝有什么策略或者注意事项?   2回答

随机森林是如何计算测试样本的概率的?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!