首页 技术 正文
技术 2022年11月20日
0 收藏 673 点赞 2,502 浏览 1243 个字

 

目标: 快速理解什么是混淆矩阵, 混淆矩阵是用来干嘛的。

  

首先理解什么是confusion matrix

看定义,在机器学习领域,混淆矩阵(confusion matrix),又称为可能性表格或是错误矩阵。它是一种特定的矩阵用来呈现算法性能的效果,通常是监督学习(非监督学习,通常用匹配矩阵:matching matrix)。

大白话来讲,就是对机器学习算法的运行结果进行评价,效果如何,精确度怎么样而已。

举个例子,在什么场景下需要这个confusion matrix

假设有一个用来对猫(cats)、狗(dogs)、兔子(rabbits)进行机器学习分类,预测结果(Predicted class)如下图所示。

而实际上共有 27 只动物:8只猫, 6条狗, 13只兔子,如(actual class)所示。

ML01 机器学习后利用混淆矩阵Confusion matrix 进行结果分析

从上表中能看出机器学习预测后的结果了吧,

Cat的正确率: 5/8,  3只猫误判成狗了。

Dog的正确率: 3/6,  2只当成猫,一只误判成兔子。

Rabbit 的正确率:11/13, 准确率还不错,只有2只误判成狗

场景弄明白了,接下来,confusion matrix的介绍真正开始了。

confusion matrix 的组成

混淆矩阵是由false positives,falsenegatives,true positives和true negatives组成的两行两列的表格。它允许我们做出更多的分析,而不仅仅是局限在正确率。准确率对于分类器的性能分析来说,并不是一个很好地衡量指标,因为如果数据集不平衡(每一类的数据样本数量相差太大),很可能会出现误导性的结果。

例如,如果在一个数据集中有95只猫,但是只有5条狗,那么某些分类器很可能偏向于将所有的样本预测成猫。整体准确率为95%,但是实际上该分类器对猫的识别率是100%,而对狗的识别率是0%。

对于上面的混淆矩阵,其对应的对猫这个类别的混淆表格如下:

ML01 机器学习后利用混淆矩阵Confusion matrix 进行结果分析

大白话有来了,其实这个矩阵就是告诉你一下信息:

总共8只猫给你预测:

5只猫都对了(true positive)              2只狗错当成了猫

3只猫错当成狗了(false negative)   剩下的(27-5-2-3)=17 都对啦。

如何使用confusion matrix

直接利用Accord 提供的类进行统计。

using Accord.Statistics.Analysis // 机器学习的预测结构
bool[] expected = Classes.Decide(table.GetColumn());// 实际结果
bool[] output = svm.Decide(inputs); // Use confusion matrix to compute some performance metrics
dgvPerformance.DataSource = new [] { new ConfusionMatrix(output, expected) };

reference:https://en.wikipedia.org/wiki/Confusion_matrix

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,909
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,434
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,249
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,060
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,692
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,730