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 相关文章推荐
本地文件上传到七牛云服务器示例(七牛云存储)
Jan 11 Python
python编程开发之日期操作实例分析
Nov 13 Python
利用Django内置的认证视图实现用户密码重置功能详解
Nov 24 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
Jan 05 Python
解决python3爬虫无法显示中文的问题
Apr 12 Python
django_orm查询性能优化方法
Aug 20 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
python求最大公约数和最小公倍数的简单方法
Feb 13 Python
python3实现将json对象存入Redis以及数据的导入导出
Jul 16 Python
python中类与对象之间的关系详解
Dec 16 Python
python 监控服务器是否有人远程登录(详细思路+代码)
Dec 18 Python
详解Open Folder as PyCharm Project怎么添加的方法
Dec 29 Python
详细介绍python类及类的用法
教你怎么用PyCharm为同一服务器配置多个python解释器
用python批量解压带密码的压缩包
May 31 #Python
变长双向rnn的正确使用姿势教学
如何在Python项目中引入日志
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
Python数据类型最全知识总结
May 31 #Python
You might like
PHP 全角转半角实现代码
2010/05/16 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
写的htc的数据表格
2007/01/20 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
详解Angualr 组件间通信
2017/01/21 Javascript
angular.js指令中的controller、compile与link函数的不同之处
2017/05/10 Javascript
微信小程序 刷新上拉下拉不会断详细介绍
2017/05/11 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
6种JavaScript继承方式及优缺点(小结)
2020/02/06 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
vue实现日历表格(element-ui)
2020/09/24 Javascript
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
python实现远程通过网络邮件控制计算机重启或关机
2018/02/22 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
2019/07/06 Python
Python 中的 global 标识对变量作用域的影响
2019/08/12 Python
python kafka 多线程消费者&手动提交实例
2019/12/21 Python
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
极简鞋类,赤脚的感觉:Lems Shoes
2019/08/06 全球购物
预备党员入党自我评价范文
2014/03/10 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
售房委托书
2014/08/30 职场文书
2016拓展训练心得体会范文
2016/01/12 职场文书
2016参观监狱警示教育活动心得体会
2016/01/15 职场文书
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS