confusion_matrix(混淆矩阵)

作者:十岁的小男孩

凡心所向,素履可往

目录

  监督学习—混淆矩阵

    是什么?有什么用?怎么用?

  非监督学习—匹配矩阵

混淆矩阵

矩阵每一列代表预测值,每一行代表的是实际的类别。这个名字来源于它可以非常容易的表明多个类别是否有混淆(也就是一个class被预测成另一个class)。

假设有一个用来对猫(cats)、狗(dogs)、兔子(rabbits)进行分类的系统,混淆矩阵就是为了进一步分析性能而对该算法测试结果做出的总结。假设总共有 27 只动物:8只猫, 6条狗, 13只兔子。结果的混淆矩阵如上图:

在这个混淆矩阵中,实际有8只猫,但是系统将其中3只预测成了狗;对于6条狗,其中有1条被预测成了兔子,2条被预测成了猫。从混淆矩阵中我们可以看出系统对于区分猫和狗存在一些问题,但是区分兔子和其他动物的效果还是不错的。所有正确的预测结果都在对角线上,所以从混淆矩阵中可以很方便直观的看出哪里有错误,因为他们呈现在对角线外面。

tf.confusion_matrix

定义:

tf.confusion_matrix(
    labels,
    predictions,
    num_classes=None,
    dtype=tf.int32,
    name=None,
    weights=None
)

ARGS:

  • labelsTensor分类任务的1-D 真实标签。
  • predictionsTensor给定分类的1-D 预测。
  • num_classes:分类任务可能具有的标签数量。如果未提供此值,则将使用预测和标签数组计算该值。
  • dtype:混淆矩阵的数据类型。
  • name:范围名称。
  • weights:可选Tensor的形状匹配predictions

返回:

  甲Tensor类型的dtype具有形状[n, n]表示所述混淆矩阵,其中n是在分类任务可能的标签的数量。

例子:

  tf.confusion_matrix([1, 2, 4], [2, 2, 4]) ==>
      [[0 0 0 0 0]
       [0 0 1 0 0]
       [0 0 1 0 0]
       [0 0 0 0 0]
       [0 0 0 0 1]]

请注意,假设可能的标签是[0, 1, 2, 3, 4],导致5x5混淆矩阵。

我的图片分类项目中遇到的实例:

1.定义两个矩阵,用于放真实的标签和预测的标签,大小根据测试的次数计算,全为0.[1,test_num]

Y_true=np.zeros(len(test_num))#真实的标签
Y_predict=np.zeros(len(test_num))#预测的标签

2.将每步训练的标签放在矩阵中,我的项目中预测的的为标签,类似[0,0,0,1,0,0,0],取出最大的,即为4,本步在循环中,记录每步训练。

Y_true[step_test]=np.argmax(testing_ys)
Y_predict[step_test]=np.argmax(predict)

3.调用TensorFlow的混淆矩阵函数,这一步需要将矩阵转换为tensor,在TensorFlow中运行的单元为tensor

confuse_martix=sess.run(tf.convert_to_tensor(tf.confusion_matrix(Y_true,Y_predict)))
print(confuse_martix)

4.结果

匹配矩阵

在预测分析中,混淆表格(有时候也称为混淆矩阵),是由false positives,falsenegatives,true positives和true negatives组成的两行两列的表格。它允许我们做出更多的分析,而不仅仅是局限在正确率,对于上面的矩阵,可以表示为下面的表格

查准率 = 精度 = precision

查全率 = 召回率 = recall

本文仅用于学习研究,非商业用途,欢迎大家指出错误一起学习

本文参考了以下地址的讲解,万分感谢,如有侵权,请联系我会尽快删除,[email protected]:

TensorFlow API网站:https://tensorflow.google.cn/api_docs/python/tf/confusion_matrix,TensorFlow的api在这个网站都可以查到

https://blog.csdn.net/qq_28448117/article/details/78219549

原文地址:https://www.cnblogs.com/missidiot/p/9450662.html

时间: 2024-10-10 01:12:13

confusion_matrix(混淆矩阵)的相关文章

机器学习入门-混淆矩阵-准确度-召回率-F1score 1.itertools.product 2. confusion_matrix(test_y, pred_y)

1. itertools.product  进行数据的多种组合 intertools.product(range(0, 1), range(0, 1))  组合的情况[0, 0], [0, 1], [1, 0], [1, 1] 2. confusion_matrix(test_y, pred_y)  # 构造混淆矩阵 混淆矩阵是TP(正的预测成正的), FP(正的预测成负的), TN(负的预测成负的), FN(负的预测成正的) 从混淆矩阵中,我们可以很清楚的看出这个信息,这是一个信用欺诈的案例,

混淆矩阵(Confusion Matrix)分析

Content ConfusionMatrix Example Talbe ofconfusion Preference Confusion Matrix 在机器学习领域,混淆矩阵(confusion matrix),又称为可能性表格或是错误矩阵.它是一种特定的矩阵用来呈现算法性能的可视化效果,通常是监督学习(非监督学习,通常用匹配矩阵:matching matrix).其每一列代表预测值,每一行代表的是实际的类别.这个名字来源于它可以非常容易的表明多个类别是否有混淆(也就是一个class被预测

混淆矩阵(Confusion matrix)的原理及使用(scikit-learn 和 tensorflow)

原理 在机器学习中, 混淆矩阵是一个误差矩阵, 常用来可视化地评估监督学习算法的性能. 混淆矩阵大小为 num_classes x num_classes 的方阵, 其中 num_classes 表示类的数量. 这个矩阵的每一行表示真实类中的实例, 而每一列表示预测类中的实例 (Tensorflow 和 scikit-learn 采用的实现方式). 也可以是, 每一行表示预测类中的实例, 而每一列表示真实类中的实例 (Confusion matrix From Wikipedia 中的定义). 

图像分类中混淆矩阵精度验证法中的几个指标说明

ToolBox->Classification->PostClassification->Confusion Matrix->Using Ground Truth ROIs,可以得到如下的分类精度验证的混淆矩阵. 要看懂这个精度验证结果,需要了解几个混淆矩阵中的几项评价指标: 1.总体分类精度(Overall Accuracy) 等于被正确分类的像元总和除以总像元数.被正确分类的像元数目沿着混淆矩阵的对角线分布,总像元数等于所有真实参考源的像元总数,如本次精度分类精度表中的Over

10. 混淆矩阵、总体分类精度、Kappa系数

一.前言 表征分类精度的指标有很多,其中最常用的就是利用混淆矩阵.总体分类精度以及Kappa系数. 其中混淆矩阵能够很清楚的看到每个地物正确分类的个数以及被错分的类别和个数.但是,混淆矩阵并不能一眼就看出类别分类精度的好坏,为此从混淆矩阵衍生出来各种分类精度指标,其中总体分类精度(OA)和卡帕系数(Kappa)应用最为广泛. 总体分类精度(OA):指被正确分类的类别像元数与总的类别个数的比值:OA值虽然能很好的表征分类精度,但是对类别像元个数极度不平衡的多类地物来说,其值收到像元数据较多类别的影

【机器学习】--模型评估指标之混淆矩阵,ROC曲线和AUC面积

一.前述 怎么样对训练出来的模型进行评估是有一定指标的,本文就相关指标做一个总结. 二.具体 1.混淆矩阵 混淆矩阵如图: 相关公式: 公式解释: fp_rate: tp_rate: recall:(召回率) 值越大越好 presssion:(准确率) TP:本来是正例,通过模型预测出来是正列 TP+FP:通过模型预测出来的所有正列数(其中包括本来是负例,但预测出来是正列) 值越大越好 2.ROC曲线 过程:对第一个样例,预测对,阈值是0.9,所以曲线向上走,以此类推. 对第三个样例,预测错,阈

混淆矩阵、准确率、精确率/查准率、召回率/查全率、F1值、ROC曲线的AUC值

准确率.精确率(查准率).召回率(查全率).F1值.ROC曲线的AUC值,都可以作为评价一个机器学习模型好坏的指标(evaluation metrics),而这些评价指标直接或间接都与混淆矩阵有关,前四者可以从混淆矩阵中直接计算得到,AUC值则要通过ROC曲线进行计算,而ROC曲线的横纵坐标又和混淆矩阵联系密切,所以在了解这些评价指标之前,先知道什么是混淆矩阵很有必要,也方便记忆. 1.混淆矩阵 对于一个二分类问题,我们可以得到如表 1所示的的混淆矩阵(confusion matrix): 表

混淆矩阵

混淆矩阵(Confusion Matrix) 混淆矩阵是一个列表,里面包含了实际值和判断值的情况.下图是信息更加丰富的一张混淆矩阵图: 作为良好的学习模型,TN和TP值是高的,FP和FN值=0:但是很多场景下FP和FN都不是0,那么怎么评价个分类学习的效果(performance)呢? Accuracy:全准率 (TP+TN)/total = (100+50)/165 = 0.91 Misclassification Rate:差错率 (FP+FN)/total = (10+5)/165 = 0

scikit-learn 多分类混淆矩阵

注:有些markdown语法没渲染出来,可以简书查看:scikit-learn 多分类混淆矩阵 前面 sklearn.metrics.multilabel_confusion_matrix 是 scikit-learn 0.21 新增的一个函数.看名字可知道是用来计算多标签的混淆矩阵的.不过也可以用它来计算多分类的混淆矩阵.MCM将多分类数据转化为2分类问题,采用one-vs-rest策略,即某一类为正样本,其余类别为负样本.每一类都作为正样本,计算混淆矩阵.按标签的顺序返回所有. MCM 返回