①XGBoost损失函数是误差部分是二阶泰勒展开,GBDT 是一阶泰勒展开。因此损失函数近似的更精准。
②XGBoost目标函数中添加了正则项(L1、L2正则项),可以有效的防止过拟合
③XGBoost可以自定义目标函数objective,因此更加灵活
④XGBoost可以自定义评估指标eval_metric
⑤XGBoost除了可以进行样本抽样,还实现了特征抽样
四个随机抽样特征的参数中(subsample–控制生成每棵树的随机抽样样本比例、colsample_bytree–每次生成树时,随机抽样特征的比例、colsample_bylevel–每次生成树的一层时,随机抽样特征的比例、colsample_bynode–每次生成一个叶子节点时,随机抽样特征的比例),前三个比较常用。在建立树时对特征进行抽样其实是决策树和随机森林中比较常见的 一种方法,但是在XGBoost之前,这种方法并没有被使用到boosting算法当中过。Boosting算法一直以抽取样本 (横向抽样)来调整模型过拟合,而实践证明其实纵向抽样(抽取特征)也能够防止过拟合。
⑥XGBoost实现了并行化处理 :
如何并行化:XGBoost的并行不是tree粒度的并行,XGBoost也是一次迭代完成才能进行下一次迭代的(第t次迭代的代价函数里 面包含了前面t-1次迭代的预测值)。 XGBoost的并行是在特征粒度上的。我们知道,决策树的学习最耗时的一个步骤就是对特征的值进行排序(因为要 确定最佳分割点)。XGBoost在训练之前,
XGBoost VS GBDT (二者的区别)
最新推荐文章于 2025-04-07 21:22:19 发布