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

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

灯光GBM超参数

下表包含 Amazon L SageMaker ight GBM 算法所需或最常用的超参数子集。用户可以设置这些参数,以便于从数据中估算模型参数。 SageMaker Ligh GBM t 算法是开源 L igh t GBM 包的实现。

注意

默认超参数基于 轻型GBM样本笔记本中的示例数据集。

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

参数名称 描述
num_boost_round

提升迭代的最大次数。注意:在内部,Light 会为多类分类问题GBM构造num_class * num_boost_round树。

有效值:整数,范围:正整数。

默认值:100

early_stopping_rounds

如果在过去的 early_stopping_rounds 轮中,某个验证数据点的某个指标没有改善,则训练将停止。如果 early_stopping_rounds 小于或等于零,则忽略此超参数。

有效值:整数。

默认值:10

metric

验证数据的评估指标。如果 metric 设置为默认值 "auto",则算法会根据分类问题的类型自动选择评估指标:

  • rmse 用于回归

  • binary_logloss 用于二元分类

  • multi_logloss 用于多元分类

有效值:字符串,以下任意值:("auto""rmse""l1""l2""huber""fair""binary_logloss""binary_error""auc""average_precision""multi_logloss""multi_error""auc_mu""cross_entropy")。

默认值:"auto"

learning_rate

完成每批训练样本后,更新模型权重的速率。

有效值:浮点型,范围:(0.01.0)。

默认值:0.1

num_leaves

一个树中叶的最大数量。

有效值:整数,范围:(1, 131072)。

默认值:64

feature_fraction

每次迭代时要选择的特征的子集(树)。必须小于 1.0。

有效值:浮点型,范围:(0.01.0)。

默认值:0.9

bagging_fraction

feature_fraction 相似的特征的子集,但 bagging_fraction 随机选择部分数据而不重新采样。

有效值:浮点型,范围:(0.01.0)。

默认值:0.9

bagging_freq

执行装袋的频率。在每次bagging_freq迭代中,Light 都会GBM随机选择一定比例的数据用于下一次bagging_freq迭代。此百分比由 bagging_fraction 超参数确定。如果 bagging_freq 为零,则禁用装袋。

有效值:整数,范围:非负整数。

默认值:1

max_depth

树模型的最大深度。这用于处理数据量较少时的过度拟合情况。如果 max_depth 小于或等于零,则表示对最大深度没有限制。

有效值:整数。

默认值:6

min_data_in_leaf

一个叶的最小数据量。可用于处理过度拟合情况。

有效值:整数,范围:非负整数。

默认值:3

max_delta_step

用于限制树叶的最大输出。如果 max_delta_step 小于或等于 0,则没有约束。树叶的最终最大输出为 learning_rate * max_delta_step

有效值:浮点值。

默认值:0.0

lambda_l1

L1 正则化。

有效值:浮点型,范围:非负浮点数。

默认值:0.0

lambda_l2

L2 正则化。

有效值:浮点型,范围:非负浮点数。

默认值:0.0

boosting

提升类型

有效值:字符串,以下任意值:("gbdt""rf""dart""goss")。

默认值:"gbdt"

min_gain_to_split

执行拆分所需的最小增益。可用于加快训练速度。

有效值:整数,浮点数:非负浮点数。

默认值:0.0

scale_pos_weight

正向类的标签的权重。仅用于二元分类任务。如果 is_unbalance 设置为 "True",则无法使用 scale_pos_weight

有效值:浮点型,范围:正浮点数。

默认值:1.0

tree_learner

树学习器类型。

有效值:字符串,以下任意值:("serial""feature""data""voting")。

默认值:"serial"

feature_fraction_bynode

在每个树节点上选择随机特征的子集。例如,如果 feature_fraction_bynode0.8,则选择 80% 的特征。可用于处理过度拟合情况。

有效值:整数,范围:(0.01.0)。

默认值:1.0

is_unbalance

如果训练数据不平衡,则设置为 "True"。仅用于二元分类任务。is_unbalance 无法与 scale_pos_weight 一起使用。

有效值:字符串,以下任意值:("True""False")。

默认值:"False"

max_bin

用于存储桶特征值的最大箱数。较少的箱数可能会降低训练的准确性,但可能会提高总体性能。可用于处理过度拟合情况。

有效值:整数,范围:(1,∞)。

默认值:255

tweedie_variance_power

控制 Tweedie 分布的方差。将此项设置为更接近 2.0 的值可以转向伽玛分布。将此项设置为更接近 1.0 的值可以转向泊松分布。仅用于回归任务。

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

默认值:1.5

num_threads

用于运行 Light 的并行线程数GBM。值为 0 表示使用 OpenMP 中的默认线程数。

有效值:整数,范围:非负整数。

默认值:0

verbosity

打印消息的详细程度。如果 verbosity 小于 0,则打印消息仅显示致命错误。如果将 verbosity 设置为 0,则打印消息将包含错误和警告。如果 verbosity1,则打印消息会显示更多信息。大于 1verbosity 会在打印消息中显示最多的信息,可用于调试。

有效值:整数。

默认值:1