gbdt为什么需要泰勒公式展开进行节点分裂计算

  统计/机器学习    浏览次数:609        分享
0

在看gbdt、xgboost原理介绍时,经常可以看到从原始的cost function推导到一个经过泰勒公式展开的公式,最终形态是这个样子:

文章来源:https://cloud.tencent.com/developer/article/1005611。然后根据这个公式计算哪种feature split能带来最大的cost减少。

但我的问题是,为什么需要推导到这种形态才计算cost的变化呢?原始的cost简单明了:

就是直接带入每个data就可以得到一个cost了,也可以对每种feature split进行计算。

第一个公式的意义何在?

 

coolmich   2019-04-26 23:20



   2个回答 
1

1.对于regression的square loss,只有二阶导数,你给的两个公式相等,不需要再讨论。

2.对于logistic regression的logistic-loss,两个公式不同:

2.1, 原始loss计算量更大,二阶近似计算量小,还有分割点的近似计算。

2.2 二阶近似解更稳定。

xgboost论文参考论文[12]里讲到用原始loss,存在numerically unstable问题,用二阶近似loss得到的每棵树鲁棒性更强,结果更稳定。

wiki中关于Gentle AdaBoost 和AdaBoost的区别是:

我理解是,本来每棵树学习的是残差。如果是贪婪的学习“准确”的残差,会存在“Z”字型的学习曲线,步长过大,残差的符号会变化,残差会振荡减小,收敛更慢。loss的二阶近似,相当于用牛顿法循环减小残差,(一棵树是一个循环),类似加了正则项,减小了残差符号振荡的可能性。

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

Zealing   2019-04-28 10:01

0

楼主先区分一下,gbdt用不到二阶导的,xgb在此做了修改之后用的二阶导

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

tianjiayang0711   2019-04-29 13:37



  相关主题

决策树是如何得到量化的概率,不只是0或1的标签?   2回答

决策回归树   2回答

剪枝是什么意思   1回答

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

python sklean中的决策树是用的哪一种决策树算法?   2回答

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

决策树怎么做增量学习或者online学习?   1回答

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

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

怎么得到randomforestregressor里每棵树的预测结果?   1回答

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

随机森林警告:A column-vector y was passed when a 1d array was expected   1回答



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

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

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

我们谢绝答非所问。

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

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