如何解释 Python 中的混淆矩阵 for 2 类

How to interpret the Confusion Matrix in Python for 2 classes

我正在 Python 中实施一个预测成功或失败的机器学习模型。我创建了一个虚拟变量,成功时为 1,失败时为 0。我了解混淆矩阵的概念,但我在网上找到了一些 TP 和 TN 位于矩阵相对两侧的信息。我想知道如何解释我的变量的结果。矩阵的左上角是否预测真阳性?如果是这样,这会转化为正确预测的成功数量或正确预测的失败数量吗?

矩阵是否与下图匹配?如果匹配,如何匹配?

理想情况下,请在上下文中描述混淆矩阵的每个角,其中成功为1,失败为0。

在二进制 classification 的情况下,其中 classes 是 0 和 1 并且根据 doc

  • 第一行是 class 0
  • 第二行是 class 1
  • 第 1 列用于预测 class 0
  • 第二列用于预测 class 1

系数 (0, 0) 是真负计数 (TN)。
系数 (0, 1) 是误报计数 (FP)。
系数 (1, 0) 是假阴性计数 (FN)。
系数 (1, 1) 是真阳性计数 (TP)。

参考文档:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

由于您没有为 confusion_matrix 中的 labels 指定第三个参数,因此 y_test_res 中的标签将按排序顺序使用,即在这种情况下 0 然后 1。行标签代表实际 y,列标签代表预测 y。

所以左上角显示了失败观察的数量,即实际 y 是 0 并且被预测为 0,即真阴性。右下角显示真阳性,即实际 y 为 1,预测为 0.

右上角是实际 y = 0 和预测 y = 1,即误报。

使用 confusion matrix plot 会稍微美化一下。

from sklearn.metrics import plot_confusion_matrix
plot_confusion_matrix(forest, X_test, y_test)  
print(plt.show())