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

混淆矩阵

混淆矩阵(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画混淆矩阵内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python matplotlib 绘制双Y轴曲线图的示例代码

    Matplotlib简介 Matplotlib是非常强大的python画图工具 Matplotlib可以画图线图.散点图.等高线图.条形图.柱形图.3D图形.图形动画等. Matplotlib安装 pip3 install matplotlib#python3 双X轴的 可以理解为共享y轴 ax1=ax.twiny() ax1=plt.twiny() 双Y轴的 可以理解为共享x轴 ax1=ax.twinx() ax1=plt.twinx() 自动生成一个例子 x = np.arange(0.,

  • Python使用matplotlib绘制正弦和余弦曲线的方法示例

    本文实例讲述了Python使用matplotlib绘制正弦和余弦曲线的方法.分享给大家供大家参考,具体如下: 一 介绍 关键词:绘图库 官网:http://matplotlib.org 二 代码 import numpy as np import matplotlib.pyplot as plt #line x=np.linspace(-np.pi,np.pi,256,endpoint=True) #定义余弦函数正弦函数 c,s=np.cos(x),np.sin(x) plt.figure(1)

  • Matplotlib绘制混淆矩阵的实现

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

  • Python使用matplotlib绘制Logistic曲线操作示例

    本文实例讲述了Python使用matplotlib绘制Logistic曲线操作.分享给大家供大家参考,具体如下: 标准Logistic函数为: f(x) = 1 / ( 1 + exp(-x) ) 其导函数为: f'(x) = f(x) * ( 1 - f(x) ) 下面使用matplotlib绘制逻辑斯蒂函数及其导函数的曲线. Python代码: # -*- coding:utf-8 -*- #!python3 import numpy as np import matplotlib.pypl

  • Python使用matplotlib绘制三维参数曲线操作示例

    本文实例讲述了Python使用matplotlib绘制三维参数曲线操作.分享给大家供大家参考,具体如下: 一 代码 import matplotlib as mpl from mpl_toolkits.mplot3d importAxes3D import numpy as np import matplotlib.pyplot as plt mpl.rcParams['legend.fontsize']=10#图例字号 fig = plt.figure() ax = fig.gca(proje

  • matplotlib 曲线图 和 折线图 plt.plot()实例

    我就废话不多说了,大家还是直接看代码吧! 绘制曲线: import time import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 10, 1000) y = np.sin(x) plt.figure(figsize=(6,4)) plt.plot(x,y,color="red",linewidth=1 ) plt.xlabel("x") #xlabel.ylabel:分别设置X.

  • 利用python中的matplotlib打印混淆矩阵实例

    前面说过混淆矩阵是我们在处理分类问题时,很重要的指标,那么如何更好的把混淆矩阵给打印出来呢,直接做表或者是前端可视化,小编曾经就尝试过用前端(D5)做出来,然后截图,显得不那么好看.. 代码: import itertools import matplotlib.pyplot as plt import numpy as np def plot_confusion_matrix(cm, classes, normalize=False, title='Confusion matrix', cma

  • Python matplotlib画曲线例题解析

    这篇文章主要介绍了Python matplotlib画曲线例题解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 初学者,练习以下片段: 代码1:用 一元一次函数 画直线 import matplotlib.pyplot as plt import numpy as np x = np.linspace(-2, 2, 50) print(x) y = 2*x + 1 plt.plot(x, y) ax = plt.gca() ax.spines

  • 使用matplotlib动态刷新指定曲线实例

    我就废话不多说啦,还是直接看代码吧! from matplotlib import pyplot as plt import numpy as np x = np.linspace(1, 100, 20) y = x *2 +3 fig = plt.figure() ax = fig.add_subplot(1,1,1) ax.scatter(x, y) plt.ion() for i in range(10): y = x*i*0.1 + i try: ax.lines.remove(line

  • Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)

    Python的matplotlib模块绘制图形功能很强大,今天就用pyplot绘制一个简单的图形,图形中包括曲线.曲线上的点.注释和指向点的箭头. 1. 结果预览: 2. 代码如下: from matplotlib import pyplot as plt import numpy as np # 绘制曲线 x = np.linspace(2, 21, 20) # 取闭区间[2, 21]之间的等差数列,列表长度20 y = np.log10(x) + 0.5 plt.figure() # 添加一

随机推荐