XGBoost 的设置有三种参数:一般参数,提升参数和学习参数。

  • 一般参数 取决于提升器,通常是树或线性模型
  • 提升参数 取决于选择的提升器的相关参数
  • 学习参数 取决于指定学习任务和相应的学习目标

一般参数 (general parameters)

  • booster:选择提升器,默认是 tree
  • silent:是否打印信息,默认是 0 不打印
  • nthread:线程数,默认为最大可用线程数
  • num_pbuffer:缓冲区大小,默认为训练实例的数量
  • num_feature:特征纬度,默认为特征的最高纬度

提升参数 (booster parameters)

  • eta:学习率,范围 [0, 1],默认为 0.3。该参数越小,计算速度越慢;该参数越大,有可能无法收敛
  • gamma:控制叶子个数的参数,范围 [0, +∞),默认为 0。该参数越大,越不容易过拟合
  • max_depth:每颗树的最大深度,范围 [0, +∞),默认为 6。该参数越大,越容易过拟合
  • min_child_weight:每个叶子里面的最小权重和,范围 [0, +∞),默认为 1。该参数越大,越不容易过拟合
  • subsample:样本采样比率,范围 (0, 1],默认为 1。如果取 0.5 代表随机用 50% 的样本集用来训练
  • colsample_bytree:列采样比率,范围 (0, 1],默认为 1。对每棵树的生成用的特征进行列采样,类似于随机森林的列采样
  • lambda:L2 正则化参数,范围 [0, +∞),默认为 1。该参数越大,越不容易过拟合。
  • alpha:L1 正则化参数,范围 [0, +∞),默认为 0。该参数越大,越不容易过拟合。
  • scale_pos_weight:控制正反类的平衡参数,范围 [0, +∞),默认为 1。该参数通常设为“反类的总和/正类的总和”

学习参数 (learning parameters)

  • objective:损失函数,默认为 linear。其他常见类型有:
  • reg:logistic – 二分类
  • binary:logistic – 二分类概率
  • multi:softmax –多分类
  • multi:softprob – 多分类概率
  • rank:pairwise – 排序
  • base_score:预测分数,默认为 0.5。最初每个样例的预测分数。
  • eval_metric评估指标。该指标用在验证集上,比如回归任务默认的是 rmse;分类任务默认为 error;排序任务默认为 map。其他常见类型有:
  • rmse – root mean square error
  • mae – mean absolute error
  • logloss – negative log-likelihood
  • error –binary classification error rate
  • merror – multiclass classification error rate
  • mlogloss – multiclass logloss
  • auc – area under the curve
  • map – mean average precision
  • seed:随机种子,默认为 0,用于产生可复现的结果