

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

# LightGBM 超参数
<a name="lightgbm-hyperparameters"></a>

下表包含 Amazon A SageMaker I LightGBM 算法所需或最常用的超参数子集。用户可以设置这些参数，以便于从数据中估算模型参数。 SageMaker AI LightGBM 算法是开源 L [ight](https://github.com/microsoft/LightGBM) GBM 软件包的实现。

**注意**  
默认超参数基于 [LightGBM 示例笔记本](lightgbm.md#lightgbm-sample-notebooks)中的示例数据集。

默认情况下， SageMaker AI LightGBM 算法会根据分类问题的类型自动选择评估指标和目标函数。LightGBM 算法根据数据中的标签数量来检测分类问题的类型。对于回归问题，评估指标为均方根误差，目标函数为 L2 损失。对于二元分类问题，评估指标和目标函数都是二元交叉熵。对于多元分类问题，评估指标是多类交叉熵，目标函数是 softmax。您可以使用 `metric` 超参数来更改默认评估指标。有关 LightGBM 超参数的更多信息，包括描述、有效值和默认值，请参阅下表。


| 参数名称 | 说明 | 
| --- | --- | 
| num\_boost\_round | 提升迭代的最大次数。**注意：**在内部，LightGBM 为多元分类问题构造 `num_class * num_boost_round` 树。<br />有效值：整数，范围：正整数。<br />默认值：`100`。 | 
| early\_stopping\_rounds | 如果在过去的 `early_stopping_rounds` 轮中，某个验证数据点的某个指标没有改善，则训练将停止。如果 `early_stopping_rounds` 小于或等于零，则忽略此超参数。<br />有效值：整数。<br />默认值：`10`。 | 
| metric | 验证数据的评估指标。如果 `metric` 设置为默认值 `"auto"`，则算法会根据分类问题的类型自动选择评估指标：+ `rmse` 用于回归<br />+ `binary_logloss` 用于二元分类<br />+ `multi_logloss` 用于多元分类<br />有效值：字符串，以下任意值：（`"auto"`、`"rmse"`、`"l1"`、`"l2"`、`"huber"`、`"fair"`、`"binary_logloss"`、`"binary_error"`、`"auc"`、`"average_precision"`、`"multi_logloss"`、`"multi_error"`、`"auc_mu"` 或 `"cross_entropy"`）。<br />默认值：`"auto"`。 | 
| learning\_rate | 完成每批训练样本后，更新模型权重的速率。<br />有效值：浮点型，范围：（`0.0`，`1.0`）。<br />默认值：`0.1`。 | 
| num\_leaves | 一个树中叶的最大数量。<br />有效值：整数，范围：(`1`, `131072`)。<br />默认值：`64`。 | 
| feature\_fraction | 每次迭代时要选择的特征的子集（树）。必须小于 1.0。<br />有效值：浮点型，范围：（`0.0`，`1.0`）。<br />默认值：`0.9`。 | 
| bagging\_fraction | 与 `feature_fraction` 相似的特征的子集，但 `bagging_fraction` 随机选择部分数据而不重新采样。<br />有效值：浮点型，范围：（`0.0`，`1.0`）。<br />默认值：`0.9`。 | 
| bagging\_freq | 执行装袋的频率。在每次 `bagging_freq` 迭代中，LightGBM 都会随机选择一定比例的数据用于下一次 `bagging_freq` 迭代。此百分比由 `bagging_fraction` 超参数确定。如果 `bagging_freq` 为零，则禁用装袋。<br />有效值：整数，范围： Non-negative 整数。<br />默认值：`1`。 | 
| max\_depth | 树模型的最大深度。这用于处理数据量较少时的过度拟合情况。如果 `max_depth` 小于或等于零，则表示对最大深度没有限制。<br />有效值：整数。<br />默认值：`6`。 | 
| min\_data\_in\_leaf | 一个叶的最小数据量。可用于处理过度拟合情况。<br />有效值：整数，范围： Non-negative 整数。<br />默认值：`3`。 | 
| max\_delta\_step | 用于限制树叶的最大输出。如果 `max_delta_step` 小于或等于 0，则没有约束。树叶的最终最大输出为 `learning_rate * max_delta_step`。<br />有效值：浮点值。<br />默认值：`0.0`。 | 
| lambda\_l1 | L1 正则化。<br />有效值：浮点型，范围： Non-negative 浮点型。<br />默认值：`0.0`。 | 
| lambda\_l2 | L2 正则化。<br />有效值：浮点型，范围： Non-negative 浮点型。<br />默认值：`0.0`。 | 
| boosting | 提升类型<br />有效值：字符串，以下任意值：（`"gbdt"`、`"rf"`、`"dart"` 或 `"goss"`）。<br />默认值：`"gbdt"`。 | 
| min\_gain\_to\_split | 执行拆分所需的最小增益。可用于加快训练速度。<br />有效值：整数，浮点数： Non-negative 浮点数。<br />默认值：`0.0`。 | 
| scale\_pos\_weight | 正向类的标签的权重。仅用于二元分类任务。如果 `is_unbalance` 设置为 `"True"`，则无法使用 `scale_pos_weight`。<br />有效值：浮点型，范围：正浮点数。<br />默认值：`1.0`。 | 
| tree\_learner | 树学习器类型。<br />有效值：字符串，以下任意值：（`"serial"`、`"feature"`、`"data"` 或 `"voting"`）。<br />默认值：`"serial"`。 | 
| feature\_fraction\_bynode | 在每个树节点上选择随机特征的子集。例如，如果 `feature_fraction_bynode` 是 `0.8`，则选择 80% 的特征。可用于处理过度拟合情况。<br />有效值：整数，范围：（`0.0`，`1.0`）。<br />默认值：`1.0`。 | 
| is\_unbalance | 如果训练数据不平衡，则设置为 `"True"`。仅用于二元分类任务。`is_unbalance` 无法与 `scale_pos_weight` 一起使用。<br />有效值：字符串，以下任意值：（`"True"` 或 `"False"`）。<br />默认值：`"False"`。 | 
| max\_bin | 用于存储桶特征值的最大箱数。较少的箱数可能会降低训练的准确性，但可能会提高总体性能。可用于处理过度拟合情况。<br />有效值：整数，范围：（1，∞）。<br />默认值：`255`。 | 
| tweedie\_variance\_power | 控制 Tweedie 分布的方差。将此项设置为更接近 `2.0` 的值可以转向伽玛分布。将此项设置为更接近 `1.0` 的值可以转向泊松分布。仅用于回归任务。<br />有效值：浮点型，范围：[`1.0`，`2.0`]。<br />默认值：`1.5`。 | 
| num\_threads | 用于运行 LightGBM 的并行线程数量。值为 0 表示使用 OpenMP 中的默认线程数。<br />有效值：整数，范围： Non-negative 整数。<br />默认值：`0`。 | 
| verbosity | 打印消息的详细程度。如果 `verbosity` 小于 `0`，则打印消息仅显示致命错误。如果将 `verbosity` 设置为 `0`，则打印消息将包含错误和警告。如果 `verbosity` 为 `1`，则打印消息会显示更多信息。大于 `1` 的 `verbosity` 会在打印消息中显示最多的信息，可用于调试。<br />有效值：整数。<br />默认值：`1`。 | 