指标和验证 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

指标和验证

本指南介绍了可用于衡量机器学习模型性能的指标和验证技术。Amazon A SageMaker utopilot 生成的指标用于衡量候选机器学习模型的预测质量。为候选人计算的指标是使用MetricDatum类型数组指定的。

自动驾驶指标

以下列表包含当前可用于衡量 Autopilot 中模型性能的指标的名称。

注意

自动驾驶仪支持样本重量。要了解有关样本权重和可用目标指标的更多信息,请参阅自动驾驶加权指标

以下是可用指标。

Accuracy

正确分类的项目数与(正确和不正确)分类的项目总数的比率。它用于二进制和多类分类。精度衡量预测的类别值与实际值的接近程度。精度指标的值在零 (0) 和一 (1) 之间变化。值为 1 表示完美精度,0 表示完全不准确。

AUC

曲线下面积 (AUC) 指标用于比较和评估通过返回概率的算法(例如逻辑回归)进行的二进制分类。为了将概率映射到分类中,将这些概率与阈值进行比较。

相关曲线是接收器的工作特性曲线。该曲线将预测(或召回)的真实阳性率(TPR)与误报率(FPR)绘制为阈值的函数,超过该阈值的预测被视为阳性。增加阈值会导致更少的误报,但会导致更多的假阴性。

AUC 是该接收器工作特性曲线下的区域。因此,AUC 提供了在所有可能的分类阈值下对模型性能的汇总衡量标准。AUC 分数在 0 和 1 之间变化。分数为 1 表示完美精度,分数为一半 (0.5) 表示预测不比随机分类器好。

BalancedAccuracy

BalancedAccuracy是衡量准确预测与所有预测之比的指标。该比率是在将真阳性 (TP) 和真阴性 (TN) 按正 (P) 和负 (N) 值的总数归一化后计算得出的。它用于二进制和多类分类,定义如下:0.5* ((TP/P) + (TN/N)),其值范围从 0 到 1。 BalancedAccuracy在不平衡的数据集中,如果正面或负面的数量相差很大,例如只有 1% 的电子邮件是垃圾邮件,则可以更好地衡量准确性。

F1

F1分数是精度和召回率的谐波平均值,定义如下:F1 = 2 *(精度 * 召回)/(精度 + 召回率)。它用于二进制分类,分为传统上称为正数和负数的类别。当预测与实际(正确的)类别相匹配时,据说预测为真;如果与实际(正确)类别不匹配,则认为预测为假。

精度是真正的阳性预测与所有正向预测的比率,它包括数据集中的误报。精度是在预测正数等级时测量预测的质量。

召回率(或灵敏度)是真正的正面预测与所有实际正面实例的比率。Recall 衡量的是模型预测数据集中实际类成员的完整程度。

F1 分数在 0 到 1 之间变化。分数为 1 表示尽可能好的性能,0 表示最差的性能。

F1macro

F1macro分数将 F1 评分应用于多类别分类问题。它通过计算精度和召回率,然后使用它们的谐波平均值来计算每个类别的 F1 分数来完成此操作。最后,计算个人分数的F1macro平均值以获得分F1macro数。 F1macro分数在 0 到 1 之间变化。分数为 1 表示尽可能好的性能,0 表示最差的性能。

InferenceLatency

推理延迟是指从发出模型预测请求到从模型部署到的实时端点接收模型预测请求之间的近似时间。此指标以秒为单位进行测量,仅在合奏模式下可用。

LogLoss

对数损失,也称为交叉熵损失,是一种用于评估概率输出质量的指标,而不是输出本身的指标。它用于二进制和多类分类以及神经网络。它也是逻辑回归的成本函数。对数损失是一个重要的指标,用于指示模型何时做出高概率的错误预测。值的范围从 0 到无穷大。值为 0 表示可以完美预测数据的模型。

MAE

平均绝对误差 (MAE) 用于衡量预测值和实际值在所有值上的平均值之间的差异。MAE 通常用于回归分析以了解模型预测错误。如果存在线性回归,则 MAE 表示从预测线到实际值的平均距离。MAE 定义为绝对误差之和除以观测次数。值的范围从 0 到无穷大,数字越小表示模型对数据的拟合度越高。

MSE

均方误差 (MSE) 是预测值和实际值之间差的平方差的平均值。它用于回归。MSE 值始终为正。模型预测实际值的能力越强,MSE 值就越小。

Precision

精度衡量算法预测其识别出的所有正数 (TP) 的真实阳性 (TP) 的程度。其定义如下:精度 = TP/ (TP+FP),其值范围从零 (0) 到一 (1),用于二进制分类。当误报的代价很高时,精度是一个重要的指标。例如,如果错误地认为飞机安全系统可以安全飞行,则误报的成本非常高。误报 (FP) 反映了数据中实际为负的正向预测。

PrecisionMacro

精度宏计算多类分类问题的精度。它通过计算每个类别的精度并平均分数来获得多个类别的精度来实现此目的。 PrecisionMacro分数范围从零 (0) 到一 (1)。较高的分数反映了该模型预测其识别的所有阳性(在多个类别中平均值)中的真正阳性(TP)的能力。

R2

R 2 也称为决定系数,在回归中用于量化模型在多大程度上解释因变量的方差。值范围从一 (1) 到负一 (-1)。数字越高表示解释的变异性所占的比例越高。 R2接近零 (0) 的值表明模型几乎无法解释因变量。负值表示拟合度较差,并且常量函数的性能优于模型。对于线性回归,这是一条水平线。

Recall

Recall 衡量算法正确预测数据集中所有真阳性 (TP) 的效果。真正是正预测,也是数据中的实际正值。召回定义如下:召回 = TP/ (TP+FN),其值范围从 0 到 1。分数越高反映出模型预测数据中真正阳性 (TP) 的能力越强。它用于二进制分类。

在进行癌症检测时,召回很重要,因为它可以用来发现所有真正的阳性。误报 (FP) 反映了数据中实际为负的正向预测。仅衡量召回率通常是不够的,因为将每项输出预测为真正的正值可以得出完美的召回分数。

RecallMacro

通过RecallMacro计算每个类别的召回率并平均分数来计算多类别分类问题的召回率,从而获得多个类别的召回率。 RecallMacro分数范围从 0 到 1。分数越高反映了模型在数据集中预测真阳性 (TP) 的能力,而真阳性则反映了积极的预测,这也是数据中的实际正值。仅衡量召回率通常是不够的,因为将每项输出预测为真正的阳性将得出完美的召回分数。

RMSE

均方根误差 (RMSE) 测量预测值和实际值之间差的平方根,并计算所有值的平均值。它在回归分析中用于理解模型预测误差。这是表明存在大型模型错误和异常值的重要指标。值范围从零 (0) 到无穷大,数字越小表示模型对数据的拟合度越高。RMSE 取决于规模,不应用于比较不同大小的数据集。

为模型候选人自动计算的指标由所解决问题的类型决定。

  • 回归:InferenceLatencyMAEMSER2RMSE

  • 二进制分类:AccuracyAUCBalancedAccuracyF1InferenceLatencyLogLossPrecisionRecall

  • 多类分类:AccuracyBalancedAccuracyF1macroInferenceLatencyLogLossPrecisionMacro RecallMacro

自动驾驶加权指标

注意

Autopilot 仅支持集合模式下除和之外的所有可用指标的样本权重。Balanced Accuracy InferenceLatency BalanceAccuracy自带加权方案,适用于不需要样本权重的不平衡数据集。 InferenceLatency不支持样本权重。在训练Balanced Accuracy和评估模型时,目标和InferenceLatency指标都会忽略任何现有的样本权重。

用户可以在其数据中添加样本权重列,以确保为用于训练机器学习模型的每个观测值分配一个与其对模型的感知重要性相对应的权重。这在数据集中的观测值具有不同重要程度的场景中特别有用,或者数据集包含来自一个类别的样本数量与其他类别相比不成比例的情况。根据每个观测值的重要性或对少数群体的重要性为其分配权重可以帮助模型的整体表现,或者确保模型不会偏向多数阶级。

有关在 Studio 用户界面中创建实验时如何传递样本权重的信息,请参阅使用 Studio 创建自动驾驶实验中的步骤 7

有关在使用 API 创建自动驾驶实验时如何以编程方式传递样本权重的信息,请参阅以编程方式创建自动驾驶实验中的如何向 A utoML 作业添加样本权重

自动驾驶仪中的交叉验证

交叉验证用于减少模型选择中的过拟合和偏差。它还用于评估如果验证数据集来自相同的人群,则模型在预测看不见的验证数据集的值方面的表现如何。在训练实例数量有限的数据集上训练时,此方法尤其重要。

Autopilot 使用交叉验证在超参数优化 (HPO) 和集合训练模式下构建模型。Autopilot 交叉验证过程的第一步是将数据拆分为 k 字段。

K 折分割

K-fold 拆分是一种将输入训练数据集分成多个训练和验证数据集的方法。数据集被分成k大小相等的子样本,称为折叠。然后对模型进行训练,并针对剩余的 k 个折叠(即验证数据集)进行测试。k-1使用不同的数据集进行验证,k重复该过程。

下图描绘了 k = 4 折叠时的 k 折叠分割。每个折叠都表示为一行。深色调的方框代表训练中使用的数据部分。其余的浅色方框表示验证数据集。


           K 折分割,4 折表示为方框:深色表示使用的数据;浅色表示验证数据集。

Autopilot 对超参数优化 (HPO) 模式和组合模式均使用 k 折叠交叉验证。

您可以像部署任何其他自动驾驶仪或模型一样部署使用交叉验证构建的自动驾驶模型。SageMaker

HPO 模式

K 折叠交叉验证使用 k 折叠分割方法进行交叉验证。在 HPO 模式下,Autopilot 会自动对具有 50,000 个或更少训练实例的小型数据集实现 k-fold 交叉验证。在小型数据集上进行训练时,执行交叉验证尤其重要,因为它可以防止过度拟合和选择偏差。

HPO 模式在用于数据集建模的每种候选算法上使用 k 值 5。在不同的分割上训练多个模型,这些模型分开存储。训练完成后,对每个模型的验证指标求平均值以生成单个估计指标。最后,Autopilot将试验中的模型与最佳验证指标合并为一个集合模型。Autopilot 使用这种集合模型进行预测。

由 Autopilot 训练的模型的验证指标作为目标指标显示在模型排行榜中。除非您另行指定,否则 Autopilot 对其处理的每种问题类型使用默认验证指标。有关 Autopilot 使用的所有指标的列表,请参阅自动驾驶指标

例如,波士顿住房数据集仅包含 861 个样本。如果您在没有交叉验证的情况下使用该数据集构建预测房屋销售价格的模型,则有可能在不代表波士顿住房存量的数据集上进行训练。如果您仅将数据拆分为训练和验证子集一次,则训练集可能仅包含主要来自郊区的数据。因此,你将使用不能代表城市其他地区的数据进行训练。在此示例中,您的模型可能会过度拟合这种有偏见的选择。K-fold 交叉验证可以通过充分和随机地使用可用数据进行训练和验证,从而降低发生此类错误的风险。

交叉验证可以将训练时间平均增加 20%。复杂数据集的训练时间也可能显著增加。

注意

在 HPO 模式下,您可以在 Lo /aws/sagemaker/TrainingJobs CloudWatch gs 中查看各个方面的训练和验证指标。有关CloudWatch日志的更多信息,请参阅在亚马逊上记录亚马逊SageMaker活动 CloudWatch

合奏模式

注意

自动驾驶仪支持集合模式下的样本权重。有关支持样本权重的可用指标列表,请参阅自动驾驶指标

在组合模式下,无论数据集大小如何,都会执行交叉验证。客户可以提供自己的验证数据集和自定义的数据拆分比例,也可以让 Autopilot 自动将数据集拆分为 80-20% 的拆分比率。然后将训练数据拆分为 k-folds 进行交叉验证,其中值由k引擎确定。AutoGluon一个集合由多个机器学习模型组成,其中每个模型都被称为基础模型。单个基础模型在 (k-1) 折上进行训练,并out-of-fold对剩余折叠进行预测。对所有k折叠重复此过程,将 out-of-fold (OOF) 预测串联起来形成一组预测。集合中的所有基础模型都遵循相同的生成 OOF 预测的过程。

下图显示了 k = 4 折的 k 折验证。每个折叠都表示为一行。深色调的方框代表训练中使用的数据部分。其余的浅色方框表示验证数据集。

在图像的上半部分,在每个折叠中,第一个基础模型在训练数据集上进行训练后对验证数据集进行预测。在随后的每一次折叠中,数据集都会改变角色。以前用于训练的数据集现在用于验证,反之亦然。在k折叠结束时,将所有预测串联成一组单一的预测,称为 out-of-fold (OOF) 预测。每个n基础模型都会重复此过程。


          k-fold 验证:四行方框描绘了生成一行 OOF 预测的 4 倍。

然后,将每个基础模型的 OOF 预测用作训练堆叠模型的特征。堆叠模型学习每个基础模型的重要性权重。这些权重用于合并 OOF 预测以形成最终预测。验证数据集的性能决定了哪个基础模型或堆叠模型最好,该模型作为最终模型返回。

在集成模式下,您可以提供自己的验证数据集,也可以让 Autopilot 自动将输入数据集拆分为 80% 的训练数据集和 20% 的验证数据集。然后将训练数据分成 k-folds进行交叉验证,并为每个折叠生成 OOF 预测和基础模型。

这些 OOF 预测用作训练堆叠模型的功能,堆叠模型可同时学习每个基础模型的权重。这些权重用于合并 OOF 预测以形成最终预测。每个折叠的验证数据集用于所有基础模型和堆叠模型的超参数调整。验证数据集的性能决定了哪个基础模型或堆叠模型是最佳模型,该模型作为最终模型返回。