目录
老饼讲解:一步一步上手学习

【介绍】一篇入门-混淆矩阵是什么

作者 : 老饼 发表日期 : 2026-01-06 17:18:08 更新日期 : 2026-05-11 22:34:54
老饼讲解-简单易懂,干货满满,爽过嗦螺!


混淆矩阵(Confusion Matrix)是用来评估分类模型效果的一个矩阵,特别是多分类模型,一般的指标难以评估模型效果时,就可以从混淆矩阵中可以快速看到模型对各个类别的判别情况,下面我们就来说说混淆矩阵的用途、怎么看混淆矩阵,以及如何画混淆矩阵的热力图。

一、什么是混淆矩阵

混淆矩阵(Confusion Matrix,CM)是一个用来查看分类模型预测效果的矩阵,直接看图就明白了:

混淆矩阵(Confusion Matrix,CM)

如图,混淆矩阵CM是一个"类别个数""类别个数"的矩阵,其中, 代表第 类样本被判为类的个数与占比,易知,混淆矩阵CM的对角线就是判断准确的个数。

从混淆矩阵可以很清晰看到各类别的判别情况,因为多分类模型一般可以通过混淆矩阵来查看模型效果。

二、混淆矩阵CM的计算与代码

在python中可以用sklearn的confusion_matrix来计算混淆矩阵,再用heatmap画出热力图,具体示例代码如下

'''
本代码用于展示如何用sklearn来画混淆矩阵
本代码来自《老饼讲解-机器学习》www.bbblearn.com
'''
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix
import seaborn as sns
 
# 真实标签和预测标签
y_true = [0,1,2,2,0,0,1,2,1,0]                # 样本的真实标签
y_pred = [0,0,2,2,1,1,0,2,1,0]                # 样本的预测标签
cm = confusion_matrix(y_true, y_pred)         # 生成混淆矩阵 
 
sns.heatmap(cm, annot=True, fmt='d')         # 使用Seaborn的heatmap来画混淆矩阵
plt.title('Confusion Matrix')
plt.xlabel('Predicted labels')
plt.ylabel('True labels')
plt.show()

运行结果如下:

混淆矩阵计算结果

这就是混淆矩阵了,它的意义就如我们上面所说的那样。

总结

在分类模型中,可以用混淆矩阵矩阵来看模型的分类结果,它就是展示每类别样本被判别为各个类别的情况,特别是多分类模型,往往都会用混淆矩阵来展示模型的分类结果。



图标 评论
添加评论