常规参数
参数 | 参数描述 | 可选值 |
booster | 使用哪种增压器,可以是gbtree, gblinar或dart。Gbtree和dart采用基于树的模型,而gblinear采用线性函数 | ‘gbtree’、‘gblinar’、‘dart’,默认gbtree |
silent | 是否打印运行信息 | 0代表打印,1,默认0 |
nthread | 用于运行xgboost的并行线程数 | 默认最大数 |
num_pbuffer | 预测缓冲区的大小,通常设置为训练实例的数量。缓冲器用于保存最后一个助推步的预测结果 | xgboost会自动设置 |
num_feature | 用于增强的特征维度,设置为特征的最大维度 | xgboost会自动设置 |
用于Tree提升的参数
参数 | 参数描述 | 可选值 |
eta | 更新时采用步长收缩,防止过拟合。在每一个推进步骤后,我们可以直接得到新特性的权重。eta实际上缩小了特征权值使推进过程更加保守 | 默认0.3 |
gamma | 在树的叶子节点上做进一步分区所需的最小损失减少,越大,算法就越保守 | 默认0 |
max_depth | 树的最大深度,增加这个值可能会使模型更加复杂,进而导致过拟合 | 默认6 |
min_child_weight | 一个孩子所需的最小实例权重(hessian)之和。如果树分区步骤产生的叶子节点实例权重之和小于min_child_weight,则构建过程将放弃进一步分区。在线性回归模式中,这只是对应于每个节点中需要的最小实例数。越大,算法就越保守 | 默认1 |
max_delta_step | 我们允许每棵树的权重估计的最大增量步长,如果该值设置为0,则表示没有约束,如果将其设置为正值,则有助于使更新步骤更加保守,通常不需要这个参数,但当类别极度不平衡时,它可能有助于逻辑回归,将其设置为1-10可能有助于控制更新 | 默认0 |
subsample | 训练实例的子样本比率,将其设置为0.5意味着XGBoost随机收集了一半的数据实例来种生长树,这将防止过拟合 | 默认1 |
colsample | 构造每棵树时列的子样本比率 | 默认1 |
colsamole_bylevel | 在每层中,每个分割的列的子样本比率 | 默认1 |
alpha | L1正则化项权重,增加该值会使模型更加保守 | 默认0 |
lambda | L2正则化项权重,增加该值会使模型更加保守 | 默认0 |
tree_method | XGBoost中使用的树构造算法 auto :使用启发式选择更快的一个。对于小型到中型数据集,将使用精确贪婪。对于非常大的数据集,我们会选择近似算法。exact :精确贪婪算法。approx:使用草图和直方图的近似贪婪算法。 | 默认auto,exact,approx |
sketch_eps | 这只用于近似贪婪算法,这大致转化为(1 / sketch_eps)数量的箱子,与直接选择箱子的数量相比,这具有草图准确性的理论保证,通常用户不需要对此进行调优。但是为了更精确的枚举,可以考虑设置为更低的数字 | 默认0.03 |
scale_pos_weight | 控制正负权重的平衡,对不平衡类有用 | 默认0 |
用于Dart Booster的其它参数
参数 | 参数描述 | 可选值 |
sample_type | 采样算法类型,“uniform”:统一选择掉落的树,“weighted”:根据权重选择掉落的树 | uniform、weighted |
normalize_type | 归一化算法类型,“tree”:新树的每棵掉落的树的重量相同,新树的权重是1 / (k + learnig_rate)下降的树按k / (k + learning_rate)因子进行缩放,“forest”:新树的重量与掉下来的树(森林)的总重量相同,新树的权重是1 / (1 + learning_rate)下降的树按1 / (1 + learning_rate)的因子进行缩放 | 默认tree |
rate_drop | 丢失率 | 默认0 |
skip_drop | 跳过丢失的可能性,如果跳过了dropout,则以与gbtree相同的方式添加新的树 | 默认0 |
用于Linear Booster的参数
参数 | 参数描述 | 可选值 |
alpha | L1正则化项对权重,增加该值会使模型更加保守 | 默认0 |
lambda | L2正则化项对权重,增加该值会使模型更加保守 | 默认0 |
lambda_bias | 偏差上的L2正则化项,默认为0(偏差上没有L1正则项,因为它不重要) |
学习任务的参数
参数 | 参数描述 | 可选值 |
objective | 明确学习任务和相应的学习目标 | 默认reg:linear |
reg:linear | 线性回归 | |
reg:logistic | 逻辑回归 | |
binary:logistic | 二分类Logistic回归,输出概率 | |
binary:logitraw | 二分类Logistic回归,Logistic变换前的输出分数 | |
count:poisson | 统计数据的泊松回归,泊松分布的输出均值 | |
multi:softmax | 设置XGBoost来使用softmax目标进行多类分类,您还需要设置num_class(类的数量) | |
multi:softprob | 与softmax相同,但输出一个ndata * nclass向量,可以进一步重塑为ndata, nclass矩阵。结果包含了属于每一类的每个数据点的预测概率 | |
rank:pairwise | 将XGBoost设置为通过最小化成对损失来执行排序任务 | |
reg:gamma | 严重程度数据的伽马回归,伽马分布的输出平均值 | |
base_score | 所有实例的初始预测得分,全局偏置,对于足够的迭代次数,更改这个值不会有太大的效果。 | 默认0.5 |
seed | 随机数种子 | 默认0 |
eva_metric | 用于验证数据的评估指标,将根据目标(用于回归的均方根误差,用于分类的误差,用于排序的平均精度)分配一个默认指标 | 默认通过objective |
用户可以添加多个评估指标,对于python,记住将指标作为参数对列表而不是map传递进来,这样后一个’ eval_metric '不会覆盖前一个 | ||
rmse | 根均方误差 | |
mse | 均方误差 | |
mae | 均绝对误差 | |
logloss | 负对数似然 | |
error | 二值分类错误率。它被计算为#(错误情况)/#(所有情况)。对于预测,评估将预测值大于0.5的实例视为正实例,其余为负实例。 | |
merror | 多类分类错误率。它被计算为#(错误情况)/#(所有情况) | |
mlogloss | 多类对数似然 | |
auc | 曲线下面积用于排名评价,AUC面积 | |
ndcg | 归一化累计收益 | |
map | 平均精度 | |
“ndcg@n”,”map@n” | n可以被赋值为一个整数,以切断列表中排名靠前的位置进行计算 | |
“ndcg-”,”map-”,”ndcg@n-”,”map@n-” | 在XGBoost中,NDCG和MAP将一个没有任何阳性样本的列表的得分评估为1,通过在评估指标中添加“-”,XGBoost将把这些分数评估为0,以便在某些条件下保持一致 | |
gamma-deviance | 回归的残差偏差 |