必威体育Betway必威体育官网
当前位置:首页 > IT技术

混淆矩阵(confusion matrix)理解

时间:2019-07-31 13:43:20来源:IT技术作者:seo实验室小编阅读:90次「手机版」
 

混淆矩阵

机器学习中,当我们使用预先分配好的训练集训练好一个模型后,此时我们会使用预先分配好的测试集来检测我们训练好的这个模型怎么样?评价模型好坏的指标有很多,具体可以参见我以前的一篇博客: 如何理解误识率(FAR)拒识率(FRR),TPR,FPR以及ROC曲线,很常见的一个指标便是ROC曲线,它是在不同阈值的前提下以fpr以横坐标、tpr为纵坐标的二维坐标图。

当我们用测试集去测试模型好坏时,输出会是一个匹配分数矩阵,那怎么根据这个匹配分数矩阵来判断我们的测试集有没有分对呢,常见的解决方案是我们将这个匹配分数矩阵里的值从低到高分别设定为阈值,针对每一个阈值,与匹配分数矩阵同样大小的标签矩阵对比分别计算此时的tpr以及fpr,最后会得到一组tpr以及fpr值,根据这组tpr以及fpr值就可以画出ROC曲线,由该ROC曲线就可以判断我们模型的好坏。

阈值唯一确定之后,那么我们的模型也就唯一确定了,针对测试集的输入,fpr以及tpr也唯一确定,为了更好的可视化我们的分类结果,我们引入混淆矩阵的概念。


人工智能中,混淆矩阵(confusion matrix)是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵。在图像精度评价中,主要用于比较分类结果和实际测得值,可以把分类结果的精度显示在一个混淆矩阵里面。混淆矩阵是通过将每个实测像元的位置和分类与分类图像中的相应位置和分类相比较计算的。

如有150个样本数据,这些数据分成3类,每类50个。分类结束后得到的混淆矩阵为:

这里写图片描述

每一行之和为50,表示50个样本,第一行说明类1的50个样本有43个分类正确,5个错分为类2,2个错分为类3。

混淆矩阵的每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目;每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目。每一列中的数值表示真实数据被预测为该类的数目:如下图,第一行第一列中的43表示有43个实际归属第一类的实例被预测为第一类,同理,第二行第一列的2表示有2个实际归属为第二类的实例被错误预测为第一类。

那么针对以上的混淆矩阵,我们怎样取计算fpr以及tpr值呢?

针对类1:共有150个测试样本,类1为50个,那类2和类3就属于其他样本共为100个,此时 tpr=TPTP+FN=4343+7=0.86" role="presentation" style="position: relative;">tpr=TPTP+FN=4343+7=0.86fpr=FPFP+TN=22+98=0.02" role="presentation" style="position: relative;">fpr=FPFP+TN=22+98=0.02。嗯,该模型在fpr为0.02时,tpr达到了0.86,还算可以啊。

针对类2和类3:计算方式和类1一样,这里不再赘述。

ROC曲线一般针对的是二分类问题,那么对于我们这里的3分类问题怎样画ROC曲线,采取的策略是针对类1、类2以及类3这3个二分类器,分别计算其在特定阈值下fpr以及tpr的均值即可以画ROC曲线。

参考:

https://baike.baidu.com/item/%E6%B7%B7%E6%B7%86%E7%9F%A9%E9%98%B5

https://blog.csdn.net/vesper305/article/details/44927047

https://www.zhihu.com/question/36883196

http://www.cnblogs.com/cnkai/p/7755134.html

相关阅读

Android:ScaleType与Matrix相关

关于ScaleType,网上介绍这个枚举对象的文章很多了,不过基本都只是介绍了它的效果。我在做可缩放移动的ImageView时,为了实现图片的缩

教您如何使用WebMatrix创建第一个网页

导读:Microsoft WebMatrix是一个免费的工具,可用于创建、自定义和在Internet上发布网站。WebMatrix使您能够轻松创建网站。您可以从

Matrix67

此篇文章为《Matrix67的 OI知识分类,我懂的好少。》的转发,原文章地址为:http://printf.blogbus.com/logs/62871795.html排序算法

C++矩阵运算类(Matrix.h)

这个类数据类型是double,包含了常用的矩阵计算,多数方法经过实践验证,也难免有不足之处,如有发现欢迎指出。#include<iostream> #i

opengl入门记录--glPushMatrix和glPopMatrix原理

glPushMatrix、glPopMatrix操作事实上就相当于栈里的入栈和出栈。很多人不明确的可能是入的是什么,出的又是什么。比如你当前的坐

分享到:

栏目导航

推荐阅读

热门阅读