Matplotlib绘制混淆矩阵的实现


Posted in Python onMay 27, 2021

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

代码如下:

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')

效果:

Matplotlib绘制混淆矩阵的实现

Matplotlib绘制混淆矩阵的实现

第二种情况:显示数字

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

效果:

Matplotlib绘制混淆矩阵的实现

Matplotlib绘制混淆矩阵的实现

到此这篇关于Matplotlib绘制混淆矩阵的实现的文章就介绍到这了,更多相关Matplotlib 混淆矩阵内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
pygame学习笔记(5):游戏精灵
Apr 15 Python
Python之web模板应用
Dec 26 Python
Python3用tkinter和PIL实现看图工具
Jun 21 Python
分享Python切分字符串的一个不错方法
Dec 14 Python
浅析Python与Mongodb数据库之间的操作方法
Jul 01 Python
python操作excel让工作自动化
Aug 09 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
Feb 17 Python
Python导入数值型Excel数据并生成矩阵操作
Jun 09 Python
Pycharm打开已有项目配置python环境的方法
Jul 03 Python
python3从网络摄像机解析mjpeg http流的示例
Nov 13 Python
python使用scapy模块实现ping扫描的过程详解
Jan 21 Python
PyMongo 查询数据的实现
Jun 28 Python
只需要100行Python代码就可以实现的贪吃蛇小游戏
PyTorch dropout设置训练和测试模式的实现
May 27 #Python
pytorch Dropout过拟合的操作
浅谈pytorch中的dropout的概率p
May 27 #Python
让文件路径提取变得更简单的Python Path库
Pytorch中的数据集划分&正则化方法
Pytorch 如何实现常用正则化
You might like
php minixml详解
2008/07/19 PHP
jquery ready()的几种实现方法小结
2010/06/18 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
javascript 回到顶部效果的实现代码
2014/02/17 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
JQUERY表单暂存功能插件分享
2016/02/23 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
jQuery中 $ 符号的冲突问题及解决方案
2016/11/04 Javascript
概述jQuery中的ajax方法
2016/12/16 Javascript
JS调用Android、Ios原生控件
2017/01/06 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
vue.js移动端tab组件的封装实践实例
2017/06/30 Javascript
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
在vue项目中使用sass的配置方法
2018/03/20 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
2019/08/14 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
Flask框架Jinjia模板常用语法总结
2018/07/19 Python
python 函数的缺省参数使用注意事项分析
2019/09/17 Python
Python opencv相机标定实现原理及步骤详解
2020/04/09 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
大学生村官典型材料
2014/01/12 职场文书
《美丽的公鸡》教学反思
2014/02/25 职场文书
培训科主任岗位职责
2014/08/08 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
信息技术课教学反思
2016/02/23 职场文书