利用python进行混淆矩阵的绘制

话不多说,用python绘制混淆矩阵,下面直接附上代码。

##coding:utf-8
import matplotlib.pyplot as plt
import numpy as np
import itertools 
from matplotlib import rcParams

#定义混淆矩阵数据
confusion_matrix = np.array(
		[[451,1,12,6,1],
		[18,451,5,9,14],
		[41,27,487,2,15],
		[13,21,5,395,4],
		[1,4,15,19,421]])
		
#计算每个类别的准确率
class_accuracy = confusion_matrix /confusion_matrix.sum(axis=1)[:,None]

#绘制混淆矩阵图像
#要想改变颜色,修改cmap参数,红色:plt.cm.Reds
plt.imshow(class_accuracy,cmap=plt.cm.Blues) 

#添加网格
plt.grid(False)
plt.colorbar()
#labels表示你不同类别的代号,这里有5个类别
labels = ['0', '1', '2', '3', '4']
tick_marks = np.arange(len(labels))
plt.xticks(tick_marks,labels,fontsize=12)
plt.yticks(tick_marks,labels,fontsize=12)


#在每个小格子中显示相应的数值和准确率
for i,j in itertools.product(range(class_accuracy.shape[0]),range(class_accuracy.shape[1])):

    #显示数值
    value = confusion_matrix[i,j]
    plt.text (j,i,value,horizontalalignment="center",color="white" if class_accuracy[i,j]>0.5 else "black")


    #显示准确率
    acc= class_accuracy[i,j]*100
    plt.text (j,i+0.3,f"{acc:.2f}%",horizontalalignment="center",color="black")


#添加x和y轴标签
plt.ylabel("True label")
plt.xlabel("Predicted label")
plt.title ("Confusion Matrix")

#显示图像
plt.show()

要使用Python绘制混淆矩阵并更改文字的字号,可以利用`sklearn`库处理混淆矩阵数据以及`matplotlib`和`seaborn`库进行可视化。以下是详细的步骤: ### 步骤一:安装必要的库 首先,确保您已经安装了 `scikit-learn`, `numpy`, 和 `matplotlib` 库。如果尚未安装,可通过以下命令安装: ```bash pip install scikit-learn matplotlib numpy seaborn ``` ### 步骤二:导入所需的库和函数 接下来,在Python脚本中导入需要的库: ```python import numpy as np from sklearn.metrics import confusion_matrix from matplotlib import pyplot as plt import seaborn as sns ``` ### 步骤三:创建或加载数据集 假设我们正在处理的是分类模型的数据。下面是一个简单的示例数据: ```python # 示例标签预测值和真实值 y_true = [2, 0, 2, 2, 0, 1] y_pred = [0, 0, 2, 2, 0, 2] # 计算混淆矩阵 cm = confusion_matrix(y_true, y_pred) print(cm) ``` ### 步骤四:绘制混淆矩阵 现在我们将绘制这个混淆矩阵,并设置文字的字号: ```python plt.figure(figsize=(8,6)) sns.heatmap(cm, annot=True, fmt="d", cmap='Blues', cbar=False) # 设置文本字体大小 for text in ax.texts: text.set_fontsize(14) # 添加标题和坐标轴标签 ax.set_title('Confusion Matrix', fontsize=16) ax.set_xlabel('Predicted label', fontsize=14) ax.set_ylabel('True label', fontsize=14) plt.show() ``` ### 相关问题: 1. **如何调整混淆矩阵的颜色地图**? - 您可以通过修改`sns.heatmap()`中的`cmap`参数来调整颜色映射。 2. **如何从CSV文件加载混淆矩阵数据**? - 使用pandas读取CSV文件,然后计算混淆矩阵。 3. **如何将混淆矩阵应用于实际的机器学习项目中**? - 将混淆矩阵用于评估分类模型的表现,分析模型对不同类别的识别能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值