Machine Learning 简明教程

Machine Learning - Confusion Matrix

这是衡量分类问题的性能的最简单方法,其中输出可以是两种或更多类型的类别。混淆矩阵只不过是一个具有两个维度“实际”和“预测”的表,此外,这两个维度都具有下文所示的“真阳性(TP)”、“真阴性(TN)”、“假阳性(FP)”、“假阴性(FN)” -

confusion matrix

与混淆矩阵相关的术语的解释如下 -

  1. True Positives (TP) − 是数据点的实际类别和预测类别均为 1 的情况。

  2. True Negatives (TN) − 是数据点的实际类别和预测类别均为 0 的情况。

  3. False Positives (FP) − 是数据点的实际类别为 0 和数据点的预测类别为 1 的情况。

  4. False Negatives (FN) – 这是数据点的实际类别为 1,而数据点的预测类别为 0 的情况。

How to Implement Confusion Matrix in Python?

要在 Python 中实现混淆矩阵,我们可以使用 scikit-learn 库的 sklearn.metrics 模块中的 confusion_matrix() 函数。以下是如何使用 confusion_matrix() 函数的一个简单示例 −

from sklearn.metrics import confusion_matrix

# Actual values
y_actual = [0, 1, 0, 1, 1, 0, 0, 1, 1, 1]

# Predicted values
y_pred = [0, 1, 0, 1, 0, 1, 0, 0, 1, 1]

# Confusion matrix
cm = confusion_matrix(y_actual, y_pred)
print(cm)

在这个示例中,我们有两个数组: y_actual 包含目标变量的实际值, y_pred 包含目标变量的预测值。然后,我们调用 confusion_matrix() 函数,将 y_actualy_pred 作为参数传递进去。该函数返回一个表示混淆矩阵的 2D 数组。

上述代码的 output 将如下所示 −

[[3 1]
 [2 4]]

我们还可以使用热图来可视化混淆矩阵。以下是我们可以使用 seaborn 库中的 heatmap() 函数来实现此目标的方法

import seaborn as sns

# Plot confusion matrix as heatmap
sns.heatmap(cm, annot=True, cmap='summer')

这将生成一个显示混淆矩阵的热图 −

heatmap

在此热图中,x 轴表示预测值,y 轴表示实际值。热图中每个方块的颜色指示落入每个类别的样本数。