

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

# XGBoost 超参数
<a name="xgboost_hyperparameters"></a>

下表包含 Amazon A SageMaker I XGBoost 算法所需或最常用的超参数子集。这些是由用户设置的参数，以便于从数据中评估模型参数。首先，按字母顺序列出必须设置的所需超参数。接下来，也按字母顺序列出可以设置的可选超参数。 SageMaker AI xgBoost 算法是开源 DMLC xgBoost 软件包的实现。有关可以为此版本的 XGBoost 配置的完整超参数集的详细信息，请参阅 [XGBoost 参数](https://xgboost.readthedocs.io/en/release_1.2.0/)。


| 参数名称 | 说明 | 
| --- | --- | 
| num\_class | 类的数量。<br />在 `objective` 设置为 *multi:softmax* 或 *multi:softprob* 时**必需**。<br />有效值：整数。 | 
| num\_round | 运行训练的轮数。<br />**必填**<br />有效值：整数。 | 
| alpha | 权重上的 L1 正则化项。增加此值会使模型更加保守。<br />**可选**<br />有效值：浮点值。<br />默认值：0 | 
| base\_score | 所有实例的初始预测分数，全局偏移。<br />**可选**<br />有效值：浮点值。<br />默认值：0.5 | 
| booster | 要使用的助推程序。`gbtree` 和 `dart` 值使用基于树的模型，而 `gblinear` 使用线性函数。<br />**可选**<br />有效值：字符串。`"gbtree"`、`"gblinear"` 或 `"dart"`。<br />默认值：`"gbtree"` | 
| colsample\_bylevel | 每个级别中每个拆分的列的子样本比率。<br />**可选**<br />有效值：浮点值。范围：[0,1]。<br />默认值：1 | 
| colsample\_bynode | 每个节点中列的子样本比率。<br />**可选**<br />有效值：浮点值。范围：(0,1]。<br />默认值：1 | 
| colsample\_bytree | 构造每个树时列的子样本比率。<br />**可选**<br />有效值：浮点值。范围：[0,1]。<br />默认值：1 | 
| csv\_weights | 启用此标志时，对于 csv 输入，XGBoost 通过获取训练数据中的第二列（标签后的一列）作为实例权重，以此来区分实例的重要性。<br />**可选**<br />有效值：0 或 1<br />默认值：0 | 
| deterministic\_histogram | 启用此标志后，XGBoost 会确定地构建有关 GPU 的直方图。仅在 `tree_method` 设置为 `gpu_hist` 时才会使用。<br />有关有效输入的完整列表，请参阅 [XGBoost 参数](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst)。<br />**可选**<br />有效值：字符串。范围：`"true"` 或 `"false"`。<br />默认值：`"true"` | 
| early\_stopping\_rounds | 模型会一直训练直到验证分数停止改善。验证错误至少需要减少每一次`early_stopping_rounds`才能继续训练。 SageMaker AI 托管使用最佳模型进行推理。<br />**可选**<br />有效值：整数。<br />默认值: - | 
| eta | 在更新中用于防止过度适合的步骤大小收缩。在每个提升步骤之后，您可以直接获得新特征的权重。`eta` 参数实际上缩小了特征权重，使提升过程更加保守。<br />**可选**<br />有效值：浮点值。范围：[0,1]。<br />默认值：0.3 | 
| eval\_metric | 验证数据的评估指标。根据目标分配默认指标：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/xgboost_hyperparameters.html)<br />有关有效输入的列表，请参阅 [XGBoost 学习任务参数](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst#learning-task-parameters)。<br />**可选**<br />有效值：字符串。<br />默认值：根据目标默认。 | 
| gamma | 在树的叶节点上进行进一步分区所需的最小损失减少。该值越大，算法越保守。<br />**可选**<br />有效值：浮点值。范围：[0,∞)。<br />默认值：0 | 
| grow\_policy | 控制将新节点添加到树中的方式。目前，仅在 `tree_method` 设置为 `hist` 时受支持。<br />**可选**<br />有效值：字符串。`"depthwise"` 或 `"lossguide"`。<br />默认值：`"depthwise"` | 
| interaction\_constraints | 指定允许进行交互的变量组。<br />**可选**<br />有效值：嵌套的整数列表。每个整数代表一个特征，每个嵌套列表都包含允许交互的特征，例如 [[1,2], [3,4,5]]。<br />默认值：无。 | 
| lambda | 权重上的 L2 正则化项。增加此值会使模型更加保守。<br />**可选**<br />有效值：浮点值。<br />默认值：1 | 
| lambda\_bias | 偏移上的 L2 正则化项。<br />**可选**<br />有效值：浮点值。范围：[0.0, 1.0]。<br />默认值：0 | 
| max\_bin | 离散分箱到存储桶连续特征的最大数量。仅在 `tree_method` 设置为 `hist` 时才会使用。<br />**可选**<br />有效值：整数。<br />默认值：256 | 
| max\_delta\_step | 每个树的权重估计允许的最大增量步骤。当使用正整数时，它有助于使更新更加保守。首选选项是在逻辑回归中使用它。将其设置为 1-10 可帮助控制更新。<br />**可选**<br />有效值：整数。范围：[0,∞)。<br />默认值：0 | 
| max\_depth | 树的最大深度。增加这个值会使模型更复杂，并可能会过度拟合。0 表示没有限制。当 `grow_policy`=`depth-wise` 时，需要限制。<br />**可选**<br />有效值：整数。范围：[0,∞)<br />默认值：6 | 
| max\_leaves | 要添加的最大节点数。仅当 `grow_policy` 设为 `lossguide` 时相关。<br />**可选**<br />有效值：整数。<br />默认值：0 | 
| min\_child\_weight | 子项中所需的最小实例权重总和 (hessian)。如果树分区步骤导致叶节点的实例权重总和小于 `min_child_weight` 的总和，则生成过程会放弃进一步的分区。在线性回归模型中，这只是对应于每个节点中所需的最小实例数。算法越大，就越保守。<br />**可选**<br />有效值：浮点值。范围：[0,∞)。<br />默认值：1 | 
| monotone\_constraints | 指定任意特征上的单调性约束。<br />**可选**<br />有效值：整数元组。有效整数：-1（递减约束）、0（无约束）、1（递增约束）。<br />E.g.，(0, 1)：对第一个预测变量没有约束，对第二个预测变量有递增约束。(-1, 1)：对第一个预测变量施加递减约束，对第二个预测变量施加递增约束。<br />默认值：(0, 0) | 
| normalize\_type | 标准化算法的类型。<br />**可选**<br />有效值：*tree* 或 *forest*。<br />默认值：*tree* | 
| nthread | 用于运行 *xgboost* 的并行线程数量。<br />**可选**<br />有效值：整数。<br />默认值：最大线程数。 | 
| objective | 指定学习任务和相应的学习目标。示例：`reg:logistic`、`multi:softmax`、`reg:squarederror`。有关有效输入的完整列表，请参阅 [XGBoost 学习任务参数](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst#learning-task-parameters)。<br />**可选**<br />有效值：字符串<br />默认值：`"reg:squarederror"` | 
| one\_drop | 启用此标记后，在丢弃期间至少会丢弃一个树。<br />**可选**<br />有效值：0 或 1<br />默认值：0 | 
| process\_type | 要运行的提升过程的类型。<br />**可选**<br />有效值：字符串。`"default"` 或 `"update"`。<br />默认值：`"default"` | 
| rate\_drop | 丢弃比率，指定在丢弃期间要丢弃的一小部分以前的树。<br />**可选**<br />有效值：浮点值。范围：[0.0, 1.0]。<br />默认值：0.0 | 
| refresh\_leaf | 这是“刷新”更新者插件的参数。当设置为 `true` (1) 时，树叶和树节点统计数据会更新。当设置为 `false` (0) 时，只有树节点统计数据会更新。<br />**可选**<br />有效值： 0/1<br />默认值：1 | 
| sample\_type | 采样算法的类型。<br />**可选**<br />有效值：`uniform` 或 `weighted`。<br />默认值：`uniform` | 
| scale\_pos\_weight | 控制正负权重的平衡。它对不平衡的类很有用。可考虑的典型值：`sum(negative cases)` / `sum(positive cases)`。<br />**可选**<br />有效值：浮点值<br />默认值：1 | 
| seed | 随机数种子。<br />**可选**<br />有效值：整数<br />默认值：0 | 
| single\_precision\_histogram | 启用此标志后，XGBoost 使用单精度而不是双精度来构建直方图。仅在 `tree_method` 设置为 `hist` 或 `gpu_hist` 时才会使用。<br />有关有效输入的完整列表，请参阅 [XGBoost 参数](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst)。<br />**可选**<br />有效值：字符串。范围：`"true"` 或 `"false"`<br />默认值：`"false"` | 
| sketch\_eps | 仅用于近似贪婪算法。这会转换为 O(1 / `sketch_eps`) 分箱数。与直接选择分箱数相比，这附带了具有草图准确率的理论保证。<br />**可选**<br />有效值：浮点型，范围：[0, 1]。<br />默认值：0.03 | 
| skip\_drop | 在提升迭代期间跳过丢弃过程的概率。<br />**可选**<br />有效值：浮点值。范围：[0.0, 1.0]。<br />默认值：0.0 | 
| subsample | 训练实例的子样本比率。将其设置为 0.5 意味着 XGBoost 随机收集一半数据实例来让树长大。这会防止过度适合<br />**可选**<br />有效值：浮点值。范围：[0,1]。<br />默认值：1 | 
| tree\_method | 在 XGBoost 中使用的树构造算法。<br />**可选**<br />有效值：`auto`、`exact`、`approx`、`hist` 或 `gpu_hist` 之一。<br />默认值：`auto` | 
| tweedie\_variance\_power | 控制 Tweedie 分布的方差的参数。<br />**可选**<br />有效值：浮点值。范围：(1, 2)。<br />默认值：1.5 | 
| updater | 一个逗号分隔的字符串，它定义要运行的树更新者序列。这提供了构造和修改树的模块化方法。<br />有关有效输入的完整列表，请参阅 [XGBoost 参数](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst)。<br />**可选**<br />有效值：逗号分隔的字符串。<br />默认值：`grow_colmaker`、prune | 
| use\_dask\_gpu\_training | 如果您要使用 Dask 运行分布式 GPU 训练，请将 `use_dask_gpu_training` 设置为 `"true"`。只有版本 1.5-1 及更高版本支持 Dask GPU 训练。对于 1.5-1 之前的版本，请勿将此值设置为 `"true"`。有关更多信息，请参阅 [分布式 GPU 训练](xgboost.md#Instance-XGBoost-distributed-training-gpu)。<br />**可选**<br />有效值：字符串。范围：`"true"` 或 `"false"`<br />默认值：`"false"` | 
| verbosity | 打印消息的详细程度。<br />有效值：0（静默）、1（警告）、2（信息）、3（调试）。<br />**可选**<br />默认值：1 | 