,,详解使用python绘制混淆矩阵(confusion_matrix)

,,详解使用python绘制混淆矩阵(confusion_matrix)

本文主要介绍用python绘制混淆矩阵的详细说明。通过示例代码详细介绍,对大家的学习或工作有一定的参考价值。有需要的朋友就跟着下面的边肖学习吧。

Summary

当涉及到分类问题时,我们往往需要通过可视化混淆矩阵来分析实验结果,以得到参数调整的思路。本文介绍了如何用python绘制混淆矩阵。本文仅提供代码和必要的注释。

Code

#-*-编码:utf-8-*-

来自sklearn.metrics导入混淆_矩阵

将matplotlib.pyplot作为plt导入

将numpy作为np导入

#labels表示不同类别的代码名称。例如,这里的演示中有13个类别。

labels=['A ',' B ',' C ',' F ',' G ',' H ',' I ',' J ',' K ',' L ',' M ',' N ',' O']

'''

具体解释一下re_label.txt和pr_label.txt这两个文件。例如,你有100个样本。

要做预测,这100个样本中有10个类别,所以首先你要有这100个样本的真实标签。

是的,有10个类别,用[0,9]表示,所以re_label.txt文件里应该有100个。

数字,第n个数字代表第n个样本的真实标签(100个样本自然有100个)

数字)。

同样,pr_label.txt也应该有1个数字,第n个数字代表第n个样本经过。

来自你训练过的网络的预测。

这样,两个文件re_label.txt和pr_label.txt分别代表你的样本的真实标签和预测标签,然后读取两个变量y_true和y_pred,计算背后的混淆矩阵。当然,你不必用这个txt格式的文件来读入,只要你最后把你的真实

并且预测标签可以分别保存在两个变量y_true和y_pred中。

'''

y_true=np.loadtxt('./Data/re_label.txt ')

y_pred=np.loadtxt('./Data/pr_label.txt ')

tick _ marks=NP . array(range(len(labels)))0.5

def plot_confusion_matrix(cm,title='混淆矩阵',cmap=plt.cm.binary):

plt.imshow(cm,interpolation='nearest ',cmap=cmap)

plt.title(标题)

plt.colorbar()

xlocations=NP . array(range(len(labels)))

PLT . x ticks(x位置,标签,旋转=90度)

plt.yticks(xlocations,标签)

plt.ylabel('真实标签')

plt.xlabel('预测标签')

cm=混淆矩阵(y_true,y_pred)

np.set_printoptions(精度=2)

cm _ normalized=cm . astype(' float ')/cm . sum(axis=1)[:np.newaxis]

打印cm _规格化

plt.figure(figsize=(12,8),dpi=120)

ind_array=np.arange(len(labels))

x,y=np.meshgrid(ind_array,ind_array)

对于x_val,zip中的y _ val(x . flatten()、y.flatten()):

c=cm _归一化[y_val][x_val]

如果c 0.01:

plt.text(x_val,y_val,' %0.2f' % (c,),color='red ',fontsize=7,va='center ',ha='center ')

#偏移刻度

plt.gca()。set_xticks(tick_marks,minor=True)

plt.gca()。set _ y ticks(tick _ mark,minor=True)

PLT . GCA(). xaxis . set _ ticks _ position(' none ')。

PLT . GCA()ya xis . set _ ticks _ position(' none ')。

plt.grid(True,其中='minor ',linestyle='-')

plt.gcf()。支线剧情_调整(bottom=0.15)

plot _ confusion _ matrix(cm _ Normalized,title=' Normalized confusion matrix ')

#显示混淆矩阵

' plt.savefig('./Data/confusion_matrix.png ',format='png ')

plt.show()

结果

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: