如何消除混淆矩阵中的白线?

2024-04-07

有谁知道为什么这些白线将我的混淆矩阵分成四部分?我已经更改了许多参数,但无法弄清楚。唯一让它们消失的是如果我根本不标记这些块,即“0”、“1”……但这显然不是我想要的。任何帮助,将不胜感激。

Code:

def plot_confusion_matrix(cm,
                          target_names = ['1', '2', '3', '4'],
                          title = 'Confusion matrix',
                          cmap = None,
                          normalize = False):
    """
    given a sklearn confusion matrix (cm), make a nice plot

    Arguments
    ---------
    cm:           confusion matrix from sklearn.metrics.confusion_matrix

    target_names: given classification classes such as [0, 1, 2]
                  the class names, for example: ['high', 'medium', 'low']

    title:        the text to display at the top of the matrix

    cmap:         the gradient of the values displayed from matplotlib.pyplot.cm
                  see http://matplotlib.org/examples/color/colormaps_reference.html
                  plt.get_cmap('jet') or plt.cm.Blues

    normalize:    If False, plot the raw numbers
                  If True, plot the proportions

    Usage
    -----
    plot_confusion_matrix(cm           = cm,                  # confusion matrix created by
                                                              # sklearn.metrics.confusion_matrix
                          normalize    = True,                # show proportions
                          target_names = y_labels_vals,       # list of names of the classes
                          title        = best_estimator_name) # title of graph

    Citiation
    ---------
    http://scikit-learn.org/stable/auto_examples/model_selection/plot_confusion_matrix.html

    """
    import matplotlib.pyplot as plt
    import numpy as np
    import itertools

    accuracy = np.trace(cm) / float(np.sum(cm))
    misclass = 1 - accuracy

    if cmap is None:
        cmap = plt.get_cmap('Blues')

    plt.figure(figsize = (8, 6))
    plt.imshow(cm, interpolation = 'nearest', cmap = cmap)
    plt.title(title)
    plt.colorbar()

    if target_names is not None:
        tick_marks = np.arange(len(target_names))
        plt.xticks(tick_marks, target_names, rotation = 0)
        plt.yticks(tick_marks, target_names)

    if normalize:
        cm = cm.astype('float') / cm.sum(axis = 1)[:, np.newaxis]


    thresh = cm.max() / 1.5 if normalize else cm.max() / 2
    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):
        if normalize:
            plt.text(j, i, "{:0.4f}".format(cm[i, j]),
                     horizontalalignment = "center",
                     color = "white" if cm[i, j] > thresh else "black")
        else:
            plt.text(j, i, "{:,}".format(cm[i, j]),
                     horizontalalignment = "center",
                     color = "white" if cm[i, j] > thresh else "black")


    plt.tight_layout()
    plt.ylabel('True label')
    plt.xlabel('Predicted label\naccuracy={:0.4f}; misclass={:0.4f}'.format(accuracy, misclass))
    plt.show()


plot_confusion_matrix(cm           = (confusion), 
                      normalize    = True,
                      target_names = ['1', '2', '3', '4'],
                      title        = "Confusion Matrix")

输出是:


plt.figure(figsize=(10,5))

plt.grid(False)

plot_confusion_matrix(cnf_matrix, classes=class_names, normalize=False, title='Normalized confusion matrix')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何消除混淆矩阵中的白线? 的相关文章

随机推荐

  • 如何在不使用 input 元素的情况下捕获 Vuejs 中的任何按键事件

    我正在制作一种游戏 我希望用户输入特定的单词 然后我想检查是否按下了特定的单词 如果按下该单词 我将获取下一个单词 目前我正在使用表格并使用过v model如下图所示
  • 如何获取某个Realm对象在Results中的索引?

    这是一个例子 class Person Object dynamic var id dynamic var name does this work let sortedPeople realm objects Person sorted i
  • golang中没有这样的文件或目录错误

    我想在我的 golang 控制器之一中指定一个 html 模板 我的目录结构是这样的 Project com src controller contoller go view html first html 我想为请求 new 加载firs
  • 将 HAML 模板与 Backbone.js 结合使用的最佳策略

    我进入 Backbone js 来为我的项目构建 javascript 代码 我喜欢 HAML 在后端 rails 上进行模板化 所以我想将它用于 Backbone 视图模板化 我知道 Javascript 有几个 HAML 端口 例如ht
  • OpenEJB 本地客户端注入失败

    请注意 我正在镜像很接近 事实上 我的情况有点简单 因为我此时甚至没有使用持久性单元进行测试 我的测试项目提供了一个简单的MDB和一个会话bean MDB 和会话 bean 都正常加载 并且无需注入即可成功测试 以受限方式 建议注射 Loc
  • 如何在我的邮件服务器中创建(或注册)新的 pop3 电子邮件帐户

    我正在创建一个 Android 应用程序 该应用程序将具有 API 来创建新的 pop3 电子邮件帐户 我正在使用 roundcube 网络邮件客户端创建新的电子邮件帐户 手动 但我需要以编程方式创建新帐户 我在网上搜索过 但我没有收到任何
  • 手动创建的多个数据源的事务管理

    我正在开发一个应用程序 其中我必须根据从客户端传递的客户 ID 连接到不同的数据库 所有数据库的架构都是相同的 它是一种多租户应用程序 由于我不知道会有多少客户 因此我无法使用 xml 配置静态创建数据源 因此我必须手动创建数据源 我们使用
  • 如何将 noreturn 与函数指针一起使用?

    我正在用 C11 编写引导加载程序 当引导加载程序需要将控制权转移给固件时 它会读取预定义内存地址处的函数指针并调用它 代码如下所示 typedef void FirmwareBootFn void typedef struct uint3
  • 渴望加载不同的嵌套多态

    使用 Rails 3 2 我的模型是这样嵌套的 审核 gt 可审核 国家或商店 国家 gt CountryDay gt 商店 gt 照片 商店 gt 照片 我有以下内容 reviews user reviews includes user
  • 为什么堆上的内存分配比堆栈上的内存分配慢得多?

    我已经被告知很多次了 但我不知道为什么 从堆分配内存时会涉及哪些额外成本 与硬件有关吗 与CPU周期有关吗 这么多的猜测 但没有确切的答案 有人能给我一些详细说明吗 正如 unwind 所说 Heap数据结构比Stack更复杂 在我看来 当
  • 在 Azure 移动服务控制器中添加相关数据库条目

    在我的 Azure 移动服务中 我有一个控制器类UserController TableController
  • 有没有一种方法可以用 AngularJS 进行 ng-repeat 覆盖多个数组?

    我有以下循环遍历 xa 并打印 qs a text 值 div div div div div div div div 有没有一种方法可以将这些结合起来 如下所示 div div div div div div 请注意 xa 和 xb 是始
  • 代码镜像。禁用垂直滚动条

    我目前正在使用 CodeMirror 在浏览器的文本区域中编辑代码 如果我有超过 20 行代码 它会在右侧添加一个垂直滚动条 但我不需要这个滚动条 相反 我需要编辑器大小垂直增长 有人可以帮忙吗 在 CodeMirror 3 中 有一个选项
  • 带复选框的嵌套对象 - 即使使用 Accept_nested_attributes_for 也可以进行批量分配?

    我认为应该有一个简单的解决方案来解决这个问题 因为 Rails 2 3 具有这种新奇的嵌套表单功能 基本上我想创建或更新用户并同时为他们分配角色 似乎我做的一切都是正确的 但我收到了错误警告 无法批量分配这些受保护的属性 roles atr
  • 椭圆曲线上的点数

    如果您有以下形式的椭圆曲线 y 2 x 3 a x b mod p 有没有一个好的程序来计算这条曲线上的点数 我已经阅读过有关 Schoof 和 Schoof Elkies Atkin SEA 算法的信息 但我正在寻找开源实现 有谁知道一个
  • “工具提示”不能有逻辑或视觉父级

    我有以下问题 当我尝试为切换按钮设置工具提示样式时 我不断收到 工具提示 不能有逻辑或视觉父错误 什么地方出了错 当我取出 ToggleButton ToolTip 下的工具提示控件时 它可以工作
  • 如何在 Windows 上将 Ruby 添加到 PATH 变量?

    我已经安装了 Ruby 但仍然需要将其添加到 PATH 变量中 我在网上找到了一些关于如何使用命令行手动添加它的信息 set PATH C Ruby200 x64 bin PATH 但在尝试之前 我想确保它不会覆盖 PATH 变量中当前的内
  • 打印后出现奇怪的分段错误

    写了一个简单的交换程序 效果很好 但给出了一个分段故障打印完所有内容后 include
  • WIX 3.9 及更高版本的自定义操作 RegisterComPlus 发生错误

    在 Microsoft 我们长期以来一直使用 WIX 工具集版本 3 5 2519 0 来为我们名为 System Center Service Manager 又名 SCSM 的产品构建安装程序和补丁 最近我们需要更新到 WIX Tool
  • 如何消除混淆矩阵中的白线?

    有谁知道为什么这些白线将我的混淆矩阵分成四部分 我已经更改了许多参数 但无法弄清楚 唯一让它们消失的是如果我根本不标记这些块 即 0 1 但这显然不是我想要的 任何帮助 将不胜感激 Code def plot confusion matri