当前位置 博文首页 > dastu的博客:xgboost与gdbt区别比较

    dastu的博客:xgboost与gdbt区别比较

    作者:[db:作者] 时间:2021-09-19 19:27

    1.从本质上看
    gbdt是机器学习算法的一种,xgboost是该算法的具体工程实现

    2.基分类器
    gbdt采用cart作为基分类器,而xgboost的基分类器可以是线性的

    3.防止过拟合
    xgboost在目标函数中显式的加入了正则化项来控制模型的复杂度

    4.数据的使用
    gbdt每轮迭代都使用全部数据,xgboost则可以对数据进行采用

    5.对缺失值处理
    XGBOOST可以自动学习出缺失值的分裂方向

    6.列抽样
    XGBOOST可以支持类似于随机森林的列抽样

    7.模型训练
    GBDT在训练模型时中使用了代价函数的一阶导数信息,而XGBOOST将代价函数进行了二次展开,使用了二阶导数的信息。

    8.并行方式
    两个模型从迭代上都不是并行的,因为同属于boosting,只能是串行的,但是从特征的粒度来看,xgboost可以实现并行。
    决策树在确定最佳分割点时,需要对特征的值进行排序。XGBoost在训练之前,预先对数据进行了排序,然后保存为block(块)结构,后面的迭代中重复地使?这个结构,?大减小计算量。这个block结构也使得并行成为了可能,在进行节点的分裂时,需要计算每个特征的增益,最终选增益最大的那个特征去做分裂,那么各个特征的增益计算就可以开多线程进行。

    以上都是本人通过各种方式学习后总结了两者的一些不同。

    cs
    下一篇:没有了