matplotlib画混淆矩阵与正确率曲线的实例代码


Posted in Python onJune 01, 2021

混淆矩阵    

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

我们可以通过一个简单的例子来直观理解混淆矩阵

#!/usr/bin/python3.5
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['FangSong']  #可显示中文字符
plt.rcParams['axes.unicode_minus']=False
classes = ['a','b','c','d','e','f','g']
confusion_matrix = np.array([(99,1,2,2,0,0,6),(1,98,7,6,2,1,1),(0,0,86,0,0,2,0),(0,0,0,86,1,0,0),(0,0,0,1,94,1,0),(0,1,5,1,0,96,8),(0,0,0,4,3,0,85)],dtype=np.float64)
 
plt.imshow(confusion_matrix, interpolation='nearest', cmap=plt.cm.Oranges)  #按照像素显示出矩阵
plt.title('混淆矩阵')
plt.colorbar()
tick_marks = np.arange(len(classes))
plt.xticks(tick_marks, classes, rotation=-45)
plt.yticks(tick_marks, classes)
 
thresh = confusion_matrix.max() / 2.
#iters = [[i,j] for i in range(len(classes)) for j in range((classes))]
#ij配对,遍历矩阵迭代器
iters = np.reshape([[[i,j] for j in range(7)] for i in range(7)],(confusion_matrix.size,2))
for i, j in iters:
    plt.text(j, i, format(confusion_matrix[i, j]),fontsize=7)   #显示对应的数字
 
plt.ylabel('真实类别')
plt.xlabel('预测类别')
plt.tight_layout()
plt.show()

正确率曲线 

fig ,ax= plt.subplots()
    plt.plot(np.arange(iterations), fig_acc,'b')
    plt.plot(np.arange(iterations), fig_realacc, 'r')
    ax.set_xlabel('迭代次数')
    ax.set_ylabel('正确率(%)')
 
    labels = ["训练正确率", "测试正确率"]
    # labels = [l.get_label() for l in lns]
    plt.legend( labels, loc=7)
    plt.show()

总结

到此这篇关于matplotlib画混淆矩阵与正确率曲线的文章就介绍到这了,更多相关matplotlib画混淆矩阵内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Django项目中用JS实现加载子页面并传值的方法
May 28 Python
快速解决pandas.read_csv()乱码的问题
Jun 15 Python
使用python对excle和json互相转换的示例
Oct 23 Python
python 提取tuple类型值中json格式的key值方法
Dec 31 Python
浅谈python标准库--functools.partial
Mar 13 Python
Python队列、进程间通信、线程案例
Oct 25 Python
Python Pandas 转换unix时间戳方式
Dec 07 Python
基于Python和PyYAML读取yaml配置文件数据
Jan 13 Python
TFRecord文件查看包含的所有Features代码
Feb 17 Python
Python 实现二叉查找树的示例代码
Dec 21 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 Python
详解Python 3.10 中的新功能和变化
Apr 28 Python
详细介绍python类及类的用法
教你怎么用PyCharm为同一服务器配置多个python解释器
用python批量解压带密码的压缩包
May 31 #Python
变长双向rnn的正确使用姿势教学
如何在Python项目中引入日志
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
Python数据类型最全知识总结
May 31 #Python
You might like
php 中include()与require()的对比
2006/10/09 PHP
php5 non-thread-safe和thread-safe这两个版本的区别分析
2010/03/13 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
2019/03/01 PHP
由Javascript实现的页面日历
2011/11/04 Javascript
JavaScript中使用指数方法Math.exp()的简介
2015/06/15 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
jQuery横向擦除焦点图特效代码分享
2015/09/06 Javascript
Bootstrap每天必学之栅格系统(布局)
2015/11/25 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
javascript RegExp 使用说明
2016/05/21 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
微信小程序 scroll-view组件实现列表页实例代码
2016/12/14 Javascript
js如何获取网页所有图片
2017/05/12 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
在Python中操作日期和时间之gmtime()方法的使用
2015/05/22 Python
简单实现python聊天程序
2018/04/01 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
Python使用post及get方式提交数据的实例
2019/01/24 Python
canvas 如何绘制线段的实现方法
2018/07/12 HTML / CSS
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
如何查看在weblogic中已经发布的EJB
2012/06/01 面试题
电力公司个人求职信范文
2014/02/04 职场文书
户外婚礼策划方案
2014/02/08 职场文书
cf战队收人口号
2014/06/21 职场文书
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js
斗罗大陆八大特殊魂兽,龙族始祖排榜首,第五最残忍(翠魔鸟)
2022/03/18 国漫