

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

# CatBoost 超参数
<a name="catboost-hyperparameters"></a>

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

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

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


| 参数名称 | 说明 | 
| --- | --- | 
| iterations | 可以构建的最大树数量。<br />有效值：整数，范围：正整数。<br />默认值：`500`。 | 
| early\_stopping\_rounds | 如果在过去的 `early_stopping_rounds` 轮中，某个验证数据点的某个指标没有改善，则训练将停止。如果 `early_stopping_rounds` 小于或等于零，则忽略此超参数。<br />有效值：整数。<br />默认值：`5`。 | 
| eval\_metric | 验证数据的评估指标。如果 `eval_metric` 设置为默认值 `"auto"`，则算法会根据分类问题的类型自动选择评估指标：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/catboost-hyperparameters.html)<br />有效值：字符串，有关有效值，请参阅[CatBoost 文档](https://catboost.ai/en/docs/references/eval-metric__supported-metrics)。<br />默认值：`"auto"`。 | 
| learning\_rate | 完成每批训练样本后，更新模型权重的速率。<br />有效值：浮点型，范围：（`0.0`，`1.0`）。<br />默认值：`0.009`。 | 
| depth | 树的深度。<br />有效值：整数，范围：(`1`, `16`)。<br />默认值：`6`。 | 
| l2\_leaf\_reg | 成本函数的 L2 正则化项的系数。<br />有效值：整数，范围：正整数。<br />默认值：`3`。 | 
| random\_strength | 选择树结构时用于对拆分进行评分的随机量。使用此参数以避免模型过度拟合。<br />有效值：浮点型，范围：正浮点数。<br />默认值：`1.0`。 | 
| max\_leaves | 所生成树中叶的最大数量。只能与 `"Lossguide"` 增长策略一起使用。<br />有效值：整数，范围：[`2`，`64`]。<br />默认值：`31`。 | 
| rsm | 随机子空间方法。再次随机选择特征时，每次拆分选择时要使用的特征百分比。<br />有效值：浮点型，范围：（`0.0`，`1.0`）。<br />默认值：`1.0`。 | 
| sampling\_frequency | 构建树时对权重和对象进行采样的频率。<br />有效值：字符串，以下任意值：（`"PerTreeLevel"` 或 `"PerTree"`）。<br />默认值：`"PerTreeLevel"`。 | 
| min\_data\_in\_leaf | 叶子中训练样本的最小数量。 CatBoost 不搜索样本计数小于指定值的树叶中的新分裂。只能与 `"Lossguide"` 和 `"Depthwise"` 增长策略一起使用。<br />有效值：整数，范围：（`1`，`∞`）。<br />默认值：`1`。 | 
| bagging\_temperature | 定义贝叶斯自举法的设置。使用贝叶斯自举法向对象分配随机权重。如果将 `bagging_temperature` 设置为 `1.0`，则从指数分布中对权重进行采样。如果将 `bagging_temperature` 设置为 `0.0`，则所有权重均为 1.0。<br />有效值：浮点型，范围：非负浮点数。<br />默认值：`1.0`。 | 
| boosting\_type | 提升架构。“自动”表示根据处理单元类型、训练数据集中的对象数量和所选学习模式来选择 `boosting_type`。<br />有效值：字符串，以下任意值：（`"Auto"`、`"Ordered"`、`"Plain"`）。<br />默认值：`"Auto"`。 | 
| scale\_pos\_weight | 二元分类中正向类的权重。该值用作来自正向类的对象权重的乘数。<br />有效值：浮点型，范围：正浮点数。<br />默认值：`1.0`。 | 
| max\_bin | 数字特征的拆分数。`"Auto"` 表示根据处理单元类型和其他参数选择 `max_bin`。有关详细信息，请参阅 CatBoost 文档。<br />有效值：字符串，可以是：（`"Auto"` 或从 `"1"` 到 `"65535"`（包括）的整数字符串）。<br />默认值：`"Auto"`。 | 
| grow\_policy | 树增长策略。定义如何执行贪婪树构造。<br />有效值：字符串，以下任意值：（`"SymmetricTree"`、`"Depthwise"` 或 `"Lossguide"`）。<br />默认值：`"SymmetricTree"`。 | 
| random\_seed | 用于训练的随机种子。<br />有效值：整数，范围：非负整数。<br />默认值：`1.0`。 | 
| thread\_count | 训练期间使用的线程数。如果 `thread_count` 是 `-1`，则线程数等于处理器核心数。`thread_count` 不能是 `0`。<br />有效值：整数，以下任意值：（`-1` 或正整数）。<br />默认值：`-1`。 | 
| verbose | 打印消息的详细程度。级别越高，对应的打印报表更详细。<br />有效值：整数，范围：正整数。<br />默认值：`1`。 | 