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模块设置标题,文章内容丰富且以专业的角度为大家分析和...