如何检查机器学习模型的准确性

2025年8月11日 | 阅读 8 分钟

准确率是机器学习模型中用于评估分类问题的一个众所周知的验证方法。准确率的相对简单性是它受欢迎的主要原因。我们可以很容易地理解准确率,并且易于实现。使用准确率,我们可以轻松地评估模型的性能。

在现实生活情境中,建模中遇到的问题很少像其他问题那样简单。我们可以处理不平衡、多类别或许多分类问题的数据集。当我们使用任何机器学习方法解决任何问题时,高准确率并非总是我们的主要目标。随着你在机器学习中解决更多问题的能力增强,利用精确率会变得更合适,并且需要更多的思考。

为了更好地理解准确率的重要性,准确率的实际含义以及如何计算准确率,将在本文中全部涵盖。

精度

准确率主要用于分类问题,以获得模型执行的适当百分比,从而了解模型正确预测了多少。在任何模型中,都会有几个分类问题。当我们执行它们时,准确率通过判断所有问题是否都被正确预测,相对于模型所做的总预测数,起着主要作用。我们可以通过将正确预测的问题数除以总预测数来计算任何模型的准确率。

How to Check the Accuracy of your Machine Learning Model

上述公式对于计算任何模型的准确率都非常有用。它为二分类问题提供了简单的理解。

准确率悖论

当我们执行模型时,默认形式会给出整体数据集性能的总体准确率。

然而,当类别分布不平衡时,机器学习分类模型的总体准确率可能会产生误导。在这种情况下,预测模型类别非常困难。在这种情况下,出现次数最多的类别将被正确预测,该预测类别的准确率将是一个高准确率分数,而出现次数少的类别将被错误分类。当模型中出现这种情况时,预测准确率很可能是错误的,我们无法正确预测模型的性能。

例如,在任何健康问题预测模型中,我们不能因为患者文件中的任何变化而遗漏任何有害的疾病病例。如果由于任何问题而更改了任何文件,则预测器将直接根据文件或类别预测病情。然后,患有轻微健康问题的人将不得不面对严重的治疗,因为文件更改或错误分类。

现在让我们以乳腺癌数据集为例,该数据集用于对乳腺肿瘤病例进行分类

最差面积最差光滑度最差紧密度最差凹陷度最差凹陷点最差对称性最差分形维度标签
545.50.21510.18940.18590.08540.32150.0548
790.60.12540.54450.45840.15460.31540.1845
15620.14520.41520.65410.27450.33410.0845
625.20.13650.18540.14570.09650.34870.0684
850.20.18540.54100.47540.17160.36450.1057

在执行模型之前,我们通过移除危害较大的数据来更改不平衡的数据。因此,在从数据集中移除所有有害数据后,准确率约为 5.6%。

输出

Good        0.854698
Bad           0.0548726
Name: labels, dtype: float64

让我们了解如何预测模型的准确性

输出

0.9854126

我们的模型对整个模型实现了约 0.9464 的总体准确率。根据所有数据来看,这一结果非常出色。然而,如果我们使用混淆矩阵检查类别级别的预测,我们会得到一个完全不同的画面。

How to Check the Accuracy of your Machine Learning Model

我们的模型几乎误诊了所有困难的病例。结果与我们根据总体准确率指标的预期完全相反。这种情况是准确率悖论的典型例子。当您获得高准确率值时,它会给您一个虚假理由,因为您数据集严重不平衡,并且少数类别的误预测成本高昂。

在这种情况下,您会尝试以系统性后果来预测罕见但重要的危险。模型面临严重的临床疾病、经济危机、大规模恐怖袭击、流星等。

如果漏掉一个病例就足以破坏整个系统,那么即使您的模型达到 99.99% 的准确率也没有关系。仅仅依赖上述计算出的准确率分数是不够的,可能会产生误导。

如果模型的准确率不是评估我们机器学习模型性能的合适指标,我们已经涵盖了更合适的准确率示例。

  • 精确率: 精确率定义为在数据集中所有类别之间某个类别的总预测数中正确预测的百分比。
  • 召回率: 召回率定义为在数据集中所有类别之间某个类别的总预测数中正确预测的比例。
  • F-分数: F-分数定义为精确率和召回率的组合度量。
  • 混淆矩阵: 混淆矩阵定义为真/假或正/负预测率的制表总结。
  • ROC 曲线: ROC 定义为曲线的二分类诊断图。

二分类中的准确率

在二分类情况下,我们可以用真/假阳性/阴性值来表示准确率。机器学习中的准确率公式如下:

How to Check the Accuracy of your Machine Learning Model

在准确率类别中,只有两个类别。它们是正/负。

  • TP: TP 代表真阳性,即正确预测的类别,并且正确预测的类别被标记为阳性。
  • FP: FP 代表假阳性,即错误预测的类别,并且错误预测的类别被标记为阳性。
  • TN: TN 代表真阴性,即正确预测的类别,并且正确预测的类别被标记为阴性。
  • FN: FN 代表假阴性,即错误预测的类别,并且错误预测的类别被标记为阴性。

多分类问题中的准确率

在多分类问题中,我们可以使用与二分类问题相同的定义。但在多分类中,我们不能直接将结果预测为真/假定义。因此,在多分类问题中,我们可以使用其他公式来计算模型的准确率。

How to Check the Accuracy of your Machine Learning Model

上述公式中使用的术语是

  • N 用作表示样本数量的术语
  • [[..]] 这些是括号,当给定公式或表达式为真时返回 1,否则返回 0。
  • Yi 和 zi 在输出生成或预测为真后进行标记。

示例

让我们以一个包含一些真实值的混淆矩阵为例,并预测数据集中任意三个类别的准确率。

How to Check the Accuracy of your Machine Learning Model

现在,我们需要选择表中正确预测的数量,然后使用上述公式找到模型的准确率。

多分类准确率 = 7+5+3/31 = 0.483

上述公式的结果表明,我们的模型在此类别(即多分类问题)中达到了 48% 的准确率。

多标签问题中的准确率

在多标签分类问题中,数据集的类别是相互排斥的。而多标签分类与多类别问题不同,因为在多类别分类中,类别不是相互排斥的。在机器学习中,我们可以将多标签分类表示为多个二分类问题。

多标签准确率也称为汉明分数。在多标签分类中,准确率通过正确预测的标签数与活动标签数来计算。

How to Check the Accuracy of your Machine Learning Model

上述公式中使用的术语是

  • N 用作表示样本数量的术语
  • Yi 和 zi 在输出生成或预测为真后进行标记。

多标签准确率提供了更调整过的度量,因为它不依赖于“精确匹配”规则(如子集准确率)。它也不会将“真负”值视为“正确”(如我们天真的情况)。

示例

输出

0.45827400

如果在计算后得到的汉明分数接近一,那么模型的性能将很好。

汉明损失

汉明损失是一种用于获取错误预测标签数据比率的方法。它接受 0 到 1 范围内的值,其中 0 用于表示模型中没有错误。

How to Check the Accuracy of your Machine Learning Model

上述公式中使用的术语是

  • N 用作表示样本数量的术语
  • K 用作表示标签数量的术语
  • Yi 和 zi 在输出生成或预测为真后进行标记。

输出

0.03501485

如果在计算后得到的汉明损失接近一,那么模型的性能将很好。

除了这些度量之外,您还可以使用与在配对和多分类情况下找到的相同度量的多标签变体(例如,精确率、召回率、F-分数)。您还可以应用平均方法(微平均、宏平均和测试平均)或基于排名的度量。

子集准确率或精确匹配率

子集准确率也称为精确匹配率或标签集准确率。它是计算模型准确率的一种严格版本,在这种类型的预测中,如果给定的样本的所有标签都匹配,它将显示正确预测。

How to Check the Accuracy of your Machine Learning Model

上述公式中使用的术语是

  • N 用作表示样本数量的术语
  • [[..]] 这些是括号,当给定公式或表达式为真时返回 1,否则返回 0。
  • Yi 和 zi 在输出生成或预测为真后进行标记。

在机器学习中,我们总是处理大量的标签和数据集。有时需要更多的工作才能正确预测所有这些。但是使用上述准确率技术,与其他人相比,我们可以非常容易地找到准确率。与使用其他技术相比,子集准确率技术显示模型性能较低。

由于其依赖的严格标准,此度量不提供有关半准确率的信息。如果我们的模型未能预测 103 个标签中的一个,但对其余标签的预测表现良好,子集准确率仍会将这些预测归类为失败。

何时在机器学习中使用准确率分数

当您想了解模型将数据集中的数据点准确分类到类别的能力时,应使用准确率分数,而不考虑数据集中每个类别或标签的性能预测。它能让您直观地了解数据集的给定数据是否适合分类目的。

假设您需要在项目或工作中实际使用精确率度量,有非常易于使用的包,如 deep checks,它们确保用于提供关于用于评估模型的关键度量的深入报告。这使得您更容易或更方便地更好地理解模型的性能。