对于机器学习多分类模型来说,其评价指标除了精度之外,常用的还有混淆矩阵和分类报告,下面来展示一下如何绘制混淆矩阵,这在论文中经常会用到。
代码如下:

import itertools
import matplotlib.pyplot as plt
import numpy as np
# 绘制混淆矩阵
def plot_confusion_matrix(cm, classes, normalize=False, title='Confusion matrix', cmap=plt.cm.Blues):"""- cm : 计算出的混淆矩阵的值- classes : 混淆矩阵中每一行每一列对应的列- normalize : True:显示百分比, False:显示个数"""if normalize: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' if normalize else 'd'thresh = cm.max() / 2.for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):plt.text(j, i, format(cm[i, j], fmt),horizontalalignment="center",color="white" if cm[i, j] > thresh else "black")plt.tight_layout()plt.ylabel('True label')plt.xlabel('Predicted label')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='Normalized confusion matrix')

效果:


第二种情况:显示数字

plot_confusion_matrix(cnf_matrix, classes=attack_types, normalize=False, title='Normalized confusion matrix')

效果:


结束语:如果本篇博客对您有帮助,请点赞、关注或收藏,您的鼓励是博主进步的动力,感谢支持,共同进步。

Matplotlib绘制混淆矩阵相关推荐

  1. python绘制混淆矩阵_使用python matplotlib绘制混淆矩阵

    使用python matplotlib绘制混淆矩阵 今天使用了python matplotlib包,绘制混淆矩阵.基本代码参考官网教程,在此基础上增加了格网显示. 代码说明: cm - 混淆矩阵的数值 ...

  2. python matplotlib绘制混淆矩阵并配色

    文章目录 步骤1:网络测试结果保存 步骤2:矩阵绘制 混淆矩阵绘制结果 步骤1:网络测试结果保存 以pytorch为例,在测试阶段保存结果的参考代码为: resultTxtName = "r ...

  3. matplotlib绘制混淆矩阵_混淆矩阵及其可视化

    混淆矩阵(Confusion Matrix)是机器学习中用来总结分类模型预测结果的一个分析表,是模式识别领域中的一种常用的表达形式.它以矩阵的形式描绘样本数据的真实属性和分类预测结果类型之间的关系,是 ...

  4. 30.32.33.词云图、3D绘图、矩阵可视化、绘制混淆矩阵

    30.词云图(Word cloud) 30.1.Example 1: Basic word cloud 31.3D绘图 31.1.在3D图上绘制2D数据 31.2.3D 散点图 (scatterplo ...

  5. python绘制混淆矩阵_如何实现python绘制混淆矩阵?

    大家从python基础到如今的入门,想必都对python有一定基础,今天小编给大家带来一个关于python的高阶内容--绘制混淆矩阵,一起来看下吧~ 介绍: 混淆矩阵通过表示正确/不正确标签的计数来表 ...

  6. senborn绘制混淆矩阵

    使用热力图绘制混淆矩阵: import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot a ...

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

    这篇文章主要介绍了详解使用python绘制混淆矩阵(confusion_matrix),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学 ...

  8. 利用python绘制混淆矩阵

    利用python绘制混淆矩阵,直接附代码. from sklearn.metrics import confusion_matrix import matplotlib.pyplot as plty_ ...

  9. python绘制混淆矩阵(2s-AGCN结果分析)

    2022.4.19 结果更正,原函数得到的混淆函数存在问题,用自己写的函数绘制结果并不是A3和A4,而是A30和A12,以及A11和A12 1.运行2s-AGCN 双流自适应图卷积网络有现成的开源代码 ...

最新文章

  1. django定时任务实现(言简意赅) Django折腾记之启动定时任务(转)
  2. 卡尔曼滤波 -- 从推导到应用(一) 转有关键思想 K增益是最小 贺一佳博士
  3. 青龙羊毛——东方头条(搬砖,非原创)
  4. react学习笔记(8)生命周期回顾与再认识
  5. matlab 随机数权重,MATLAB中加权随机数
  6. 软件c#语言调用摄像头,C#调用摄像头的几种方式
  7. qgraphicsitem 复制副本_QGraphicsItem:调用paint函数时
  8. LDR 、ADR介绍
  9. vSphere Esxi5.1 创建共享磁盘
  10. 图片插入mysql数据库_图片如何存入数据库?
  11. SqlServer 对 数据类型 text 的操作
  12. mysql 5.7.19 rpm下载_centos6.8 mysql5.7 rpm安装与完全卸载
  13. Halcon:标准标定板的自制方法
  14. python36安装opencv3.2_Python3.5.3下配置opencv3.2.0的操作方法
  15. c语言常用词汇下载,C语言常用词汇表
  16. mysql group 索引失效_介绍mysql索引失效的情况
  17. PROTEL 99 使用之添加库
  18. 最大团问题(迭代回溯法)
  19. Excel-一元线性回归和多元线性回归(借助数据分析功能和直接计算)
  20. MIMO信道容量仿真MATLAB,mimo系统的信道容量分析及matlab仿真.doc

热门文章

  1. 英雄联盟无限火力服务器崩溃,英雄联盟:无限火力让人崩溃的N种方式,看看你中招没有?...
  2. 第四天 魔小灯(蓝牙智能灯)1
  3. 开发android主攻四大方向
  4. CK7106 是一颗Rail-to-Rail Operational Amplifiers,可以兼容G1582RD1U、LP6291
  5. 1164:digit函数
  6. 美国人生活中的口头禅
  7. 【QT开发笔记-基础篇】| 第一章 QT入门 | 1.4 项目构建流程
  8. 快手直播伴侣电脑版屏幕过大解决方案
  9. DGIOT基于低代码amis配置联动短信告警
  10. 松哥整理了 15 道 Spring Boot 高频面试题,看完当面霸!