

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

# 调整线性学习器模型
<a name="linear-learner-tuning"></a>

*自动模型优化*（也称作超参数优化）通过运行很多在数据集上测试一系列超参数的作业来查找模型的最佳版本。您可以选择可优化超参数、每个超参数的值范围和一个目标指标。您可以从算法计算的指标中选择目标指标。自动模型优化将搜索所选超参数以找到导致优化目标指标的模型的值组合。

线性学习器算法还具有用于优化超参数的内部机制，与此处描述的自动模型优化功能无关。默认情况下，线性学习器算法通过并行训练多个模型来优化超参数。当您使用自动模型优化时，线性学习器内部优化机制功能自动关闭。这会将并行模型的数量 `num_models` 设置为 1。该算法会忽略您为 `num_models` 设置的任何值。

有关模型优化的更多信息，请参阅[使用 SageMaker AI 自动调整模型](automatic-model-tuning.md)。

## 由线性学习器算法计算的指标
<a name="linear-learner-metrics"></a>

线性学习器算法报告下表中的指标，这些指标是在训练期间计算的。选择其中一个作为目标指标。为避免过拟合，我们建议根据验证指标而不是训练指标优化模型。


| 指标名称 | 说明 | 优化方向 | 
| --- | --- | --- | 
| test:absolute\_loss | 最终模型在测试数据集上的绝对损失。此目标指标仅对回归有效。 | 最小化 | 
| test:binary\_classification\_accuracy | 最终模型在测试数据集上的准确率。此目标指标仅对二元分类有效。 | 最大化 | 
| test:binary\_f\_beta | 最终模型在测试数据集上的 F-beta 分数。默认情况下，它是 F1 分数，这是查准率和查全率的调和平均数。此目标指标仅对二元分类有效。 | 最大化 | 
| test:dcg | 最终模型在测试数据集上的折扣累积增益。此目标指标仅对多元分类有效。 | 最大化 | 
| test:macro\_f\_beta | 最终模型在测试数据集上的 F-beta 分数。此目标指标仅对多元分类有效。 | 最大化 | 
| test:macro\_precision | 最终模型在测试数据集上的查准率分数。此目标指标仅对多元分类有效。 | 最大化 | 
| test:macro\_recall | 最终模型在测试数据集上的查全率分数。此目标指标仅对多元分类有效。 | 最大化 | 
| test:mse | 最终模型在测试数据集上的均方误差。此目标指标仅对回归有效。 | 最小化 | 
| test:multiclass\_accuracy | 最终模型在测试数据集上的准确率。此目标指标仅对多元分类有效。 | 最大化 | 
| test:multiclass\_top\_k\_accuracy | 在测试数据集上预测的前 k 个标签的准确性。如果您选择此指标作为目标，我们建议使用 `accuracy_top_k` 超参数设置 k 的值。此目标指标仅对多元分类有效。 | 最大化 | 
| test:objective\_loss | 训练模型后测试数据集上的目标损失函数的平均值。默认情况下，损失是二元分类的逻辑损失和回归的平方损失。要将损失设置为其他类型，请使用 `loss` 超参数。 | 最小化 | 
| test:precision | 最终模型在测试数据集上的查准率。如果您选择此指标作为目标，我们建议您通过将 `binary_classifier_model_selection` 超参数设置为 `precision_at_target_recall` 以及设置 `target_recall` 超参数的值，来设置目标查全率。此目标指标仅对二元分类有效。 | 最大化 | 
| test:recall | 最终模型在测试数据集上的查全率。如果您选择此指标作为目标，我们建议您通过将 `binary_classifier_model_selection` 超参数设置为 `recall_at_target_precision` 以及设置 `target_precision` 超参数的值，来设置目标准确率。此目标指标仅对二元分类有效。 | 最大化 | 
| test:roc\_auc\_score | 最终模型在测试数据集上的接收操作特性曲线（ROC 曲线）下的面积。此目标指标仅对二元分类有效。 | 最大化 | 
| validation:absolute\_loss | 最终模型在验证数据集上的绝对损失。此目标指标仅对回归有效。 | 最小化 | 
| validation:binary\_classification\_accuracy | 最终模型在验证数据集上的准确率。此目标指标仅对二元分类有效。 | 最大化 | 
| validation:binary\_f\_beta | 最终模型在验证数据集上的 F-beta 分数。默认情况下，F-beta 分数是 F1 分数，这是 `validation:precision` 和 `validation:recall` 指标的调和平均数。此目标指标仅对二元分类有效。 | 最大化 | 
| validation:dcg | 最终模型在验证数据集上的折扣累积增益。此目标指标仅对多元分类有效。 | 最大化 | 
| validation:macro\_f\_beta | 最终模型在验证数据集上的 F-beta 分数。此目标指标仅对多元分类有效。 | 最大化 | 
| validation:macro\_precision | 最终模型在验证数据集上的查准率分数。此目标指标仅对多元分类有效。 | 最大化 | 
| validation:macro\_recall | 最终模型在验证数据集上的查全率分数。此目标指标仅对多元分类有效。 | 最大化 | 
| validation:mse | 最终模型在验证数据集上的均方误差。此目标指标仅对回归有效。 | 最小化 | 
| validation:multiclass\_accuracy | 最终模型在验证数据集上的准确率。此目标指标仅对多元分类有效。 | 最大化 | 
| validation:multiclass\_top\_k\_accuracy | 在验证数据集上预测的前 k 个标签的准确性。如果您选择此指标作为目标，我们建议使用 `accuracy_top_k` 超参数设置 k 的值。此目标指标仅对多元分类有效。 | 最大化 | 
| validation:objective\_loss | 每个纪元验证数据集上目标损失函数的平均值。默认情况下，损失是二元分类的逻辑损失和回归的平方损失。要将损失设置为其他类型，请使用 `loss` 超参数。 | 最小化 | 
| validation:precision | 最终模型在验证数据集上的查准率。如果您选择此指标作为目标，我们建议您通过将 `binary_classifier_model_selection` 超参数设置为 `precision_at_target_recall` 以及设置 `target_recall` 超参数的值，来设置目标查全率。此目标指标仅对二元分类有效。 | 最大化 | 
| validation:recall | 最终模型在验证数据集上的查全率。如果您选择此指标作为目标，我们建议您通过将 `binary_classifier_model_selection` 超参数设置为 `recall_at_target_precision` 以及设置 `target_precision` 超参数的值，来设置目标准确率。此目标指标仅对二元分类有效。 | 最大化 | 
| validation:rmse | 最终模型在验证数据集上的均方根误差。此目标指标仅对回归有效。 | 最小化 | 
| validation:roc\_auc\_score | 最终模型在验证数据集上的接收操作特性曲线（ROC 曲线）下的面积。此目标指标仅对二元分类有效。 | 最大化 | 

## 调整线性学习器超参数
<a name="linear-learner-tunable-hyperparameters"></a>

您可以使用以下超参数优化线性学习器模型。


| 参数名称 | 参数类型 | 建议的范围 | 
| --- | --- | --- | 
| wd | `ContinuousParameterRanges` | `MinValue: ``1e-7`, `MaxValue`: `1` | 
| l1 | `ContinuousParameterRanges` | `MinValue`: `1e-7`, `MaxValue`: `1` | 
| learning\_rate | `ContinuousParameterRanges` | `MinValue`: `1e-5`, `MaxValue`: `1` | 
| mini\_batch\_size | `IntegerParameterRanges` | `MinValue`: `100`, `MaxValue`: `5000` | 
| use\_bias | `CategoricalParameterRanges` | `[True, False]` | 
| positive\_example\_weight\_mult | `ContinuousParameterRanges` | `MinValue`：1e-5，`MaxValue`：`1e5` | 