Xgboost有哪些优点?

xgboost中的基学习器除了可以是CART(gbtree)也可以是线性分类器(gblinear)

主要优点

  • 正则化项​​​​​​​防止过拟合
  • xgboost不仅使用到了一阶导数,还使用二阶导数,损失更精确,还可以自定义损失
  • XGBoost的并行优化,XGBoost的并行是在特征粒度上的​​​​​​​
  • 考虑了训练数据为稀疏值的情况,可以为缺失值或者指定的值指定分支的默认方向,这能大大提升算法的效率
  • 支持列抽样,不仅能降低过拟合,还能减少计算​​​​​​​

具体原因:

(1). xgboost在目标函数中显示的加上了正则化项,基学习为CART时,正则化项与树的叶子节点的数量T和叶子节点的值有关。正则项里包含了树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和。从Bias-variance tradeoff角度来讲,正则项降低了模型的variance,使学习出来的模型更加简单,正则化项​​​​​​​防止过拟合。

(2). GB中使用Loss Function对f(x)的一阶导数计算出伪残差用于学习生成fm(x),xgboost不仅使用到了一阶导数,还使用二阶导数。第t次的loss:


对上式做二阶泰勒展开:g为一阶导数,h为二阶导数


(3)上面提到CART回归树中寻找最佳分割点的衡量标准是最小化均方差,XGBoost的并行优化,XGBoost的并行是在特征粒度上的,XGBoost预先对特征的值进行排序,然后保存为block结构,xgboost寻找分割点的标准是最大化,lamda,gama与正则化项相关


xgboost算法的步骤和GB基本相同,都是首先初始化为一个常数,gb是根据一阶导数ri,xgboost是根据一阶导数gi和二阶导数hi,迭代生成基学习器,相加更新学习器。

 4)xgboost考虑了训练数据为稀疏值的情况,可以为缺失值或者指定的值指定分支的默认方向,这能大大提升算法的效率

 5)列抽样。xgboost借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算,这也是xgboost异于传统gbdt的一个特性。

版权声明:本文为CSDN博主「alanjia163」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35290785/article/details/97564676

推荐阅读