主页 > 知识库 > Matplotlib绘制混淆矩阵的实现

Matplotlib绘制混淆矩阵的实现

热门标签:河北防封卡电销卡 开封语音外呼系统代理商 地图标注线上如何操作 开封自动外呼系统怎么收费 400电话办理哪种 手机网页嵌入地图标注位置 电销机器人的风险 应电话机器人打电话违法吗 天津电话机器人公司

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

代码如下:

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

效果:


第二种情况:显示数字

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

效果:


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

您可能感兴趣的文章:
  • 利用python中的matplotlib打印混淆矩阵实例
  • Python使用matplotlib绘制正弦和余弦曲线的方法示例
  • Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
  • matplotlib 曲线图 和 折线图 plt.plot()实例
  • Python matplotlib 绘制双Y轴曲线图的示例代码
  • 使用matplotlib动态刷新指定曲线实例
  • Python使用matplotlib绘制三维参数曲线操作示例
  • Python使用matplotlib绘制Logistic曲线操作示例
  • Python matplotlib画曲线例题解析
  • matplotlib画混淆矩阵与正确率曲线的实例代码

标签:驻马店 山东 成都 六盘水 宿迁 江苏 常州 兰州

巨人网络通讯声明:本文标题《Matplotlib绘制混淆矩阵的实现》,本文关键词  Matplotlib,绘制,混淆,矩阵,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《Matplotlib绘制混淆矩阵的实现》相关的同类信息!
  • 本页收集关于Matplotlib绘制混淆矩阵的实现的相关信息资讯供网民参考!
  • 推荐文章