xgboost和gbdt的区别

 xgboost和gbdt的区别:

gbdt子树按SE分裂;

xgboost子树是泰勒展式一阶导、二阶导和正则项部分组成打分函数,用打分函数进行分裂。

gbdt叶子节点合并步长是可以和xgboost最优叶子节点参数相同的(如果树结构相同;且gbdt求叶子节点参数的求法和xgboost相同,是通过损失函数泰勒二阶展开,展开一共三项,第一项F_m-1和y的损失为常数,剩余两项就是一阶导和二阶导,一阶导加二阶导部分关于叶子节点值求导 = 0,求出最优叶子节点值;还有就是需要正则项也相同),差异就是有可能树结构不同,xgboost直接对损失函数进行优化,gbdt是用最小二乘拟合负梯度,但是合并最优步长,也在最优化损失函数,所以最大差异就体现在创建树结构的方式上,具体地,可以说是节点分裂方式上,xgb按上面说的打分函数分裂,gbdt按SE分裂。

xgboost在损失函数上加了正则项。

xgboost列抽样。

xgboost工程上有一些并行化实现。

xgboost对于最优切分点寻找有一些优化。


留言

熱門文章