其他分享
首页 > 其他分享> > xgboost 原理补充说明

xgboost 原理补充说明

作者:互联网

1. 树该怎么长

很有意思的一个事是,我们从头到尾了解了xgboost如何优化、如何计算,但树到底长啥样,我们却一直没看到。很显然,一棵树的生成是由一个节点一分为二,然后不断分裂最终形成为整棵树。那么树怎么分裂的就成为了接下来我们要探讨的关键。对于一个叶子节点如何进行分裂,XGBoost作者在其原始论文中给出了一种分裂节点的方法:枚举所有不同树结构的贪心法

不断地枚举不同树的结构,然后利用打分函数来寻找出一个最优结构的树,接着加入到模型中,不断重复这样的操作。这个寻找的过程使用的就是贪心算法。选择一个feature分裂,计算loss function最小值,然后再选一个feature分裂,又得到一个loss function最小值,你枚举完,找一个效果最好的,把树给分裂,就得到了小树苗

总而言之,XGBoost使用了和CART回归树一样的想法,利用贪婪算法,遍历所有特征的所有特征划分点,不同的是使用的目标函数不一样。具体做法就是分裂后的目标函数值比单子叶子节点的目标函数的增益,同时为了限制树生长过深,还加了个阈值,只有当增益大于该阈值才进行分裂。从而继续分裂,形成一棵树,再形成一棵树,每次在上一次的预测基础上取最优进一步分裂/建树。

 

2、如何停止树的循环生成

凡是这种循环迭代的方式必定有停止条件,什么时候停止呢?简言之,设置树的最大深度、当样本权重和小于设定阈值时停止生长以防止过拟合。具体而言,则

 

3、XGBoost与GBDT有什么不同

除了算法上与传统的GBDT有一些不同外,XGBoost还在工程实现上做了大量的优化。总的来说,两者之间的区别和联系可以总结成以下几个方面。

 

4、为什么XGBoost要用泰勒二阶展开,优势在哪里?

 

5、XGBOOST为什么可以并行训练?

 

6、XGBOOST为什么快?

 

7、xgboost防止过拟合的方法

xgboost在设计之初,为了防止过拟合就采取了很多的优化,具体如下:

 

8、xgboost如何处理缺失值

xgboost模型的一个优点就是允许存在缺失值,对缺失值的处理如下:

文章参考:https://www.pianshen.com/article/30521719325/

标签:XGBoost,函数,补充,xgboost,特征,分裂,原理,block
来源: https://www.cnblogs.com/cgmcoding/p/14536356.html