

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

# 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\$1boost\$1round |  提升迭代的最大次数。**注意：**在内部，LightGBM 为多元分类问题构造 `num_class * num_boost_round` 树。 有效值：整数，范围：正整数。 默认值：`100`。  | 
| early\$1stopping\$1rounds |  如果在过去的 `early_stopping_rounds` 轮中，某个验证数据点的某个指标没有改善，则训练将停止。如果 `early_stopping_rounds` 小于或等于零，则忽略此超参数。 有效值：整数。 默认值：`10`。  | 
| metric |  验证数据的评估指标。如果 `metric` 设置为默认值 `"auto"`，则算法会根据分类问题的类型自动选择评估指标： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/lightgbm-hyperparameters.html) 有效值：字符串，以下任意值：（`"auto"`、`"rmse"`、`"l1"`、`"l2"`、`"huber"`、`"fair"`、`"binary_logloss"`、`"binary_error"`、`"auc"`、`"average_precision"`、`"multi_logloss"`、`"multi_error"`、`"auc_mu"` 或 `"cross_entropy"`）。 默认值：`"auto"`。  | 
| learning\$1rate |  完成每批训练样本后，更新模型权重的速率。 有效值：浮点型，范围：（`0.0`，`1.0`）。 默认值：`0.1`。  | 
| num\$1leaves |  一个树中叶的最大数量。 有效值：整数，范围：(`1`, `131072`)。 默认值：`64`。  | 
| feature\$1fraction |  每次迭代时要选择的特征的子集（树）。必须小于 1.0。 有效值：浮点型，范围：（`0.0`，`1.0`）。 默认值：`0.9`。  | 
| bagging\$1fraction |  与 `feature_fraction` 相似的特征的子集，但 `bagging_fraction` 随机选择部分数据而不重新采样。 有效值：浮点型，范围：（`0.0`，`1.0`）。 默认值：`0.9`。  | 
| bagging\$1freq |  执行装袋的频率。在每次 `bagging_freq` 迭代中，LightGBM 都会随机选择一定比例的数据用于下一次 `bagging_freq` 迭代。此百分比由 `bagging_fraction` 超参数确定。如果 `bagging_freq` 为零，则禁用装袋。 有效值：整数，范围：非负整数。 默认值：`1`。  | 
| max\$1depth |  树模型的最大深度。这用于处理数据量较少时的过度拟合情况。如果 `max_depth` 小于或等于零，则表示对最大深度没有限制。 有效值：整数。 默认值：`6`。  | 
| min\$1data\$1in\$1leaf |  一个叶的最小数据量。可用于处理过度拟合情况。 有效值：整数，范围：非负整数。 默认值：`3`。  | 
| max\$1delta\$1step |  用于限制树叶的最大输出。如果 `max_delta_step` 小于或等于 0，则没有约束。树叶的最终最大输出为 `learning_rate * max_delta_step`。 有效值：浮点值。 默认值：`0.0`。  | 
| lambda\$1l1 |  L1 正则化。 有效值：浮点型，范围：非负浮点数。 默认值：`0.0`。  | 
| lambda\$1l2 |  L2 正则化。 有效值：浮点型，范围：非负浮点数。 默认值：`0.0`。  | 
| boosting |  提升类型 有效值：字符串，以下任意值：（`"gbdt"`、`"rf"`、`"dart"` 或 `"goss"`）。 默认值：`"gbdt"`。  | 
| min\$1gain\$1to\$1split |  执行拆分所需的最小增益。可用于加快训练速度。 有效值：整数，浮点数：非负浮点数。 默认值：`0.0`。  | 
| scale\$1pos\$1weight |  正向类的标签的权重。仅用于二元分类任务。如果 `is_unbalance` 设置为 `"True"`，则无法使用 `scale_pos_weight`。 有效值：浮点型，范围：正浮点数。 默认值：`1.0`。  | 
| tree\$1learner |  树学习器类型。 有效值：字符串，以下任意值：（`"serial"`、`"feature"`、`"data"` 或 `"voting"`）。 默认值：`"serial"`。  | 
| feature\$1fraction\$1bynode |  在每个树节点上选择随机特征的子集。例如，如果 `feature_fraction_bynode` 是 `0.8`，则选择 80% 的特征。可用于处理过度拟合情况。 有效值：整数，范围：（`0.0`，`1.0`）。 默认值：`1.0`。  | 
| is\$1unbalance |  如果训练数据不平衡，则设置为 `"True"`。仅用于二元分类任务。`is_unbalance` 无法与 `scale_pos_weight` 一起使用。 有效值：字符串，以下任意值：（`"True"` 或 `"False"`）。 默认值：`"False"`。  | 
| max\$1bin |  用于存储桶特征值的最大箱数。较少的箱数可能会降低训练的准确性，但可能会提高总体性能。可用于处理过度拟合情况。 有效值：整数，范围：（1，∞）。 默认值：`255`。  | 
| tweedie\$1variance\$1power |  控制 Tweedie 分布的方差。将此项设置为更接近 `2.0` 的值可以转向伽玛分布。将此项设置为更接近 `1.0` 的值可以转向泊松分布。仅用于回归任务。 有效值：浮点型，范围：[`1.0`，`2.0`]。 默认值：`1.5`。  | 
| num\$1threads |  用于运行 LightGBM 的并行线程数量。值为 0 表示使用 OpenMP 中的默认线程数。 有效值：整数，范围：非负整数。 默认值：`0`。  | 
| verbosity |  打印消息的详细程度。如果 `verbosity` 小于 `0`，则打印消息仅显示致命错误。如果将 `verbosity` 设置为 `0`，则打印消息将包含错误和警告。如果 `verbosity` 为 `1`，则打印消息会显示更多信息。大于 `1` 的 `verbosity` 会在打印消息中显示最多的信息，可用于调试。 有效值：整数。 默认值：`1`。  | 