您的位置:首页 > 其它

理解GBDT算法(二)——基于残差的版本

2015-03-30 16:18 169 查看
GBDT算法有两种描述思路,一个是基于残差的版本,一个是基于梯度gradient的版本。这篇我们先说说基于残差的版本。

前面一篇博文已经说了该版本的大致原理,请参考。

/article/8271804.html

这篇我们再总结一个几个注意点:

这个版本的核心思路:每个回归树学习前面树的残差,并且用shrinkage把学习到的结果大步变小步,不断迭代学习。其中的代价函数是常见的均方差。

其基本做法就是:先学习一个回归树,然后“真实值-预测值*shrinkage”求此时的残差,把这个残差作为目标值,学习下一个回归树,继续求残差……直到建立的回归树的数目达到一定要求或者残差能够容忍,停止学习。

我们知道,残差是预测值和目标值的差值,这个版本是把残差作为全局最优的绝对方向来学习。

这个版本更加适用于回归问题,线性和非线性的均可,而且在设定了阈值之后还可以有分类的功能。

当时该版本使用残差,很难处理纯回归以外的问题。版本二中使用梯度,只要建立的代价函数能够求导,那么就可以使用版本二的GBDT算法,例如LambdaMART学习排序算法。

Shrinkage和梯度下降法中学习步长alpha的关系。shrinkage设小了只会让学习更慢,设大了就等于没设,它适用于所有增量迭代求解问题;而Gradient的步长设小了容易陷入局部最优点,设大了容易不收敛。它仅用于用梯度下降求解。这两者其实没太大关系。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: