机器学习中的混淆矩阵

17 Mar 2025 | 4 分钟阅读

混淆矩阵是用于确定分类模型在给定测试数据集上性能的矩阵。只有在已知测试数据的真实值时才能确定。矩阵本身很容易理解,但相关的术语可能会令人困惑。因为它以矩阵的形式显示模型性能中的错误,所以也被称为误差矩阵。下面是混淆矩阵的一些特点:

  • 对于有2个预测类别的分类器,该矩阵是2*2的表格;对于3个类别,它是3*3的表格,依此类推。
  • 该矩阵分为两个维度,即预测值实际值,以及预测的总数。
  • 预测值是模型预测出的值,而实际值是给定观测值的真实值。
  • 它看起来像下表:
Confusion Matrix in Machine Learning

上表包含以下几种情况:

  • 真阴性 (True Negative): 模型的预测为“否”,而真实或实际值也为“否”。
  • 真阳性 (True Positive): 模型的预测为“是”,而实际值也为“是”。
  • 假阴性 (False Negative): 模型的预测为“否”,但实际值为“是”,这也被称为第二类错误
  • 假阳性 (False Positive): 模型的预测为“是”,但实际值为“否”。这也被称为第一类错误

机器学习中为何需要混淆矩阵

  • 它评估分类模型在测试数据上进行预测时的性能,并告诉我们我们的分类模型有多好。
  • 它不仅能指出分类器犯的错误,还能指出错误的类型,例如是第一类错误还是第二类错误。
  • 借助混淆矩阵,我们可以计算模型的不同参数,例如准确率、精确率等。

示例:我们可以通过一个例子来理解混淆矩阵。

假设我们试图创建一个模型,可以预测某种疾病的结果,即一个人是否患有该疾病。那么,对此的混淆矩阵如下所示:

Confusion Matrix in Machine Learning

从上面的例子中,我们可以得出结论:

  • 该表格是针对一个二元分类器给出的,它有两个预测结果:“是”和“否”。这里,“是”表示患者患有该疾病,“否”表示患者没有该疾病。
  • 该分类器总共做出了100次预测。在100次预测中,89次是正确的预测11次是不正确的预测
  • 模型预测为“是”32次,预测为“否”68次。而实际的“是”有27次,实际的“否”有73次。

使用混淆矩阵进行计算

我们可以使用这个矩阵为模型进行各种计算,例如模型的准确率。这些计算如下:

  • 分类准确率 (Classification Accuracy): 这是确定分类问题准确性的重要参数之一。它定义了模型预测正确输出的频率。可以计算为分类器做出的正确预测数与分类器做出的所有预测数之比。公式如下:
    Confusion Matrix in Machine Learning
  • 错误率 (Misclassification rate): 它也被称为错误率,定义了模型给出错误预测的频率。错误率的值可以计算为不正确预测数与分类器做出的所有预测数之比。公式如下:
    Confusion Matrix in Machine Learning
  • 精确率 (Precision): 它可以定义为模型提供的正确输出的数量,或者在所有模型预测为阳性的类别中,有多少实际上是正确的。可以使用以下公式计算:
    Confusion Matrix in Machine Learning
  • 召回率 (Recall): 它定义为在所有实际为阳性的类别中,我们的模型正确预测了多少。召回率应尽可能高。
    Confusion Matrix in Machine Learning
  • F-score: 如果两个模型的精确率低而召回率高,或者反之,就很难比较这些模型。因此,为此我们可以使用 F-score。这个分数帮助我们同时评估召回率和精确率。如果召回率等于精确率,F-score达到最大值。可以使用以下公式计算:
    Confusion Matrix in Machine Learning

混淆矩阵中使用的其他重要术语

  • 零错误率 (Null Error rate): 它定义了如果模型总是预测多数类别,它会多频繁地出错。根据准确率悖论,据说“最好的分类器的错误率比零错误率要高。
  • ROC 曲线: ROC 是一条显示分类器在所有可能阈值下性能的图。该图是在真阳性率(Y轴)和假阳性率(X轴)之间绘制的。