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 相关文章推荐
python高并发异步服务器核心库forkcore使用方法
Nov 26 Python
python使用多线程不断刷新网页的方法
Mar 31 Python
python 统计列表中不同元素的数量方法
Jun 29 Python
Python turtle绘画象棋棋盘
Aug 21 Python
Python笔记之facade模式
Nov 20 Python
详解有关PyCharm安装库失败的问题的解决方法
Feb 02 Python
Python 实现一行输入多个数字(用空格隔开)
Apr 29 Python
Django 解决上传文件时,request.FILES为空的问题
May 20 Python
树莓派升级python的具体步骤
Jul 05 Python
浅谈Python数学建模之整数规划
Jun 23 Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
Jun 29 Python
使用python求解迷宫问题的三种实现方法
Mar 17 Python
详细介绍python类及类的用法
教你怎么用PyCharm为同一服务器配置多个python解释器
用python批量解压带密码的压缩包
May 31 #Python
变长双向rnn的正确使用姿势教学
如何在Python项目中引入日志
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
Python数据类型最全知识总结
May 31 #Python
You might like
php中session退出登陆问题
2014/02/27 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
2015/12/25 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
用tip解决Ext列宽度不够的问题
2008/12/13 Javascript
javascript 多种搜索引擎集成的页面实现代码
2010/01/02 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
JavaScript中变量提升 Hoisting
2012/07/03 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
浅析vue中的MVVM实现原理
2019/03/04 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
2019/04/08 Javascript
小程序实现分类页
2019/07/12 Javascript
详解ES6 扩展运算符的使用与注意事项
2020/11/12 Javascript
python使用xmlrpclib模块实现对百度google的ping功能
2015/06/02 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
Anaconda入门使用总结
2018/04/05 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
2018/12/17 Python
使用python绘制3维正态分布图的方法
2018/12/29 Python
python 并发下载器实现方法示例
2019/11/22 Python
vscode配置anaconda3的方法步骤
2020/08/08 Python
初探CSS3中的calc()功能
2015/07/14 HTML / CSS
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
Gtech官方网站:地毯清洁器、吸尘器及园艺设备
2018/05/23 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
澳大利亚领先的亚麻品牌:Bed Threads
2019/12/16 全球购物
烹调加工管理制度
2014/02/04 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
幼儿园亲子活动感想
2015/08/07 职场文书
详解Python 3.10 中的新功能和变化
2021/04/28 Python
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android
mysql 获取相邻数据项
2022/05/11 MySQL