XGBoost 超参数 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

XGBoost 超参数

下表包含 Amazon SageMaker XGBoost 算法必需或最常用的超参数子集。这些是由用户设置的参数,以便于从数据中评估模型参数。首先,按字母顺序列出必须设置的所需超参数。接下来,也按字母顺序列出可以设置的可选超参数。SageMaker XGBoost 算法是开源 DMLC XGBoost 程序包的实施。当前 SageMaker 支持版本 1.2-1。有关可以为此版本的 XGBoost 配置的完整超参数集的详细信息,请参阅 XGBoost 参数

参数名称 描述
num_class

类的数量。

如果 设置为 multi:softmaxobjectivemulti:softprob则是必需的

有效值:整数

num_round

运行训练的轮数。

必需

有效值:整数

alpha

权重上的 L1 正则化项。增加此值会使模型更加保守。

可选

有效值:浮点值

默认值:0

base_score

所有实例的初始预测分数,全局偏移。

可选

有效值:浮点值

缩放细节凹凸法线强度。

booster

要使用的助推程序。gbtreedart 值使用基于树的模型,而 gblinear 使用线性函数。

可选

有效值:字符串. gbtreegblinear或 之一dart

默认值: gbtree

colsample_bylevel

每个级别中每个拆分的列的子样本比率。

可选

有效值:浮点值。范围:[0,1]。

默认值:1

colsample_bynode

每个节点中列的子样本比率。

可选

有效值:浮点值。范围:(0,1]。

默认值:1

colsample_bytree

构造每个树时列的子样本比率。

可选

有效值:浮点值。范围:[0,1]。

默认值:1

csv_weights

启用此标志时,对于 csv 输入,XGBoost 通过获取训练数据中的第二列(标签后的一列)作为实例权重,以此来区分实例的重要性。

可选

有效值:0 或 1

默认值:0

deterministic_histogram

启用此标记后XGBoost 会在 GPU 上确定地生成直方图。仅在 tree_method 设置为 gpu_hist 时才会使用。

有关有效输入的完整列表,请参阅 XGBoost 参数

可选

有效值:字符串. 范围: truefalse

默认值: true

early_stopping_rounds

模型会一直训练直到验证分数停止改善。验证错误需要至少在每个 early_stopping_rounds 减少才能继续训练。SageMaker 托管使用最佳模型进行推理。

可选

有效值:整数

默认值: -

eta

在更新中用于防止过度适合的步骤大小收缩。在每个提升步骤之后,您可以直接获得新特征的权重。eta 参数实际上缩小了特征权重,使提升过程更加保守。

可选

有效值:浮点值。范围:[0,1]。

默认值:0.3

eval_metric

验证数据的评估指标。根据目标分配默认指标:

  • rmse:用于回归

  • error:用于分类

  • map:用于排名

有关有效输入的列表,请参阅 XGBoost 学习任务参数

可选

有效值:字符串

默认值:根据目标默认。

gamma

在树的叶节点上进行进一步分区所需的最小损失减少。该值越大,算法越保守。

可选

有效值:浮点值。范围:[0,∞)。

默认值:0

grow_policy

控制将新节点添加到树中的方式。目前,仅在 tree_method 设置为 hist 时受支持。

可选

有效值:字符串. depthwiselossguide

默认值: depthwise

interaction_constraints

指定允许交互的变量组。

可选

有效值:整数的嵌套列表。每个整数表示一个特征,每个嵌套列表都包含允许交互的功能,例如 [[1,2]、[3,4,5]。

默认值:None

lambda

权重上的 L2 正则化项。增加此值会使模型更加保守。

可选

有效值:浮点值

默认值:1

lambda_bias

偏移上的 L2 正则化项。

可选

有效值:浮点值。范围:[0.0, 1.0]。

默认值:0

max_bin

离散分箱到存储桶连续特征的最大数量。仅在 tree_method 设置为 hist 时才会使用。

可选

有效值:整数

默认值:256

max_delta_step

每个树的权重估计允许的最大增量步骤。当使用正整数时,它有助于使更新更加保守。首选选项是在逻辑回归中使用它。将其设置为 1-10 可帮助控制更新。

可选

有效值:整数。范围:[0,∞)。

默认值:0

max_depth

树的最大深度。增大此值会使模型更复杂,并且可能会过度拟合。0 表示没有限制。当 grow_policy=depth-wise 时,需要限制。

可选

有效值:整数。范围:[0,∞)

默认值:6

max_leaves

要添加的最大节点数。仅当 grow_policy 设为 lossguide 时相关。

可选

有效值:整数

默认值:0

min_child_weight

子项中所需的最小实例权重总和 (hessian)。如果树分区步骤导致叶节点的实例权重总和小于 min_child_weight 的总和,则生成过程会放弃进一步的分区。在线性回归模型中,这只是对应于每个节点中所需的最小实例数。算法越大,就越保守。

可选

有效值:浮点值。范围:[0,∞)。

默认值:1

monotone_constraints

指定任何特征上的单调约束。

可选

有效值:整数元组。有效整数:-1 (递减约束)、0 (无约束)、1 (递增约束)。

例如,(0, 1):第一个预测器上没有约束,第二个预测器上有增大的约束。(-1、1):减小第一个预测器的约束,并减小第二个预测器的约束。

默认值:(0, 0)

normalize_type

标准化算法的类型。

可选

有效值:treeforest

默认值:tree

nthread

用于运行 xgboost 的并行线程数量。

可选

有效值:整数

默认值:最大线程数。

objective

指定学习任务和相应的学习目标。示例:reg:logisticmulti:softmaxreg:squarederror。有关有效输入的完整列表,请参阅 XGBoost 学习任务参数

可选

有效值:字符串

默认值: reg:squarederror

one_drop

启用此标记后,在丢弃期间至少会丢弃一个树。

可选

有效值:0 或 1

默认值:0

process_type

要运行的提升过程的类型。

可选

有效值:字符串. defaultupdate

默认值: default

rate_drop

丢弃比率,指定在丢弃期间要丢弃的一小部分以前的树。

可选

有效值:浮点值。范围:[0.0, 1.0]。

默认值:0.0

refresh_leaf

这是“刷新”更新者插件的参数。当设置为 true (1) 时,树叶和树节点统计数据会更新。当设置为 false (0) 时,只有树节点统计数据会更新。

可选

有效值:0/1

默认值:1

sample_type

采样算法的类型。

可选

有效值:uniformweighted

默认值: uniform

scale_pos_weight

控制正负权重的平衡。它对不平衡的类很有用。可考虑的典型值:sum(negative cases) / sum(positive cases)

可选

有效值:浮点值

默认值:1

seed

随机数种子。

可选

有效值:整数

默认值:0

single_precision_histogram

启用此标记后XGBoost 使用单精度生成直方图,而不是双精度。仅在 tree_method 设置为 hist 或 时使用gpu_hist

有关有效输入的完整列表,请参阅 XGBoost 参数

可选

有效值:字符串. 范围: truefalse

默认值: false

sketch_eps

仅用于近似贪婪算法。这会转换为 O(1 / sketch_eps) 分箱数。与直接选择分箱数相比,这附带了具有草图准确率的理论保证。

可选

有效值:浮点型,范围:[0, 1]。

默认值:0.03

skip_drop

在提升迭代期间跳过丢弃过程的概率。

可选

有效值:浮点值。范围:[0.0, 1.0]。

默认值:0.0

subsample

训练实例的子样本比率。将其设置为 0.5 意味着 XGBoost 随机收集一半数据实例来让树长大。这会防止过度适合

可选

有效值:浮点值。范围:[0,1]。

默认值:1

tree_method

在 XGBoost 中使用的树构造算法。

可选

有效值auto:、exactapproxhist或 之一gpu_hist

默认值: auto

tweedie_variance_power

控制 Tweedie 分布的方差的参数。

可选

有效值:浮点值。范围:(1, 2)。

默认值:1.5

updater

一个逗号分隔的字符串,它定义要运行的树更新者序列。这提供了构造和修改树的模块化方法。

有关有效输入的完整列表,请参阅 XGBoost 参数

可选

有效值:逗号分隔的字符串。

默认值:grow_colmaker、prune

verbosity

打印消息的详细程度。

有效值:0 (静默)、1 (警告)、2 (信息)、3 (调试)。

可选

默认值:1