📜  混淆矩阵python(1)

📅  最后修改于: 2023-12-03 15:40:46.021000             🧑  作者: Mango

混淆矩阵 Python 介绍

混淆矩阵(Confusion Matrix)是机器学习中常用的评价模型性能的指标。将模型预测结果与实际结果进行比较,计算出具体的TP、FP、TN、FN等指标,能够全面地评估模型的性能表现。

在 Python 中,我们可以借助 scikit-learn 库直接生成混淆矩阵。其代码如下:

from sklearn.metrics import confusion_matrix

y_true = [0, 1, 0, 1, 0, 1, 0, 1]
y_pred = [0, 0, 0, 1, 0, 0, 1, 1]

confusion_matrix(y_true, y_pred)

该段代码生成了一个 $2 \times 2$ 的混淆矩阵。输出结果如下:

array([[3, 1],
       [2, 2]])

其中,第一列代表实际值是 0 的样本,第二列代表实际值是 1 的样本。同样,第一行代表预测为 0 的样本,第二行代表预测为 1 的样本。那么具体的指标如下:

  • TP(True Positive):实际值为 1,预测值为 1 的样本数量,即混淆矩阵左上角的值。在本例中,TP 的值为 3
  • TN(True Negative):实际值为 0,预测值为 0 的样本数量,即混淆矩阵右下角的值。在本例中,TN 的值为 2
  • FP(False Positive):实际值为 0,预测值为 1 的样本数量,即混淆矩阵右上角的值。在本例中,FP 的值为 1
  • FN(False Negative):实际值为 1,预测值为 0 的样本数量,即混淆矩阵左下角的值。在本例中,FN 的值为 2

根据以上的四个指标,我们可以简单地计算出模型的准确率(Accuracy)、精确率(Precision)和召回率(Recall),还可以计算 F1 值(F1-score)。对应的代码如下:

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score

y_true = [0, 1, 0, 1, 0, 1, 0, 1]
y_pred = [0, 0, 0, 1, 0, 0, 1, 1]

print("Accuracy:", accuracy_score(y_true, y_pred))
print("Precision:", precision_score(y_true, y_pred))
print("Recall:", recall_score(y_true, y_pred))
print("F1-score:", f1_score(y_true, y_pred))

输出结果如下:

Accuracy: 0.625
Precision: 0.6666666666666666
Recall: 0.5
F1-score: 0.5714285714285714

以上便是 Python 中生成混淆矩阵和常见指标的示例代码。