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

XGBoost 超参数

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

参数名称 描述
num_class

类的数量。

objective 设置为 multi:softmaxmulti:softprob必需

有效值:整数。

num_round

运行训练的轮数。

必填

有效值:整数。

alpha

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

可选

有效值:浮点值。

默认值:0

base_score

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

可选

有效值:浮点值。

默认值:0.5

booster

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

可选

有效值:字符串。"gbtree""gblinear""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 参数

可选

有效值:字符串。范围:"true""false"

默认值:"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 时受支持。

可选

有效值:字符串。"depthwise""lossguide"

默认值:"depthwise"

interaction_constraints

指定允许进行交互的变量组。

可选

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

默认值:无。

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

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

可选

有效值:字符串。"default""update"

默认值:"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 设置为 histgpu_hist 时才会使用。

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

可选

有效值:字符串。范围:"true""false"

默认值:"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 中使用的树构造算法。

可选

有效值:autoexactapproxhistgpu_hist 之一。

默认值:auto

tweedie_variance_power

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

可选

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

默认值:1.5

updater

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

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

可选

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

默认值:grow_colmaker、prune

use_dask_gpu_training

如果您要使用 Dask 运行分布式 GPU 训练,请将 use_dask_gpu_training 设置为 "true"。只有版本 1.5-1 及更高版本支持 Dask GPU 训练。对于 1.5-1 之前的版本,请勿将此值设置为 "true"。有关更多信息,请参阅 分布式 GPU 训练

可选

有效值:字符串。范围:"true""false"

默认值:"false"

verbosity

打印消息的详细程度。

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

可选

默认值:1