本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
线性学习器算法
线性模型 是用于求解分类或回归问题的指导式学习算法。对于输入,向模型提供带标记的示例 (x, y)。x 是一个高维度向量,y 是一个数字标签。对于二元分类问题,该标签必须是 0 或 1。对于多元分类问题,标签必须在 0 到 num_classes
- 1 之间。对于回归问题,y 是一个实数。该算法学习线性函数或线性阈值函数(对于分类问题)进行分类,并将向量 x 映射到标签 y 的近似值。
Amazon SageMaker 线性学习器算法为分类和回归问题提供了解决方案。使用该 SageMaker 算法,您可以同时探索不同的训练目标,并从验证集中选择最佳解决方案。您还可以探索大量模型并选择最佳模型。最佳模型优化以下任一项:
-
连续目标,如均方根误差、交叉熵损失、绝对误差。
-
适合分类的离散目标,例如 F1 度量、查准率、查全率或准确率。
与仅为连续目标提供解决方案的方法相比, SageMaker 线性学习器算法提供了显著高于原始超参数优化技术的速度提升。它也更为方便。
线性学习器算法需要一个数据矩阵,其中行表示观察,列表示特征的维度。它还需要一个包含与数据点匹配的标签的附加列。至少,Amazon SageMaker 线性学习器要求您指定输入和输出数据位置以及目标类型(分类或回归)作为参数。特征维度也是必需的。有关更多信息,请参阅CreateTrainingJob
。您可以在请求正文的 HyperParameters
字符串映射中指定其他参数。这些参数控制优化过程,或您训练的目标函数的细节。例如,纪元数、正则化和损失类型。
如果您在使用托管竞价型训练,线性学习器算法支持使用检查点来获取模型状态的快照。
线性学习器算法的输入/输出接口
Amazon SageMaker 线性学习器算法支持三个数据通道:训练、验证(可选)和测试(可选)。如果您提供验证数据,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 解释为概率。这是因为铰链损失对应于支持向量分类器,该分类器不会生成概率估计值。
有关输入和输出文件格式的更多信息,请参阅 线性学习器响应格式。有关推理格式的更多信息,请参阅 线性学习器示例笔记本。
线性学习器算法的 EC2 实例建议
线性学习器算法支持使用 CPU 和 GPU 实例进行训练和推理。对于 GPU,线性学习器算法支持 P2、P3、G4dn 和 G5 GPU 系列。
在测试过程中,我们没有发现实质性证据表明多 GPU 实例比单 GPU 实例更快。结果可能会有所不同,具体取决于您的使用案例。
线性学习器示例笔记本
下表概述了各种示例笔记本,这些笔记本解决了 Amazon SageMaker 线性学习者算法的不同用例。
笔记本标题 | 描述 |
---|---|
使用 MNIST 数据集,我们训练二元分类器来预测一位数字。 |
|
我们使用 UCI 的 Covertype 数据集,演示如何训练多元分类器。 |
|
我们使用 Scikit-Learn 容器演示如何构建机器学习管道。 end-to-end |
有关如何创建和访问可用于在中运行示例的 Jupyter 笔记本实例的说明 SageMaker,请参阅。Amazon SageMaker 笔记本实例创建并打开笔记本实例后,选择 “SageMaker示例” 选项卡以查看所有 SageMaker 示例的列表。使用线性学习算法的主题建模示例笔记本位于 Amazon 算法简介部分中。要打开笔记本,请选择其使用选项卡,然后选择创建副本。