分类问题的 8 种评估方法(全)

对于地震的预测,我们希望能够对所有要发生的地震都预测到,即使预测有地震了但是没有发生也能接受,但是不能接受预测没有地震却发生地震的情况。

再比如,对于犯罪嫌疑人的定罪,我们不能本着宁可错杀也不放过的原则把好人预测成嫌疑人,我们应该追求的是预测一个正确一个,百分百命中嫌疑人,即使放过了一些罪犯也没关系。

上面这两个例子就是因为对于预测正确的标准不同,导致模型的好坏也发生了变化。所以,在看待模型准确性的问题上我们需要根据实际的场景去下定义。

而根据分类模型和回归模型的不同,相应的评价标准也不尽相同,例如在分类模型中,就有以下 8 种不同的评价标准。


▶1、混淆矩阵

混淆矩阵是监督学习中的一种可视化工具,主要用于比较分类结果和实例的真实信息。

矩阵中的每一行代表实例的预测类别,每一列代表实例的真实类别。

混淆矩阵会出现四种情况,分别是 TP、FN、FP、TN,如果从字面意思看不到区别,你可以参考小一的个人笔记

Tips:根据预测结果去记忆。例如:FN:False Negative,F 表示预测结果为假,N 表示预测的是负样本,即模型预测为负样本,且预测结果为假(错误的),所以样本实际为正样本。

真正 (True Positive , TP):被模型预测为正的正样本;

即预测为正样本,且预测结果为真,所以样本实际是正样本

假正 (False Positive , FP):被模型预测为正的负样本;

即预测为正样本,且预测结果为假,所以样本实际是负样本

假负 (False Negative , FN):被模型预测为负的正样本;

即预测为负样本,且预测结果为假,所以样本实际是正样本

真负 (True Negative , TN):被模型预测为负的负样本;

即预测为负样本,且预测结果为真,所以样本实际是负样本

单纯的从上面四个概念,并不能表示模型的准确率,比如说模型预测正确=模型对于正样本预测正确+负样本预测正确,也就是 TP+TN;模型预测为正样本=模型对于正样本预测为正+负样本预测为正,也就是 TP+FP

对应的模型的评价标准也就有了 TPR、FPR、FNR、TNR 四个概念,分别如下:

TPR:True Positive Rate -> 真正率

被预测为真的正样本数 正样本实际数

FPR:False Positive Rate -> 假正率

被预测为真的负样本数 负样本实际数

FNR:False Negative Rate -> 假负率

被预测为假的正样本数 正样本实际数

TNR:True Negative Rate -> 真负率

被预测为假的负样本数 负样本实际数


▶2、精度&错误率

精度 (Accuracy) 是最常用的分类性能指标:即预测结果为真的样本数 / 样本总数

预测结果为真 = 预测为正样本且预测结果为真 (TP) + 预测为负样本且预测结果为真 (TN)

同理的还有错误率 (Error):即预测结果为假的样本数占样本总数的比例

同理,预测为假 = 预测为正样本且预测结果为假 (FP) + 预测为负样本且预测结果为假 (FN)

对某一个实例来说,分对与分错是互斥事件,所以 acc =1 - err

在样本分布不均衡的条件下,精度并不可信。例如:预测地震是否发生的概率,即使全部事件预测成非地震 acc 也有 99% 以上,但是并没有意义。


▶3. 查准率&查全率

查准率 (Precision) :又称精确率,即在已经预测为正的样本中,预测结果正确(真正为正)的样本所占的比例

精确率:可想象“能力在于精,不在于多”。““ 即你找出来多少个正类不重要,重要的是这里面有多少个是真正正确的。

预测为正的样本 = 预测为正的样本且预测结果为真(TP) + 预测为正的样本且预测结果为负(FP)

查全率 (Recall) :又称召回率,即在实际为正的所有样本中,预测正确的正样本所占的比例

查全率:“” 体现的是在所有本来正确的样本中,你实际找出了多少个,重点是“全”

实际为正的样本 = 预测为正样本且预测结果为真(TP) + 预测为负样本且预测结果为负(FN)

查准率和召回率用混淆矩阵表示为:

需要注意的是,精度、查准率和查全率的分母不太一样

精度针对的是全体样本中预测为真的样本占比,查准率针对的是预测为正的样本中预测正确的样本占比,而查全率针对的是实际为正的样本中预测正确的样本占比


▶4. F1 score

可以发现,当假正(即预测为正样本且预测结果为假:FP)的样本数越少,查准率就越高。相应的对应 FN 就越大,召回率就越小。

如果我们只预测最可能为正的那一个样本为正,其余的都为负,那么这时候我们的查准率很可能为 100%,

同样的道理:预测为正的样本越多,即 FP 越大,相应的对应 FN 就越小,召回率就越大,准确率也就越小

如果我们把所有的样本都预测为正,其余的都为负,那么此时的召回率必然为 100%

上面这句话也就说明了:我们分别用准确率或召回率对模型的预测结果进行评价会有片面性。所以,基于上面的片面性,引出了一个新的标准:F1 度量(F-Score)

F-Score 是查准率和召回率的调和值,更接近于两个数较小的那个,所以精确率和召回率接近时,F 值最大。

通常 F-Score 是写成这样的:

α α

当参数 α=1 时,就是最常见的 F1,即:

F1较高时则能说明模型比较有效


▶5. ROC 曲线

逻辑回归里面,对于正负例的界定,通常会设一个阈值,大于阈值的为正类,小于阈值为负类。

如果我们减小这个阀值,更多的样本会被识别为正类,提高正类的识别率,但同时也会使得更多的负类被错误识别为正类。

举个例子:逻辑回归对正负结果的判定默认是 0.5,模型预测的结果如果超过 0.5 则确定样本预测结果为正,否则样本预测为负,但是当我们将 0.5 提高到 0.8,则 0.8 以下的就都预测为负了。

为了直观表示这一现象,引入 ROC 曲线:根据分类结果计算得到空间中相应的点,连接这些点就形成 ROC curve,横坐标为 False Positive Rate (FPR:假正率),纵坐标为 True Positive Rate (TPR:真正率)。

贴一下 TPR 和 FPR 的公式,不用回去找了

一般情况下,这个曲线都应该处于 (0,0) 和 (1,1) 连线的上方,如图:

ROC 曲线中有四个点需要注意,分别是:

点(0,1):即 FPR=0, TPR=1,意味着 FN=0 且 FP=0,将所有的样本都正确分类。
点(1,0):即 FPR=1,TPR=0,最差分类器,避开了所有正确答案。
点(0,0):即 FPR=TPR=0,FP=TP=0,分类器把每个实例都预测为负类。
点(1,1):分类器把每个实例都预测为正类。

总之:ROC 曲线越接近左上角,该分类器的性能越好,其泛化性能就越好。而且一般来说,如果ROC是光滑的,那么基本可以判断没有太大的过拟合。

但是对于两个模型,我们如何判断哪个模型的泛化性能更优呢?这里我们以下两种方法:

  • 如果模型 A 的 ROC 曲线完全包住了模型 B 的 ROC曲线,那么我们就认为模型 A 要优于模型 B;

  • 如果两条曲线有交叉的话,我们就通过比较 ROC 与 X Y 轴所围得曲线的面积来判断,面积越大,模型的性能就越优,这个面积我们称之为 AUC (area under ROC curve)


▶7. AUC

AUC:Area Under Curve 被定义为 ROC 曲线下的面积( ROC 的积分),通常大于0.5小于1。

随机挑选一个正样本以及一个负样本,分类器判定正样本的值高于负样本的概率就是 AUC 值。AUC值(面积)越大的分类器,性能越好,如图:

上图中 AUC=1 当然是最好的, 这代表着将所有的样本都正确分类,但是实际 AUC 是达不到 1 的,这种极端情况下只能说明样本数据是存在问题,需要再次筛选模型入模特征。


▶8. P-R曲线

精确率和召回率是互相影响的,有时会相互矛盾,理想情况下肯定是做到两者都高,但是一般情况下精确率高、召回率就低,召回率低、精确率高,当然如果两者都低,那就是有地方出问题了。

对于分类器来说,本质上是给一个概率,此时,我们再选择一个 CutOff 阈值点,高于这个点的判正,低于的判负,其中,这个点的选择需要结合你的具体场景去选择。

用不同的阀值,统计出一组不同阀值下的精确率和召回率,如下图:

曲线越靠近右上边性能越好,描述曲线下方面积叫 AP 分数(Average Precision Score),AP 分数越高,表示模型性能越好。

但是有时候模型没有单纯的谁比谁好,和文章开头的例子一样,需要结合具体的使用场景。下面是两个场景:

  • 地震的预测:我们希望的是 Recall 非常高,也就是说每次地震我们都希望预测出来。这个时候我们可以牺牲 Precision。情愿发出 1000次 警报,把 10次 地震都预测正确了,也不要预测 100次 对了 8次 漏了 2次。

  • 嫌疑人定罪:基于不错怪一个好人的原则,对于嫌疑人的定罪我们希望是非常准确的。即时有时候放过了一些罪犯(Recall 低),但也是值得的。

所以,针对场景,如果是做 搜索,那就是保证召回的情况下提升精确率;如果做 疾病监测、反垃圾,则是保证精确率的条件下,提升召回;在 两者都要求高 的情况下,可以用 F1 来衡量。

反过来,场景会决定训练模型时的标准,比如第一个场景中,我们就只看 Recall=99.9999%(地震全中)时的 Precision,其他指标就变得没有了意义。

注意一下,PR 和 ROC 是两个不同的评价指标和计算方式,一般情况下,检索用 PR,分类、识别等用 ROC。

- END -
-----------------
长按识别下方二维码,并关注公众号1.回复“PY”领取1GB Python数据分析资料2.回复“BG”领取3GB 名企数据分析报告

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1619173.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

软件测试(白盒测试入门之gtest测试)

一、gtest是什么 gtest全程为GoogleTest,是一个跨平台的(Liunx、Mac OS X、Windows、Cygwin、Windows CE and Symbian)C单元测试框架,由google公司发布。 如何去下载,调用,这个可以去找下相关教程,还需要先学下cmake…

华熙旭辉强强联手 升级京城文体地标 共绘文体商业版图

2月5日,华熙国际投资集团与旭辉集团在北京华熙LIVE中心签署战略合作框架协议,双方将共同对京城知名文体商业地标“华熙LIVE五棵松”进行开发运营,为项目注入新的活力,未来更有望在更多城市强强联手打造文体商业地标,让…

Java:使用HttpURLConnection发送请求时报文体为什么会为空?

最近使用java.net.HttpURLConnection做一些简单的测试程序,发现发送的报文体为空: import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL;public class Htt…

计算机英语文体特点,公共英语五级写作文体特点分析

公共英语五级写作文体特点分析 大家要掌握一些常见文体的写作方法和技巧。文章的常见文体有描写文(Description)、记叙文(Narration)、说明文 (Exposition)、议论文(Argumentation)、及应用文(Pratical Writing)等。各文体往往交叉使用,互相渗透。下面小编大家介绍公…

深入URP之Shader篇14: GPU Instancing

GPU Instancing 必须是同一个模型,材质也必须相同,但材质的参数可以不同(使用MaterialPropertyBlock指定),然后基于一个Instanced Draw Call,一次性绘制多个模型。 参考:https://docs.unity3d.…

9.3 功率放大电路的安全运行

在功率放大电路中,功放管既要流过大电流,又要承受高电压。例如,在 OCL 电路中,只有功放管满足式(9.2.13)所示极限值的要求,电路才能正常工作。因此,所谓功率放大电路的安全运行&…

八年终有一别

告别文章,本文应该所有的名字都会真名,我不知道侵犯权益什么的,希望不要冒犯到。 NOIp2018 提高组游记 ZJOI2019上海游族杯acm游记 绍兴一中集训记 NOI2019同步赛 day1 NOI2019同步赛 day2 绍兴一中暑假集训总结 慈溪中学集训记 CSP-S2019游…

怎么用Linux下载链接,在linux系统里,下载的迅雷专用链接!

wtf1981 于 2009-06-03 21:18:08发表: 事实看看 you_me 于 2009-05-20 19:34:17发表: 试试看吧 563909373 于 2009-05-20 19:11:23发表: 学习一下! kuiying 于 2009-05-17 21:39:25发表: 好阿 支持一下!!!!&#xff01…

如何减小迅雷下载对网络的影响

导言 很多用户都喜欢用迅雷进行各种资源的下载,因为迅雷通过镜像搜索可以同时从多个高速站点进行下载,从而达到满速下载的目的。但是,对于企业主/网管人员来说,高速下载的迅雷会占用有限的网络资源,在自己享受高速度的…

大规模 C++ 编译性能优化系统 OMAX 介绍

导读:本文探索&研究了大规模C/C服务编译性能优化相关技术,优化服务性能,降低机器成本,同时为了支持规模推广应用,降低业务线接入成本,保障优化效果,进行面向云上微服务,开展平台…

如何使用缓存优化系统性能?

缓存是我们提高系统性能的一项必不可少的技术,无论是前端、还是后端,都应用到了缓存 技术。前端使用缓存,可以降低多次请求服务的压力;后端使用缓存,可以降低数据库操作 的压力,提升读取数据的性能。 今…

关键词优化系统|智能优化「白狐公羊seo」

1.SEO的设置 。要进行SEO网站优化的前提,先设置TDK,三个重要的参数:title、keywords、description。因为TDK是一个网站优化的核心要素和重要标志。后期的优化都是围绕着TDK来进行的。设置TDK是对 网站优化排名 提升的其中一个方法。 2. 内容标题优化…

windows10 优化系统性能

以下仅供参考: 1、设置中 2、 设置中》搜索【启动应用】,关闭启动机器自动启动的应用 或者在任务管理器中 3、回收站 右键【属性】》一般设置为10G到15G之间 4、电源计划中设置高性能 考虑到个人健康 power shell命令中: 然后【更改计划】…

大规模C++编译性能优化系统OMAX介绍

导读:本文探索&研究了大规模C/C服务编译性能优化相关技术,优化服务性能,降低机器成本,同时为了支持规模推广应用,降低业务线接入成本,保障优化效果,进行面向云上微服务,开展平台…

系统优化方案

亲爱的用户,当您觉得计算机速度过慢,或者您想清理系统垃圾的话,您只需按照以下步骤操作即可哦(^U^)ノ~YO 一、手动清除系统盘的缓存文件: 打开桌面【此电脑】图标&#x…

如何进行系统性能优化

前言 不战而屈人之兵,善之善者也 性能优化的第一原则是,通过测试,日志,profiling 分析出哪有问题,然后有的放失。 性能优化时持久战,在深入理解业务后,结合系统响应,系统吞吐&#…

win10计算机系统优化设置,win10系统优化系统的详细办法

作为大多数用户都使用的win10系统,如果发生对win10系统优化系统进行设置情况,会让人束手无策,那么win10系统优化系统是怎么设置的呢?如果有朋友想对win10系统优化系统进行设置的话,按照1、右键点击“此电脑”&#xff…

系统优化的方法有哪些

对于很多人来说,系统优化可能只是个概念,真正想要操作的时候却又无从下手,然后一个不小心把系统搞崩溃了又凉凉。下面就和大家简单聊聊系统优化应该从哪几个方面去操作吧。 更多系统教程尽在小白系统重装官网 系统:win10专业版 …

八 在IDEA中设置省电模式

如下图所示,IntelliJ IDEA 有一种叫做 省电模式 的状态,开启这种模式之后IntelliJ IDEA 会关掉代码检查和代码提示等功能。所以一般也可认为这是一种 阅读模式,如果你在开发过程中遇到突然代码文件不能进行检查和提示,可以来看看这…

嵌入式linux更省电,- 基于嵌入式Linux的智能手机省电设计

用户程序API, 用户程序( 应用软件) 分为三类: (1)可感知电源管理的应用软件; (2)可感知电源管理的“包装器”中的传统应用软件; (3)不带电源管理的传统应用软件。 可感知电源管理的应用软件能够充分利用来自策略管理器的API, 从而建立各自的基…