CatBoost 超参数 - Amazon SageMaker

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

CatBoost 超参数

下表包含 Amazon SageMaker CatBoost 算法必需或最常用的超参数子集。用户可以设置这些参数,以便于从数据中估算模型参数。该 SageMaker CatBoost 算法是开源CatBoost软件包的实现。

注意

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

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

参数名称 描述
iterations

可以构建的最大树数量。

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

默认值:500

early_stopping_rounds

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

有效值:整数。

默认值:5

eval_metric

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

  • "RMSE" 用于回归

  • "AUC" 用于二元分类

  • "MultiClass" 用于多元分类

有效值:字符串,有关有效值,请参阅CatBoost 文档

默认值:"auto"

learning_rate

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

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

默认值:0.009

depth

树的深度。

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

默认值:6

l2_leaf_reg

成本函数的 L2 正则化项的系数。

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

默认值:3

random_strength

选择树结构时用于对拆分进行评分的随机量。使用此参数以避免模型过度拟合。

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

默认值:1.0

max_leaves

所生成树中叶的最大数量。只能与 "Lossguide" 增长策略一起使用。

有效值:整数,范围:[264]。

默认值:31

rsm

随机子空间方法。再次随机选择特征时,每次拆分选择时要使用的特征百分比。

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

默认值:1.0

sampling_frequency

构建树时对权重和对象进行采样的频率。

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

默认值:"PerTreeLevel"

min_data_in_leaf

一个叶中训练样本的最小数量。 CatBoost 不搜索样本计数小于指定值的树叶中的新分裂。只能与 "Lossguide""Depthwise" 增长策略一起使用。

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

默认值:1

bagging_temperature

定义贝叶斯自举法的设置。使用贝叶斯自举法向对象分配随机权重。如果将 bagging_temperature 设置为 1.0,则从指数分布中对权重进行采样。如果将 bagging_temperature 设置为 0.0,则所有权重均为 1.0。

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

默认值:1.0

boosting_type

提升架构。“自动”表示根据处理单元类型、训练数据集中的对象数量和所选学习模式来选择 boosting_type

有效值:字符串,以下任意值:("Auto""Ordered""Plain")。

默认值:"Auto"

scale_pos_weight

二元分类中正向类的权重。该值用作来自正向类的对象权重的乘数。

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

默认值:1.0

max_bin

数字特征的拆分数。"Auto" 表示根据处理单元类型和其他参数选择 max_bin。有关详细信息,请参阅 CatBoost 文档。

有效值:字符串,可以是:("Auto" 或从 "1""65535"(包括)的整数字符串)。

默认值:"Auto"

grow_policy

树增长策略。定义如何执行贪婪树构造。

有效值:字符串,以下任意值:("SymmetricTree""Depthwise""Lossguide")。

默认值:"SymmetricTree"

random_seed

用于训练的随机种子。

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

默认值:1.0

thread_count

训练期间使用的线程数。如果 thread_count-1,则线程数等于处理器核心数。thread_count 不能是 0

有效值:整数,以下任意值:(-1 或正整数)。

默认值:-1

verbose

打印消息的详细程度。级别越高,对应的打印报表更详细。

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

默认值:1