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,用于产生可复现的结果