线性学习器算法 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

线性学习器算法

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

Amazon SageMaker 线性学习器算法为分类和回归问题提供了一种解决方案。使用 SageMaker 算法,您可以同时探索不同的训练目标,并从验证集中选择最佳解决方案。您还可以探索大量模型并选择最佳模型。最佳模型优化以下任一项:

  • 连续目标,如均方根误差、交叉熵损失、绝对误差。

  • 适合分类的离散目标,例如 F1 度量、查准率、查全率或准确率。

与仅为连续目标提供解决方案的方法相比,SageMaker 线性学习器算法提供了显著高于原始超参数优化技术的速度提升。它也更为方便。

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

如果您使用的是托管的 Spot 训练,线性学习器算法支持用于快照模型状态的检查点.

线性学习器算法的输入/输出接口

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

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

对于推理,线性学习器算法支持 application/jsonapplication/x-recordio-protobuftext/csv 格式。在对新数据进行预测时,响应格式取决于模型类型。对于回归 (predictor_type='regressor'),score 是模型生成的预测。对于分类predictor_type='binary_classifier'predictor_type='multiclass_classifier'),模型返回 score 以及 predicted_labelpredicted_label 是模型预测的类别,score 测量该预测的强度。

  • 对于二元分类predicted_label01,而 score 是单个浮点数,表示算法认为标签应为 1 的强度。

  • 对于多类别分类predicted_class 是从 0num_classes-1 的整数,而 score 是一个浮点数列表,每个类别对应一个浮点数。

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

有关输入和输出文件格式的更多信息,请参阅 线性学员响应格式。有关推理格式的更多信息,请参阅 线性学习者样本笔记本

适用于线性学习器算法的 EC2 实例推荐

您可以在单机或多机 CPU 和 GPU 实例上训练线性学习器算法。在测试过程中,我们没有发现大量证据表明多 GPU 计算机比单 GPU 计算机更快。结果可能会有所不同,具体取决于您的使用案例。

线性学习者样本笔记本

下表概述了解决亚马逊不同使用案例的各种样本笔记本。 SageMaker 线性学习者算法。

笔记本标题 描述

MNIST 数据集简介

使用 MNIST 数据集,我们训练二进制分类器来预测一位数字。

预测乳腺癌

使用 UCI 的乳腺癌数据集,我们训练一个模型来预测乳腺癌。

如何构建多类分类器?

使用 UCI 的 Covertype 数据集,我们演示了如何训练多类分类器。

如何为推理构建 Machine Learning (ML) 管道?

使用 Scikit-Learn 容器,我们演示了如何构建 end-to-end ML 管道。

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