XGBoost简介

XGBoost简介

  • XGBoost的全称是eXtreme Gradient Boosting,原理与GBDT相同
  • 它是经过优化的分布式梯度提升库,旨在高效、灵活且可移植
  • XGBoost是大规模并行boosting tree的工具,比GBDT更高效

XGBoost与GBDT的区别

  • 区别一:
    • XGBoost生成CART树考虑了树的复杂度,
    • GBDT未考虑,GBDT在树的剪枝步骤中考虑了树的复杂度。
  • 区别二:
    • XGBoost是拟合上一轮损失函数的二阶导展开,GBDT是拟合上一轮损失函数的一阶导展开,因此,XGBoost的准确性更高,且满足相同的训练效果,需要的迭代次数更少。
  • 区别三:
    • XGBoost与GBDT都是逐次迭代来提高模型性能,但是XGBoost在选取最佳切分点时可以开启多线程进行,大大提高了运行速度。

xgboost参数

  • n_estimators:梯度提升树的棵数,也就是拟合几次残差

  • learning rate:一般情况下,学习速率的值为0.1。但是,对于不同的问题,理想的学习速率有时候会在0.05到0.3之间波动。

  • 正则化参数

    • reg_alpha L1正则化系数
    • reg_lambda L2正则化系数
  • max_depth [default=6]

    • 用于设置树的最大深度
    • range: [1,∞]
  • subsample [default=1]
    • 表示观测的子样本的比率,将其设置为0.5意味着xgboost将随机抽取一半观测用于数的生长,这将有助于防止过拟合现象
    • range: (0,1]
  • min_child_weight [default=1]
    • 表示子树观测权重之和的最小值,如果树的生长时的某一步所生成的叶子结点,其观测权重之和小于min_child_weight,那么可以放弃该步生长,在线性回归模式中,这仅仅与每个结点所需的最小观测数相对应。该值越大,算法越保守
    • range: [0,∞]
  • colsample_bytree [default=1]
    • 表示用于构造每棵树时变量的子样本比率
    • range: (0,1]

你可能感兴趣的:(机器学习,自然语言处理)