📜  混淆矩阵 seaborn - Python (1)

📅  最后修改于: 2023-12-03 14:56:06.761000             🧑  作者: Mango

混淆矩阵 seaborn - Python

混淆矩阵(Confusion Matrix)是分类模型中常用的评估指标,可以用来衡量模型的分类性能。在实际应用中,我们通常使用混淆矩阵来统计模型预测的预测准确率、召回率等指标,以反映模型的分类性能。

Seaborn是Python中一个强大的可视化库,它提供了绘制混淆矩阵的函数:seaborn.heatmap()。该函数可以用来绘制任意大小的矩阵,将所用分类预测准确率以颜色的形式展现出来。

下面是一个使用Seaborn绘制混淆矩阵的示例代码:

import seaborn as sns
from sklearn.metrics import confusion_matrix

# 定义真实值和预测值
true_labels = [0, 1, 0, 1, 1, 0, 0, 1, 1, 1]
pred_labels = [1, 1, 0, 1, 0, 1, 0, 1, 0, 1]

# 计算混淆矩阵
cm = confusion_matrix(true_labels, pred_labels)

# 使用heatmap绘制混淆矩阵
ax = sns.heatmap(cm, annot=True, cmap='Blues', fmt='d', xticklabels=[0, 1], yticklabels=[0, 1])
ax.set_xlabel('Predicted Label')
ax.set_ylabel('True Label')
ax.set_title('Confusion Matrix')

执行以上代码,会得到如下的混淆矩阵图:

confusion matrix

我们可以通过上图来读取模型的预测准确率、召回率等指标,比如:

  • 正确率(accuracy)= (3 + 3) / (3 + 3 + 2 + 2) = 0.6
  • Precision = TP / (TP+FP) = 3 / (3 + 2) = 0.6
  • Recall = TP / (TP+FN) = 3 / (3 + 2) = 0.6

顺带一提,如果你想更改混淆矩阵的颜色,首先需要去Seaborn官网查阅所有可供使用的调色板名字,然后将对应的名称赋给cmap参数。

下面是一个更换调色板的示例代码:

import seaborn as sns
from sklearn.metrics import confusion_matrix

# 定义真实值和预测值
true_labels = [0, 1, 0, 1, 1, 0, 0, 1, 1, 1]
pred_labels = [1, 1, 0, 1, 0, 1, 0, 1, 0, 1]

# 计算混淆矩阵
cm = confusion_matrix(true_labels, pred_labels)

# 使用heatmap绘制混淆矩阵, 修改color map
ax = sns.heatmap(cm, annot=True, cmap='YlGnBu', fmt='d', xticklabels=[0, 1], yticklabels=[0, 1])
ax.set_xlabel('Predicted Label')
ax.set_ylabel('True Label')
ax.set_title('Confusion Matrix')

执行以上代码,会得到以下混淆矩阵图:

confusion matrix

可以看到,调色板已经换成了YlGnBu,颜色相比于原来更加鲜艳一些。

到此为止,我们已经讲解了如何使用Seaborn来绘制混淆矩阵。如果你有任何问题或建议,欢迎在评论区留言!