Xgboost
    K颗树
    GBDT-Xgboost-LightGBM - 图1
    目标函数
    GBDT-Xgboost-LightGBM - 图2

    Xgboost 和GBDT
    (1)GBDT是机器学习算法,XGBoost是该算法的工程实现。

    (2) 正则项:
    在使用CART作为基分类器时,XGBoost显式地加入了正则项来控制模型的复杂度,有利于防止过拟合,从而提高模型的泛化能力。

    (3) 导数信息:
    GBDT在模型训练时只使用了代价函数的一阶导数信息,XGBoost对代价函数进行二阶泰勒展开,可以同时使用一阶和二阶导数。

    (4) 基分类器:
    传统的GBDT采用CART作为基分类器,XGBoost支持多种类型的基分类器,比如线性分类器。

    (5) 子采样:
    传统的GBDT在每轮迭代时使用全部的数据,XGBoost则采用了与随机森林相似的策略,支持对数据进行采样。

    (6) 缺失值处理:
    传统GBDT没有设计对缺失值进行处理,XGBoost能够自动学习出缺失值的处理策略。

    (7) 并行化:
    传统GBDT没有进行并行化设计,注意不是tree维度的并行,而是特征维度的并行。XGBoost预先将每个特征按特征值排好序,存储为块结构,分裂结点时可以采用多线程并行查找每个特征的最佳分割点,极大提升训练速度。