混淆矩阵(Confusion Matrix)分析

Content

ConfusionMatrix

Example

Talbe ofconfusion

Preference

 

Confusion Matrix

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

 

Example

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


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

 

Table of confusion

在预测分析中,混淆表格(有时候也称为混淆矩阵),是由false positivesfalsenegativestrue positivestrue negatives组成的两行两列的表格。它允许我们做出更多的分析,而不仅仅是局限在正确率。准确率对于分类器的性能分析来说,并不是一个很好地衡量指标,因为如果数据集不平衡(每一类的数据样本数量相差太大),很可能会出现误导性的结果。例如,如果在一个数据集中有95只猫,但是只有5条狗,那么某些分类器很可能偏向于将所有的样本预测成猫。整体准确率为95%,但是实际上该分类器对猫的识别率是100%,而对狗的识别率是0%

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

 

假定一个实验有 Ppositive实例,在某些条件下有 N negative实例。那么上面这四个输出可以用下面的偶然性表格(或混淆矩阵)来表示:

 

 

公式陈列、定义如下:

True positive(TP)

eqv. with hit

True negative(TN)

eqv. with correct rejection

False positive(FP)

eqv. with false alarm, Type I error

False negative(FN)

eqv. with miss, Type II error

 

Sensitivity ortrue positive rate(TPR)

eqv. with hit rate, recall

TPR = TP/P = TP/(TP + FN)

Specificity(SPC)ortrue negative rate(TNR)

SPC = TN/N = TN/(FP + TN)

Precision orpositive prediction value(PPV)

PPV = TP/(TP + FP)

Negative predictive value(NPV)

NPV = TN/(TN + FN)

Fall-out orfalse positive rate(FPR)

FPR = FP/N = FP/(FP + TN)

False discovery rate(FDR)

FDR = FP/(FP + TP) = 1 - PPV

Miss Rate orFalse Negative Rate(FNR)

FNR = FN/P = FN/(FN + TP)

 

 

Accuracy(ACC)

ACC = (TP + TN)/(P + N)


Preference

 

WiKi:http://en.wikipedia.org/wiki/Confusion_matrix

  • 112
    点赞
  • 466
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
### 回答1: 嵌入式 Linux 开发板是一种微型计算机,它可以在物理设备中嵌入,并通过 Linux 操作系统与其他设备进行通信。这些设备通常是非常小巧,可以在各种应用场景中使用,如工业控制、家庭自动化、智能家居等。 嵌入式 Linux 开发板通常具有以下特点: 1. 小巧:它们通常很小,可以方便地安装在物理设备中。 2. 可编程:它们可以通过编程语言(如 C、Python 等)进行开发。 3. 多功能:它们可以支持多种功能,如网络通信、存储数据、显示图像等。 4. 可扩展:它们可以通过外部设备扩展功能,如接入传感器、摄像头等。 如果您对嵌入式 Linux 开发板感兴趣,可以考虑使用 Raspberry Pi、BeagleBone Black 等流行的开发板。 ### 回答2: 嵌入式Linux开发板是指搭载嵌入式Linux操作系统的开发板,通常采用ARM架构的处理器。它可以为嵌入式系统提供完整的Linux环境,包括Linux内核、文件系统以及常用的Linux工具,方便开发人员进行应用程序的开发。 嵌入式Linux开发板具有以下特点: 一、低功耗和高性能:嵌入式Linux开发板使用ARM架构的处理器,具有低功耗和高性能的特点,满足低功耗和高性能的应用需求。 二、丰富的接口和扩展性:嵌入式Linux开发板具有丰富的接口和扩展性,可通过外置扩展板或接口扩展模块满足不同应用场景下的需求。 三、可裁剪性:嵌入式Linux开发板可以根据实际需求进行裁剪,去除不必要的组件和功能,从而减少系统资源的占用,提高系统运行效率。 四、稳定可靠:由于使用Linux操作系统,嵌入式Linux开发板具有非常稳定可靠的特点,可保证系统长时间稳定运行。 嵌入式Linux开发板广泛应用于智能家居、智能医疗、智慧交通、物联 网等领域,成为嵌入式系统开发的主流选择。但是,嵌入式Linux开发板也具有一定的开发门槛,需要开发人员掌握一定的Linux操作系统和嵌入式系统开发经验,才能更好地发挥其功能和优势。 ### 回答3: 嵌入式Linux开发板是一种集成了Linux操作系统和硬件平台的开发板。这种开发板通常是由嵌入式系统厂商或者开发者自行设计的,其主要用途是针对特定的应用场景进行开发和调试,比如智能家居、工业控制、医疗设备等。嵌入式Linux开发板具有以下特点: 1. 硬件平台:嵌入式Linux开发板通常是采用一款微处理器为核心,搭配一些外设如存储器、网络、输入输出接口等组成的系统。硬件平台的选择通常需要根据应用场景的需求、想要实现的功能以及成本等因素进行权衡。 2. Linux系统:嵌入式Linux开发板搭载的是简化版本的Linux操作系统,由于资源受限,会使用一些轻量级的系统,如busybox等。这些系统通常会定制化,去掉一些不必要的部分,从而减小系统运行所需的资源开销,并且加快系统启动、响应等速度。 3. 开发环境:嵌入式Linux开发板的开发环境也是非常重要的一部分。通常有两种方式,一种是通过交叉编译的方式,在主机上编译运行嵌入式系统程序;另一种是通过板载编译方式,直接在开发板上编译运行程序。一般来说,板载编译的方式速度较慢,但对于嵌入式开发板的测试和调试非常方便。 总之,嵌入式Linux开发板是嵌入式系统开发的一种重要方式,通过这种方式可以快速构建出自己所需的某种特定应用系统。当然,开发过程中也要考虑到硬件和系统控制等相关方面的问题,以使用更加安全稳定的系统运行设备。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值