python 使用numpy计算混淆矩阵

假如一个模型要预测的类别有三个,分别为A、B、C,使用模型预测测试集得到以下结果:

我们一列一列来看,先看第一列:30、15、5

这里我们的测试集有且只有三个分类A、B、C;也就是真实分类A、B、C就对应着测试集的总体,对于一个样本的预测也只可能是这三者之一。

模型预测值为A的,实际标签不一定就是A,但它一定是A、B、C三者之一,这里预测为A的前提下:真实值为A的有30个、真实值为B的有15个、真实值为C的有5个。

上述表格用numpy表示如下

import numpy as np
# 混淆矩阵
c_matrix = np.array([[30,  7,   3],[ 15, 22,  3],[ 5,   1,  14]])
print(c_matrix.shape)  # (3,3)
print(c_matrix[0][1])  # 7

也可对混淆矩阵进行标准化,使其值在0到1之间

# 混淆矩阵标准化(这里使用L1规范化,是对每一行来说规范化)
print(c_matrix.sum(axis=1))
print(c_matrix.sum(axis=1)[:, np.newaxis])
c_matrix = c_matrix / c_matrix.sum(axis=1)[:, np.newaxis]
print(c_matrix)
[40 40 20]
[[40][40][20]]
[[0.75  0.175 0.075][0.375 0.55  0.075][0.25  0.05  0.7  ]]

在测试模型时计算

confusion_matrix = np.zeros( (len(class_names), len(class_names)) )  # 混淆矩阵
for images, labels in test_ds.take(total_batch):labels = labels.numpy()predictions = model.predict(images)score = tf.nn.softmax(predictions)for index, elem in enumerate(score):r, c = np.argmax(elem), labels[index]confusion_matrix[r][c] += 1

python 使用numpy计算混淆矩阵相关推荐

  1. Python使用pandas的crosstab函数计算混淆矩阵并使用Seaborn可视化混淆矩阵实战

    Python使用pandas的crosstab函数计算混淆矩阵并使用Seaborn可视化混淆矩阵实战 目录 Python使用pandas的crosstab函数计算混淆矩阵并使用Seaborn可视化混淆 ...

  2. [Python+sklearn] 计算混淆矩阵 confusion_matrix()函数

    python sklearn 计算混淆矩阵 confusion_matrix()函数 参考sklearn官方文档:sklearn.metrics.confusion_matrix. 功能: 计算混淆矩 ...

  3. Python使用pandas_ml输出混淆矩阵以及从混淆矩阵衍生出来的其他指标:TP、TN、FP、FN、TPR、TNR(SPC)、PPV、NPV、FPR、FDR、FNR、ACC、F1、MCC等

    Python使用pandas_ml输出混淆矩阵以及从混淆矩阵衍生出来的其他指标:TP.TN.FP.FN.TPR.TNR(SPC).PPV.NPV.FPR.FDR.FNR.ACC.F1.MCC等 目录 ...

  4. R语言使用randomForest包构建随机森林模型(Random forests)、使用importance函数查看特征重要度、使用table函数计算混淆矩阵评估分类模型性能、包外错误估计OOB

    R语言使用randomForest包中的randomForest函数构建随机森林模型(Random forests).使用importance函数查看特征重要度.使用table函数计算混淆矩阵评估分类 ...

  5. R语言使用rpart包构建决策树模型、使用prune函数进行树的剪枝、交叉验证预防过拟合、plotcp可视化复杂度、rpart.plot包可视化决策树、使用table函数计算混淆矩阵评估分类模型性能

    R语言使用rpart包构建决策树模型.使用prune函数进行树的剪枝.使用10折交叉验证选择预测误差最低的树来预防过拟合.plotcp可视化决策树复杂度.rpart.plot包可视化最终决策树.使用t ...

  6. R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型、分类预测器(分类变量)被自动替换为一组虚拟编码变量、summary函数查看检查模型、使用table函数计算混淆矩阵评估分类模型性能

    R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型(Logistic regression).分类预测器(分类变量)被自动替换为一组虚拟编码变量.summary函数查看检查模型.使用t ...

  7. R语言使用caret包的confusionMatrix函数计算混淆矩阵、使用编写的自定义函数可视化混淆矩阵(confusion matrix)

    R语言使用caret包的confusionMatrix函数计算混淆矩阵.使用编写的自定义函数可视化混淆矩阵(confusion matrix) 目录

  8. R语言构建logistic回归模型并评估模型:计算混淆矩阵、并基于混淆矩阵计算Accuray、Precision、Recall(sensitivity)、F1、Specificity指标

    R语言构建logistic回归模型并评估模型:计算混淆矩阵.并基于混淆矩阵计算Accuray.Precision.Recall(sensitivity).F1.Specificity指标 目录

  9. R计算混淆矩阵(Confusion Matrix)

    R计算混淆矩阵(Confusion Matrix) 目录 R计算混淆矩阵(Confusion Matrix) 拟合Logistic回归模型 创建混淆矩阵

  10. fun是什么意思 python中def_【python】 numpy中的矩阵转置(ndarray.T)为什么不加括号却可以实现方法的功能...

    [python] numpy中的矩阵转置(ndarray.T)为什么不加括号却可以实现方法的功能 经过搜索和查询源码了解到,.T就是一个方法,但是是被装饰器修饰了一下... @property是pyt ...

最新文章

  1. 2022-2028年中国充电桩行业深度调研及投资前景预测报告(上下卷)
  2. docker centos7 安装mysql_centos7通过docker安装mysql
  3. 经典复现:《统计学习方法》的代码实现(在线阅读!)
  4. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十二║Vue实战:个人博客第一版(axios+router)...
  5. 为什么我不推荐敏捷开发?
  6. FFmpeg流媒体调试工具(六)
  7. MPU9250调试笔记(融合磁力计计算Yaw)
  8. 【Proteus仿真】BME280温湿度气压传感器数据串口输出
  9. ch341a编程和ttl刷机区别_USB转TTL(CH341A)的注意事项及说明
  10. 专访北森CEO纪伟国:解读SaaS+PaaS的云上发展路径
  11. 光遇服务器维护要多久,光遇:你玩游戏多久了?半年以上的老玩家,是如何坚持下去的?...
  12. 程序员的你想跳槽了?谨记:哪里都不好混!
  13. 3D建模新手入门到高端 电脑配置一览
  14. 「小程序JAVA实战」小程序的个人信息作品,收藏,关注(66)
  15. 阿里云服务器最便宜多少钱?附优惠购买教程每月仅需8元!
  16. 电商项目_ads层建设
  17. 全志T7 Display驱动分析
  18. 富途秋招笔试面试记录
  19. win7 修改服务器属性,win7打印机服务器属性设置
  20. 录音系列:录音文件为啥是.wav格式?

热门文章

  1. Cobar介绍及配置
  2. oracle查看锁表语句、解锁方法
  3. 如何打开.yml文件
  4. Android项目中使用XUI框架的准备工作
  5. 战神引擎清理数据教程[保留跟不保留账号
  6. 使用最小二乘法拟合曲线
  7. 一台电脑中,如何使 git 同时配置Github、Gitee等多种版本控制工具
  8. FPGA之旅设计99例之第十九例----OV5640上电及初始化
  9. 作业一 统计软件简介与数据操作
  10. Detours库配置记录