

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

# 线性学习器算法
<a name="linear-learner"></a>

*线性模型* 是用于求解分类或回归问题的指导式学习算法。对于输入，向模型提供带标记的示例 (*x*, *y*)。*x* 是一个高维度向量，*y* 是一个数字标签。对于二元分类问题，该标签必须是 0 或 1。对于多元分类问题，标签必须在 0 到 `num_classes` - 1 之间。对于回归问题，*y* 是一个实数。该算法学习线性函数或线性阈值函数（对于分类问题）进行分类，并将向量 *x* 映射到标签 *y* 的近似值。

Amazon SageMaker AI 线性学习器算法为分类和回归问题提供了解决方案。借助 SageMaker AI 算法，您可以同时探索不同的训练目标，并从验证集中选择最佳解决方案。您还可以探索大量模型并选择最佳模型。最佳模型优化以下任一项：
+ 连续目标，如均方根误差、交叉熵损失、绝对误差。
+ 适合分类的离散目标，例如 F1 度量、查准率、查全率或准确率。

与仅为连续目标提供解决方案的方法相比，与天真的超参数优化技术相比， SageMaker 人工智能线性学习器算法的速度显著提高。它也更为方便。

线性学习器算法需要一个数据矩阵，其中行表示观察，列表示特征的维度。它还需要一个包含与数据点匹配的标签的附加列。至少，Amazon SageMaker AI 线性学习器要求您指定输入和输出数据位置以及目标类型（分类或回归）作为参数。特征维度也是必需的。有关更多信息，请参阅 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)。您可以在请求正文的 `HyperParameters` 字符串映射中指定其他参数。这些参数控制优化过程，或您训练的目标函数的细节。例如，纪元数、正则化和损失类型。

如果您在使用[托管竞价型训练](https://docs.aws.amazon.com/sagemaker/latest/dg/model-managed-spot-training.html)，线性学习器算法支持[使用检查点来获取模型状态的快照](https://docs.aws.amazon.com/sagemaker/latest/dg/model-checkpoints.html)。

**Topics**
+ [线性学习器算法的输入/输出接口](#ll-input_output)
+ [线性学习器算法的 EC2 实例建议](#ll-instances)
+ [线性学习器示例笔记本](#ll-sample-notebooks)
+ [线性学习器工作方式](ll_how-it-works.md)
+ [线性学习器超参数](ll_hyperparameters.md)
+ [调整线性学习器模型](linear-learner-tuning.md)
+ [线性学习器响应格式](LL-in-formats.md)

## 线性学习器算法的输入/输出接口
<a name="ll-input_output"></a>

Amazon SageMaker AI 线性学习器算法支持三个数据通道：训练、验证（可选）和测试（可选）。如果您提供验证数据，`S3DataDistributionType` 应该为 `FullyReplicated`。该算法记录每个纪元中的验证损失，并使用验证数据的样本来校准和选择最佳模型。如果您不提供验证数据，该算法会使用训练数据的样本来校准和选择该模型。如果您提供了测试数据，则算法日志会包含最终模型的测试分数。

**对于训练**，线性学习器算法支持 `recordIO-wrapped protobuf` 和 `CSV` 格式。对于 `application/x-recordio-protobuf` 输入类型，只支持 Float32 张量。对于 `text/csv` 输入类型，第一列假定为标签，即预测的目标变量。您可以使用文件模式或管道模式，针对格式为 `recordIO-wrapped-protobuf` 或 `CSV` 的数据训练线性学习器模型。

**对于推理**，线性学习器算法支持 `application/json`、`application/x-recordio-protobuf` 和 `text/csv` 格式。在对新数据进行预测时，响应格式取决于模型类型。**对于回归** (`predictor_type='regressor'`)，`score` 是模型生成的预测。**对于分类**（`predictor_type='binary_classifier'` 或 `predictor_type='multiclass_classifier'`），模型返回 `score` 以及 `predicted_label`。`predicted_label` 是模型预测的类别，`score` 测量该预测的强度。
+ **对于二元分类**，`predicted_label` 是 `0` 或 `1`，而 `score` 是单个浮点数，表示算法认为标签应为 1 的强度。
+ **对于多元分类**，`predicted_class` 是从 `0` 到 `num_classes-1` 的整数，而 `score` 是一个浮点数列表，每个类别对应一个浮点数。

要解释分类问题中的 `score`，您必须考虑使用的损失函数。如果 `loss` 超参数值为 `logistic`（对于二元分类）或 `softmax_loss`（对于多元分类），则可以将 `score` 解释为相应类别的概率。这些是在 `loss` 值为 `auto` 默认值时线性学习器使用的损失值。但如果将 loss 设置为 `hinge_loss`，则不能将 score 解释为概率。这是因为铰链损失对应于支持向量分类器，该分类器不会生成概率估计值。

有关输入和输出文件格式的更多信息，请参阅 [线性学习器响应格式](LL-in-formats.md)。有关推理格式的更多信息，请参阅 [线性学习器示例笔记本](#ll-sample-notebooks)。

## 线性学习器算法的 EC2 实例建议
<a name="ll-instances"></a>

线性学习器算法支持使用 CPU 和 GPU 实例进行训练和推理。对于 GPU，线性学习器算法支持 P2、P3、G4dn 和 G5 GPU 系列。

在测试过程中，我们没有发现实质性证据表明多 GPU 实例比单 GPU 实例更快。结果可能会有所不同，具体取决于您的使用案例。

## 线性学习器示例笔记本
<a name="ll-sample-notebooks"></a>

 下表概述了各种示例笔记本，这些笔记本解决了 Amazon A SageMaker I 线性学习器算法的不同用例。


| **笔记本标题** | **描述** | 
| --- | --- | 
|  [MNIST 数据集简介](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/linear_learner_mnist/linear_learner_mnist.html)  |   使用 MNIST 数据集，我们训练二元分类器来预测一位数字。  | 
|  [如何构建多元分类器？](https://sagemaker-examples.readthedocs.io/en/latest/scientific_details_of_algorithms/linear_learner_multiclass_classification/linear_learner_multiclass_classification.html)  |   我们使用 UCI 的 Covertype 数据集，演示如何训练多元分类器。  | 
|  [如何构建机器学习 (ML) 管道用于推理？](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-python-sdk/scikit_learn_inference_pipeline/Inference%20Pipeline%20with%20Scikit-learn%20and%20Linear%20Learner.html)  |   我们使用 Scikit-Learn 容器演示如何构建 ML 管道。 end-to-end  | 

 有关如何创建和访问可用于在 SageMaker AI 中运行示例的 Jupyter 笔记本实例的说明，请参阅。[Amazon SageMaker 笔记本实例](nbi.md)创建并打开笔记本实例后，选择 “**SageMaker AI 示例**” 选项卡以查看所有 SageMaker AI 示例的列表。使用线性学习算法的主题建模示例笔记本位于 **Amazon 算法简介**部分中。要打开笔记本，请选择其**使用**选项卡，然后选择**创建副本**。

# 线性学习器工作方式
<a name="ll_how-it-works"></a>

在线性学习器算法实施中涉及三个步骤：预处理、训练和验证。

## 步骤 1：预处理
<a name="step1-preprocessing"></a>

标准化（或称为特征缩放）是特定损失函数的重要预处理步骤，可以确保在数据集上进行训练的模型不会由单个特征的权重所主导。Amazon SageMaker AI 线性学习器算法具有标准化选项，可帮助完成此预处理步骤。如果已启用标准化，则该算法首先处理数据的一个小样本，用于了解各个特征以及标签的平均值和标准偏差。然后，完整数据集中的各个特征转换为具有平均值零并进行缩放以获得单位标准偏差。

**注意**  
为了获得最佳结果，请确保在训练之前对您的数据进行随机排布。采用未随机排布的数据进行训练可能会导致训练失败。

您可以配置线性学习器算法是否分别使用 `normalize_data` 和 `normalize_label` 超参数来标准化特征数据和标签。默认情况下为特征和标签启用了标准化以进行回归。只有特征可以针对二元分类进行标准化，这是默认行为。

## 步骤 2：训练
<a name="step2-training"></a>

使用线性学习器算法，您可以使用随机梯度下降 (SGD) 的分布式实现进行训练。您可以通过选择优化算法来控制优化过程。例如，您可以选择使用 Adam、 AdaGrad、随机梯度下降或其他优化算法。您还可以指定其超参数，例如动量、学习率和学习率计划。如果您不确定要使用哪个算法或超参数值，请选择适用于大多数数据集的默认值。

在训练期间，您可以同时优化多个模型，每个模型的目标略有不同。例如，您可以改变 L1 或 L2 正则化并尝试不同的优化程序设置。

## 步骤 3：验证和设置阈值
<a name="step3-validation"></a>

并行训练多个模型时，在训练完成后针对验证集来评估模型，以便选择最优的模型。对于回归，最优模型是在验证集上实现最佳损失的模型。对于分类，使用验证集的样本来校准分类阈值。所选最优模型是在验证集上实现了最佳二元分类选择条件的模型。此类条件的示例包括 F1 度量、准确率和交叉熵损失。

**注意**  
如果算法未提供验证集，则无法评估和选择最优模型。要利用并行训练和模型选择，请确保您向算法提供了验证集。

# 线性学习器超参数
<a name="ll_hyperparameters"></a>

下表包含线性学习器算法的超参数。这些是由用户设置的参数，以便于从数据中评估模型参数。首先，按字母顺序列出必须设置的所需超参数。接下来，也按字母顺序列出可以设置的可选超参数。当超参数设置为时`auto`，Amazon SageMaker AI 将自动计算并设置该超参数的值。


| 参数名称 | 说明 | 
| --- | --- | 
| num\$1classes |  响应变量的分类数量。该算法假定分类标记为 `0`、...、`num_classes - 1`。 `predictor_type` 为 `multiclass_classifier` 时**必需**。否则，算法将忽略它。 有效值：从 3 到 1000000 的整数  | 
| predictor\$1type |  将目标变量的类型指定为二元分类、多元分类或回归。 **必填** 有效值：`binary_classifier`、`multiclass_classifier` 或 `regressor`  | 
| accuracy\$1top\$1k |  当计算多元分类的前 k 个最大数准确率指标时，为 *k* 的值。如果模型将前 k 个最大数分数中的一个分配给实际标签，则将示例评分为正确。 **可选** 有效值：正整数 默认值：3   | 
| balance\$1multiclass\$1weights |  指定是否使用分类权重，这使得每个分类在损失函数中具有相同的重要性。仅当 `predictor_type` 为 `multiclass_classifier` 时使用。 **可选** 有效值：`true`、`false` 默认值：`false`  | 
| beta\$11 |  一阶矩估计的指数衰减率。仅当 `optimizer` 值为 `adam` 时适用。 **可选** 有效值：`auto` 或 0 和 1.0 之间的浮点值 默认值：`auto`  | 
| beta\$12 |  二阶矩估计的指数衰减率。仅当 `optimizer` 值为 `adam` 时适用。 **可选** 有效值：`auto` 或 0 和 1.0 之间的浮点整数值  默认值：`auto`  | 
| bias\$1lr\$1mult |  允许偏移项有不同的学习率。偏移的实际学习率是 `learning_rate` \$1 `bias_lr_mult`。 **可选** 有效值：`auto` 或正的浮点整数 默认值：`auto`  | 
| bias\$1wd\$1mult |  允许偏移项有不同的正则化。偏移的实际 L2 正则化权重是 `wd` \$1 `bias_wd_mult`。默认情况下，偏移项上没有正则化。 **可选** 有效值：`auto` 或非负浮点整数 默认值：`auto`  | 
| binary\$1classifier\$1model\$1selection\$1criteria |  当 `predictor_type` 设置为 `binary_classifier` 时，验证数据集的模型评估标准（或者，如果未提供验证数据集，则为训练数据集）。标准包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/ll_hyperparameters.html) **可选** 有效值：`accuracy`、`f_beta`、`precision_at_target_recall`、`recall_at_target_precision` 或 `loss_function` 默认值：`accuracy`  | 
| early\$1stopping\$1patience | 如果在相关指标中没有改进，则在结束训练前等待的纪元数。如果您提供了 binary\$1classifier\$1model\$1selection\$1criteria 的值，则指标就是该值。否则，指标与为 loss 超参数指定的值相同。该指标是在验证数据上评估的。如果未提供验证数据，则该指标始终与为 `loss` 超参数指定的值相同，并在训练数据上进行评估。要禁用提前停止，请将 `early_stopping_patience` 设置为大于为 `epochs` 指定的值。**可选**有效值：正整数默认值：3 | 
| early\$1stopping\$1tolerance |  用于评估损失改善的相对容差。如果损失改善除以上一个最佳损失的比率小于此值，则提前停止逻辑会认为改善是零。 **可选** 有效值：正的浮点整数 默认值：0.001  | 
| epochs |  扫描训练数据的最大次数。 **可选** 有效值：正整数 默认值：15  | 
| f\$1beta |  在计算二元分类或多元分类的 F 分数指标时使用的 Beta 值。如果为 `binary_classifier_model_selection_criteria` 指定的值为 `f_beta`，也会使用此选项。 **可选** 有效值：正的浮点整数 默认值：1.0   | 
| feature\$1dim |  输入数据中的特征数。 **可选** 有效值：`auto` 或正整数 默认值：`auto`  | 
| huber\$1delta |  用于 Huber 损失的参数。在训练和指标评估过程中，对小于增量的错误计算 L2 损失，对大于增量的错误计算 L1 损失。 **可选** 有效值：正的浮点整数 默认值：1.0   | 
| init\$1bias |  偏移项的初始权重。 **可选** 有效值：浮点整数 默认值：0  | 
| init\$1method |  设置用于模型权重的初始分布函数。函数包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/ll_hyperparameters.html) **可选** 有效值：`uniform` 或 `normal` 默认值：`uniform`  | 
| init\$1scale |  扩展模型权重的初始均匀分布。仅当 `init_method` 超参数设置为 `uniform` 时适用。 **可选** 有效值：正的浮点整数 默认值：0.07  | 
| init\$1sigma |  正态分布的初始标准差。仅当 `init_method` 超参数设置为 `normal` 时适用。 **可选** 有效值：正的浮点整数 默认值：0.01  | 
| l1 |  L1 正则化参数。如果不希望使用 L1 正则化，请将此值设置为 0。 **可选** 有效值：`auto` 或非负浮点值 默认值：`auto`  | 
| learning\$1rate |  优化程序用于参数更新的步长。 **可选** 有效值：`auto` 或正的浮点整数 默认值：`auto`，其值取决于选择的优化程序。  | 
| loss |  指定损失函数。 可用的损失函数及其默认值取决于 `predictor_type` 的值： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/ll_hyperparameters.html) 有效值：`auto`、`logistic`、`squared_loss`、`absolute_loss`、`hinge_loss`、`eps_insensitive_squared_loss`、`eps_insensitive_absolute_loss`、`quantile_loss` 或 `huber_loss`  **可选** 默认值：`auto`  | 
| loss\$1insensitivity |  epsilon 不敏感损失类型的参数。在训练和指标评估过程中，任何小于此值的误差都被认为是零。 **可选** 有效值：正的浮点整数 默认值：0.01   | 
| lr\$1scheduler\$1factor |  对于每个 `lr_scheduler_step` 超参数，学习率按此数量减少。仅当 `use_lr_scheduler` 超参数设置为 `true` 时适用。 **可选** 有效值：`auto` 或 0 和 1 之间正的浮点整数值 默认值：`auto`  | 
| lr\$1scheduler\$1minimum\$1lr |  学习率降低到的值永远不会低于为 `lr_scheduler_minimum_lr` 设置的值。仅当 `use_lr_scheduler` 超参数设置为 `true` 时适用。 **可选** 有效值：`auto` 或正的浮点整数 默认值：`auto`  | 
| lr\$1scheduler\$1step |  学习率下降之间的步骤数。仅当 `use_lr_scheduler` 超参数设置为 `true` 时适用。 **可选** 有效值：`auto` 或正整数 默认值：`auto`  | 
| margin |  `hinge_loss` 函数的间隔。 **可选** 有效值：正的浮点整数 默认值：1.0  | 
| mini\$1batch\$1size |  用于数据迭代器的每个小批量的观察次数。 **可选** 有效值：正整数 默认值：1000  | 
| momentum |  `sgd` 优化程序的动量。 **可选** 有效值：`auto` 或 0 和 1.0 之间的浮点整数值 默认值：`auto`  | 
| normalize\$1data |  在训练之前标准化特征数据。数据标准化将各个特征的数据转换为具有平均值零并进行缩放以获得单位标准偏差。 **可选** 有效值：`auto`、`true` 或 `false` 默认值：`true`  | 
| normalize\$1label |  对标签进行标准化。标签标准化将标签移动到平均值零，并将其缩放为具有单位标准偏差。 `auto` 默认值标准化回归问题的标签，但不标准化分类问题的标签。对于分类问题，如果您将 `normalize_label` 超参数设置为 `true`，该算法将忽略它。 **可选** 有效值：`auto`、`true` 或 `false` 默认值：`auto`  | 
| num\$1calibration\$1samples |  验证数据集中用于模型校准的观察次数（在查找最佳阈值时）。 **可选** 有效值：`auto` 或正整数 默认值：`auto`  | 
| num\$1models |  并行训练的模型数。对于默认值 `auto`，算法决定训练的并行模型数。一个模型根据给定的训练参数 (正则化、优化程序、损耗) 进行训练，其余模型根据接近的参数进行训练。 **可选** 有效值：`auto` 或正整数 默认值：`auto`  | 
| num\$1point\$1for\$1scaler |  用于计算标准化或取消偏移项的数据点数量。 **可选** 有效值：正整数 默认值：10,000  | 
| optimizer |  要使用的优化算法。 **可选** 有效值： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/ll_hyperparameters.html) 默认值：`auto`。`auto` 的默认设置是 `adam`。  | 
| positive\$1example\$1weight\$1mult |  在训练二元分类器时分配给正示例的权重。负示例的权重固定为 1。如果您希望算法选择一个权重，以使分类负示例*与* 正示例时发生的错误对训练损失有相同的影响，请指定 `balanced`。如果希望算法选择优化性能的权重，请指定 `auto`。 **可选** 有效值：`balanced`、`auto` 或正的浮点整数 默认值：1.0  | 
| quantile |  分位数损失的分位数。对于分位数 q，模型将尝试生成预测，以便 `true_label` 的值大于概率 q 的预测。 **可选** 有效值：0 和 1 之间的浮点整数值 默认值：0.5  | 
| target\$1precision |  目标查准率。如果 `binary_classifier_model_selection_criteria` 是 `recall_at_target_precision`，则查准率保持为此值，同时查全率最大化。 **可选** 有效值：0 和 1.0 之间的浮点整数值 默认值：0.8  | 
| target\$1recall |  目标查全率。如果 `binary_classifier_model_selection_criteria` 是 `precision_at_target_recall`，则查全率保持在此值，同时查准率最大化。 **可选** 有效值：0 和 1.0 之间的浮点整数值 默认值：0.8  | 
| unbias\$1data |  在训练前对特性取消偏移以使平均值为 0。默认情况下，如果 `use_bias` 超参数设置为 `true`，则对数据取消偏移。 **可选** 有效值：`auto`、`true` 或 `false` 默认值：`auto`  | 
| unbias\$1label |  在训练前对标签取消偏移以使平均值为 0。仅当 `use_bias` 超参数设置为 `true` 时才适用于回归。 **可选** 有效值：`auto`、`true` 或 `false` 默认值：`auto`  | 
| use\$1bias |  指定模型是否应包含偏移项，即线性等式中的截距项。 **可选** 有效值：`true` 或 `false` 默认值：`true`  | 
| use\$1lr\$1scheduler |  是否对学习率使用计划程序。如果要使用计划程序，请指定 `true`。 **可选** 有效值：`true` 或 `false` 默认值：`true`  | 
| wd |  权重衰减参数，也称为 L2 正则化参数。如果不希望使用 L2 正则化，请将此值设置为 0。 **可选** 有效值：`auto` 或非负浮点整数 默认值：`auto`  | 

# 调整线性学习器模型
<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\$1loss |  最终模型在测试数据集上的绝对损失。此目标指标仅对回归有效。  |  最小化  | 
| test:binary\$1classification\$1accuracy |  最终模型在测试数据集上的准确率。此目标指标仅对二元分类有效。  |  最大化  | 
| test:binary\$1f\$1beta |  最终模型在测试数据集上的 F-beta 分数。默认情况下，它是 F1 分数，这是查准率和查全率的调和平均数。此目标指标仅对二元分类有效。  |  最大化  | 
| test:dcg |  最终模型在测试数据集上的折扣累积增益。此目标指标仅对多元分类有效。  |  最大化  | 
| test:macro\$1f\$1beta |  最终模型在测试数据集上的 F-beta 分数。此目标指标仅对多元分类有效。  |  最大化  | 
| test:macro\$1precision |  最终模型在测试数据集上的查准率分数。此目标指标仅对多元分类有效。  |  最大化  | 
| test:macro\$1recall |  最终模型在测试数据集上的查全率分数。此目标指标仅对多元分类有效。  |  最大化  | 
| test:mse |  最终模型在测试数据集上的均方误差。此目标指标仅对回归有效。  |  最小化  | 
| test:multiclass\$1accuracy |  最终模型在测试数据集上的准确率。此目标指标仅对多元分类有效。  |  最大化  | 
| test:multiclass\$1top\$1k\$1accuracy |  在测试数据集上预测的前 k 个标签的准确性。如果您选择此指标作为目标，我们建议使用 `accuracy_top_k` 超参数设置 k 的值。此目标指标仅对多元分类有效。  |  最大化  | 
| test:objective\$1loss |  训练模型后测试数据集上的目标损失函数的平均值。默认情况下，损失是二元分类的逻辑损失和回归的平方损失。要将损失设置为其他类型，请使用 `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\$1auc\$1score |  最终模型在测试数据集上的接收操作特性曲线（ROC 曲线）下的面积。此目标指标仅对二元分类有效。  |  最大化  | 
| validation:absolute\$1loss |  最终模型在验证数据集上的绝对损失。此目标指标仅对回归有效。  |  最小化  | 
| validation:binary\$1classification\$1accuracy |  最终模型在验证数据集上的准确率。此目标指标仅对二元分类有效。  |  最大化  | 
| validation:binary\$1f\$1beta |  最终模型在验证数据集上的 F-beta 分数。默认情况下，F-beta 分数是 F1 分数，这是 `validation:precision` 和 `validation:recall` 指标的调和平均数。此目标指标仅对二元分类有效。  |  最大化  | 
| validation:dcg |  最终模型在验证数据集上的折扣累积增益。此目标指标仅对多元分类有效。  |  最大化  | 
| validation:macro\$1f\$1beta |  最终模型在验证数据集上的 F-beta 分数。此目标指标仅对多元分类有效。  |  最大化  | 
| validation:macro\$1precision |  最终模型在验证数据集上的查准率分数。此目标指标仅对多元分类有效。  |  最大化  | 
| validation:macro\$1recall |  最终模型在验证数据集上的查全率分数。此目标指标仅对多元分类有效。  |  最大化  | 
| validation:mse |  最终模型在验证数据集上的均方误差。此目标指标仅对回归有效。  |  最小化  | 
| validation:multiclass\$1accuracy |  最终模型在验证数据集上的准确率。此目标指标仅对多元分类有效。  |  最大化  | 
| validation:multiclass\$1top\$1k\$1accuracy |  在验证数据集上预测的前 k 个标签的准确性。如果您选择此指标作为目标，我们建议使用 `accuracy_top_k` 超参数设置 k 的值。此目标指标仅对多元分类有效。  |  最大化  | 
| validation:objective\$1loss |  每个纪元验证数据集上目标损失函数的平均值。默认情况下，损失是二元分类的逻辑损失和回归的平方损失。要将损失设置为其他类型，请使用 `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\$1auc\$1score |  最终模型在验证数据集上的接收操作特性曲线（ROC 曲线）下的面积。此目标指标仅对二元分类有效。  |  最大化  | 

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

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


| 参数名称 | 参数类型 | 建议的范围 | 
| --- | --- | --- | 
| wd |  `ContinuousParameterRanges`  |  `MinValue: ``1e-7`, `MaxValue`: `1`  | 
| l1 |  `ContinuousParameterRanges`  |  `MinValue`: `1e-7`, `MaxValue`: `1`  | 
| learning\$1rate |  `ContinuousParameterRanges`  |  `MinValue`: `1e-5`, `MaxValue`: `1`  | 
| mini\$1batch\$1size |  `IntegerParameterRanges`  |  `MinValue`: `100`, `MaxValue`: `5000`  | 
| use\$1bias |  `CategoricalParameterRanges`  |  `[True, False]`  | 
| positive\$1example\$1weight\$1mult |  `ContinuousParameterRanges`  |  `MinValue`：1e-5，`MaxValue`：`1e5`  | 

# 线性学习器响应格式
<a name="LL-in-formats"></a>

## JSON 响应格式
<a name="LL-json"></a>

所有 Amazon SageMaker AI 内置算法都遵循通用[数据格式-推理中描述的通用输入推理格式](https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html)。以下是 SageMaker AI 线性学习器算法的可用输出格式。

**二元分类**

```
let response =   {
    "predictions":    [
        {
            "score": 0.4,
            "predicted_label": 0
        } 
    ]
}
```

**多元分类**

```
let response =   {
    "predictions":    [
        {
            "score": [0.1, 0.2, 0.4, 0.3],
            "predicted_label": 2
        } 
    ]
}
```

**回归**

```
let response =   {
    "predictions":    [
        {
            "score": 0.4
        } 
    ]
}
```

## JSONLINES 响应格式
<a name="LL-jsonlines"></a>

**二元分类**

```
{"score": 0.4, "predicted_label": 0}
```

**多元分类**

```
{"score": [0.1, 0.2, 0.4, 0.3], "predicted_label": 2}
```

**回归**

```
{"score": 0.4}
```

## RECORDIO 响应格式
<a name="LL-recordio"></a>

**二元分类**

```
[
    Record = {
        features = {},
        label = {
            'score': {
                keys: [],
                values: [0.4]  # float32
            },
            'predicted_label': {
                keys: [],
                values: [0.0]  # float32
            }
        }
    }
]
```

**多元分类**

```
[
    Record = {
    "features": [],
    "label":    {
            "score":  {
                    "values":   [0.1, 0.2, 0.3, 0.4]   
            },
            "predicted_label":  {
                    "values":   [3]
            }
       },
    "uid":  "abc123",
    "metadata": "{created_at: '2017-06-03'}"
   }
]
```

**回归**

```
[
    Record = {
        features = {},
        label = {
            'score': {
                keys: [],
                values: [0.4]  # float32
            }   
        }
    }
]
```