GBDT为什么要用损失函数负梯度拟合损失,为什么不直接用预测值和真实值的差值来当残差呢?

GBDT每一轮都是拟合上一轮的残差,算法上原理是用损失函数的负梯度去拟合残差,但是我有个疑问想不通,为什么不直接用预测值和真实值的差值来当残差呢
关注者
37
被浏览
22,099
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

在一定程度上来说,你的想法确实是对的,但是你需要知道在GBDT算法之前还有一种算法叫做boosting tree,早期比较有名的adaboost就是其中之一。这种算法确实不是拟合负梯度的,确实是拟合残差的,但是这种算法一个局限就是只适用于几个损失函数,而GBDT却适用于可导的损失函数。这也就是为何目前主流的boosting算法都是基于梯度提升的,适用范围广泛。具体的boosting tree算法你可以参考esl这本书。