机器学习中的性能指标

2025年6月21日 | 9分钟阅读

评估机器学习模型的性能是构建有效机器学习模型的重要步骤之一。为了评估模型的性能或质量,我们使用不同的指标,这些指标被称为性能指标或评估指标。这些性能指标帮助我们了解模型在给定数据上的表现如何。通过这种方式,我们可以通过调整超参数来提高模型的性能。每个机器学习模型的目标都是在未见过的/新数据上具有良好的泛化能力,而性能指标有助于确定模型在新数据集上的泛化能力如何。

Performance Metrics in Machine Learning

在机器学习中,每个任务或问题都分为分类回归。并非所有指标都可以用于所有类型的问题;因此,了解和理解应该使用哪些指标非常重要。对于回归和分类任务,会使用不同的评估指标。在本主题中,我们将讨论用于分类和回归任务的指标。

1. 分类性能指标

在分类问题中,数据的类别是基于训练数据来识别的。模型从给定的数据集中学习,然后根据训练将新数据分类到不同的类别或组中。它预测类别标签作为输出,例如是或否,0或1,垃圾邮件或非垃圾邮件等。为了评估分类模型的性能,我们使用不同的指标,其中一些如下:

  • 精度
  • 混淆矩阵
  • 精度
  • 召回率
  • F1分数
  • AUC(曲线下面积)-ROC

I. 准确率

准确率指标是实现起来最简单的分类指标之一,它可以定义为正确预测的数量与总预测数量的比值。

其公式可以表示为:

Performance Metrics in Machine Learning

要实现准确率指标,我们可以在循环中比较真实值和预测值,或者我们也可以使用 scikit-learn 模块来实现。

首先,我们需要从 scikit-learn 库中导入 accuracy_score 函数,如下所示:

虽然它使用和实现起来很简单,但它只适用于每个类别样本数量相等的情况。

何时使用准确率?

当数据中目标变量的类别大致平衡时,使用准确率指标是很好的选择。例如,如果一个水果图像数据集中60%的类别是苹果,40%是芒果。在这种情况下,如果要求模型预测图像是苹果还是芒果,它会给出97%的准确率预测。

何时不应使用准确率?

当目标变量主要属于某一类时,建议不要使用准确率指标。例如,假设有一个疾病预测模型,在100人中,只有5人患有该疾病,而95人没有。在这种情况下,如果我们的模型预测每个人都没有疾病(这意味着是一个糟糕的预测),准确率指标将是95%,这是不正确的。

II. 混淆矩阵

混淆矩阵是任何二元分类器预测结果的表格表示,用于在真实值已知的情况下,描述分类模型在一组测试数据上的性能。

混淆矩阵实现起来很简单,但其中使用的术语可能会让初学者感到困惑。

一个典型的二元分类器混淆矩阵如下图所示(当然,它也可以扩展用于具有两个以上类别的分类器)。

Performance Metrics in Machine Learning

我们可以从上表中确定以下内容:

  • 在矩阵中,列代表预测值,行代表实际值。这里的实际值和预测值给出了两种可能的类别:是或否。所以,如果我们在预测一个病人是否患有某种疾病,预测列中的“是”表示病人患有该疾病,“否”则表示病人没有该疾病。
  • 在这个例子中,总预测次数是165次,其中110次预测为“是”,55次预测为“否”。
  • 然而,实际上,有60个病人没有疾病,而有105个病人患有该疾病。

通常,该表分为四个术语,如下所示:

  1. 真正例 (True Positive, TP): 在这种情况下,预测结果为真,并且实际上也为真。
  2. 真负例 (True Negative, TN): 在这种情况下,预测结果为假,并且实际上也为假。
  3. 假正例 (False Positive, FP): 在这种情况下,预测结果为真,但实际上为假。
  4. 假负例 (False Negative, FN): 在这种情况下,预测结果为假,但实际上为真。

III. 精确率

精确率指标用于克服准确率的局限性。精确率确定了正向预测中实际正确的比例。它可以计算为真正例(即实际为真的预测)与总正向预测(真正例和假正例)的比值。

Performance Metrics in Machine Learning

IV. 召回率或灵敏度

它也与精确率指标相似;然而,它旨在计算被错误识别的实际正例的比例。它可以计算为真正例(即实际为真的预测)与所有实际正例(无论是被正确预测为正例还是被错误预测为负例,即真正例和假负例)的比值。

计算召回率的公式如下:

Performance Metrics in Machine Learning

何时使用精确率和召回率?

根据上述精确率和召回率的定义,我们可以说,召回率衡量了分类器在假负例方面的性能,而精确率则提供了关于分类器在假正例方面性能的信息。

所以,如果我们想最小化假负例,那么召回率应该尽可能接近100%;如果我们想最小化假正例,那么精确率应该尽可能接近100%。

简单来说,如果我们最大化精确率,就会最小化 FP 错误;如果我们最大化召回率,就会最小化 FN 错误。

V. F1分数

F分数或F1分数是一个用于评估二元分类模型的指标,它基于对正类的预测。它是通过精确率和召回率计算得出的。它是一种单一分数,同时代表了精确率和召回率。所以,F1分数可以计算为精确率和召回率的调和平均值,并给予它们同等的权重。

计算 F1 分数的公式如下:

Performance Metrics in Machine Learning

何时使用 F1 分数?

由于 F1 分数同时利用了精确率和召回率,所以当两者对于评估都很重要,但其中一个(精确率或召回率)比另一个稍微更重要时,就应该使用它。例如,当假负例比假正例相对更重要时,或者反之亦然。

VI. AUC-ROC

有时我们需要在图表上可视化分类模型的性能;这时我们可以使用 AUC-ROC 曲线。它是评估分类模型性能的流行且重要的指标之一。

首先,让我们理解 ROC(受试者工作特征曲线)曲线。ROC 是一张图表,用于显示分类模型在不同阈值水平下的性能。该曲线是在两个参数之间绘制的,分别是:

  • 真正例率
  • 假正例率

TPR 或真正例率是召回率的同义词,因此可以计算为:

Performance Metrics in Machine Learning

FPR 或假正例率可以计算为:

Performance Metrics in Machine Learning

要计算 ROC 曲线上任意一点的值,我们可以用不同的分类阈值多次评估一个逻辑回归模型,但这效率不高。因此,有一种更高效的方法被使用,即 AUC。

AUC: ROC曲线下面积

AUC 指的是 ROC 曲线下面积。顾名思义,AUC 计算了整个 ROC 曲线下的二维面积,如下图所示:

Performance Metrics in Machine Learning

AUC 计算了所有阈值下的性能,并提供了一个综合度量。AUC 的值范围从 0 到 1。这意味着一个 100% 错误预测的模型 AUC 为 0.0,而一个 100% 正确预测的模型 AUC 为 1.0。

何时使用 AUC

AUC 应该用于衡量预测的排名好坏,而不是它们的绝对值。此外,它衡量的是模型预测的质量,而无需考虑分类阈值。

何时不应使用 AUC

由于 AUC 是尺度不变的,但这并不总是理想的,当我们还需要校准概率输出时,AUC 就不是首选。

此外,当假负例和假正例的成本存在巨大差异,并且很难最小化其中一类分类错误时,AUC 不是一个有用的指标。

2. 回归性能指标

回归是一种监督学习技术,旨在找出因变量和自变量之间的关系。预测性回归模型预测一个数值或离散值。用于回归的指标与分类指标不同。这意味着我们不能使用准确率指标(上文解释过)来评估回归模型;相反,回归模型的性能通常以预测误差的形式报告。以下是用于评估回归模型性能的常用指标。

  • 平均绝对误差
  • 均方误差
  • R2 分数
  • 调整后的 R2

I. 平均绝对误差 (MAE)

平均绝对误差或 MAE 是最简单的指标之一,它测量实际值和预测值之间的绝对差,其中“绝对”意味着将数字视为正数。

为了理解 MAE,让我们以线性回归为例,模型在因变量和自变量之间画出一条最佳拟合线。为了测量 MAE 或预测误差,我们需要计算实际值和预测值之间的差。但是为了找到整个数据集的绝对误差,我们需要找到整个数据集的平均绝对值。

计算 MAE 使用以下公式:

Performance Metrics in Machine Learning

此处,

Y 是实际结果,Y' 是预测结果,N 是数据点的总数。

MAE 对异常值更具鲁棒性。MAE 的一个局限性是它不可微,因此我们需要应用不同的优化器,如梯度下降。然而,为了克服这个局限性,可以使用另一个指标,即均方误差或 MSE。

II. 均方误差

均方误差或 MSE 是回归评估中最合适的指标之一。它测量模型给出的预测值和实际值之间平方差的平均值。

由于在 MSE 中,误差是平方的,因此它只取非负值,并且通常是正且非零的。

此外,由于平方差,它也会惩罚小的误差,因此会导致高估模型的糟糕程度。

与其他回归指标相比,MSE 是一个更受青睐的指标,因为它是可微的,因此可以更好地进行优化。

计算 MSE 的公式如下:

Performance Metrics in Machine Learning

此处,

Y 是实际结果,Y' 是预测结果,N 是数据点的总数。

III. R 平方分数

R 平方误差也称为决定系数,是另一个用于回归模型评估的流行指标。R 平方指标使我们能够将我们的模型与一个恒定的基线进行比较,以确定模型的性能。为了选择恒定基线,我们需要取数据的平均值,并在平均值处画一条线。

无论值是大是小,R 平方分数总是小于或等于 1。

Performance Metrics in Machine Learning

IV. 调整后的 R 平方

调整后的 R 平方,顾名思义,是 R 平方误差的改进版本。R 平方有一个局限性,即即使模型没有改进,增加项也会导致分数提高,这可能会误导数据科学家。

为了克服 R 平方的问题,使用了调整后的 R 平方,它总是显示比 R² 更低的值。这是因为它会调整增加预测变量的值,并且只有在有真正改进时才会显示改进。

我们可以如下计算调整后的 R 平方:

Performance Metrics in Machine Learning

此处,

n 是观测值的数量

k 表示自变量的数量

而 Ra2 表示调整后的 R2