Matplotlib如何绘制混淆矩阵
小编给大家分享一下Matplotlib如何绘制混淆矩阵,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
代码如下:
importitertools
importmatplotlib.pyplotasplt
importnumpyasnp
#绘制混淆矩阵
defplot_confusion_matrix(cm,classes,normalize=False,title='Confusionmatrix',cmap=plt.cm.Blues):
"""
-cm:计算出的混淆矩阵的值
-classes:混淆矩阵中每一行每一列对应的列
-normalize:True:显示百分比,False:显示个数
"""
ifnormalize:
cm=cm.astype('float')/cm.sum(axis=1)[:,np.newaxis]
print("显示百分比:")
np.set_printoptions(formatter={'float':'{:0.2f}'.format})
print(cm)
else:
print('显示具体数字:')
print(cm)
plt.imshow(cm,interpolation='nearest',cmap=cmap)
plt.title(title)
plt.colorbar()
tick_marks=np.arange(len(classes))
plt.xticks(tick_marks,classes,rotation=45)
plt.yticks(tick_marks,classes)
#matplotlib版本问题,如果不加下面这行代码,则绘制的混淆矩阵上下只能显示一半,有的版本的matplotlib不需要下面的代码,分别试一下即可
plt.ylim(len(classes)-0.5,-0.5)
fmt='.2f'ifnormalizeelse'd'
thresh=cm.max()/2.
fori,jinitertools.product(range(cm.shape[0]),range(cm.shape[1])):
plt.text(j,i,format(cm[i,j],fmt),
horizontalalignment="center",
color="white"ifcm[i,j]>threshelse"black")
plt.tight_layout()
plt.ylabel('Truelabel')
plt.xlabel('Predictedlabel')
plt.show()测试数据:
cnf_matrix=np.array([[8707,64,731,164,45], [1821,5530,79,0,28], [266,167,1982,4,2], [691,0,107,1930,26], [30,0,111,17,42]]) attack_types=['Normal','DoS','Probe','R2L','U2R']
第一种情况:显示百分比
plot_confusion_matrix(cnf_matrix,classes=attack_types,normalize=True,title='Normalizedconfusionmatrix')
效果:
第二种情况:显示数字
plot_confusion_matrix(cnf_matrix,classes=attack_types,normalize=False,title='Normalizedconfusionmatrix')
效果:
看完了这篇文章,相信你对“Matplotlib如何绘制混淆矩阵”有了一定的了解,如果想了解更多相关知识,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!
推荐阅读
-
python怎么使用Matplotlib绘制多种常见图形
python怎么使用Matplotlib绘制多种常见图形今天小编给...
-
Python+Matplotlib怎么实现给图像添加文本标签与注释
Python+Matplotlib怎么实现给图像添加文本标签与注释...
-
Python Matplotlib怎么实现垂直条形图和水平条形图
Python Matplotlib怎么实现垂直条形图和水平条形图这...
-
Python编程使用matplotlib挑钻石seaborn画图的示例分析
Python编程使用matplotlib挑钻石seaborn画图的示例分析...
-
怎么在Matplotlib中使用字符串绘制散点图
本篇文章给大家分享的是有关怎么在Matplotlib中使用字符串绘制散点图,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这...
-
使用matplotlib怎么绘制一个阶梯图
这篇文章将为大家详细讲解有关使用matplotlib怎么绘制一个阶梯图,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读...
-
怎么在matplotlib中使用pyplot模块
这期内容当中小编将会给大家带来有关怎么在matplotlib中使用pyplot模块,文章内容丰富且以专业的角度为大家分析和叙述,阅...
-
如何在matplotlib中使用grid()函数设置网格线外观
本篇文章为大家展示了如何在matplotlib中使用grid()函数设置网格线外观,内容简明扼要并且容易理解,绝对能使你眼前一亮,...
-
如何在matplotlib中使用pyplot模块设置标题
这期内容当中小编将会给大家带来有关如何在matplotlib中使用pyplot模块设置标题,文章内容丰富且以专业的角度为大家分析和...
