机器学习 F1-Score, recall, precision

机器学习 F1-Score, recall, precision在机器学习,模式识别中,我们做分类的时候,会用到一些指标来评判算法的优劣,最常用的就是识别率,简单来说,就是acc=Npre/Ntotalacc=N_{pre}/N_{total}这里的NpreN_{pre}表示预测对的样本数,NtotalN_{total}表示测试集总的样本数。识别率有的时候过于简单,不能全面反应算法的性能,除了识别率,还有一些常用的指标,就是我们要介绍的

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

在机器学习,模式识别中,我们做分类的时候,会用到一些指标来评判算法的优劣,最常用的就是识别率,简单来说,就是
A c c = N p r e / N t o t a l Acc=N_{pre}/N_{total} Acc=Npre/Ntotal
这里的 N p r e N_{pre} Npre表示预测对的样本数, N t o t a l N_{total} Ntotal表示测试集总的样本数。

识别率有的时候过于简单, 不能全面反应算法的性能,除了识别率,还有一些常用的指标,就是我们要介绍的
F1-score, recall, precision.

在介绍这些概念之前,我们先来看一个二分类的问题,给定一组训练集:
D = { ( x i , y i ) ∣ x i ∈ R n , y i ∈ { 0 , 1 } } i = 1 N D=\{ (x_{i}, y_{i}) | x_{i} \in R^{n}, y_{i} \in \{0, 1\} \}_{i=1}^{N} D={
(xi,yi)xi
Rn,yi{
0,1}}i=1N

这里假定 y i = 1 y_{i}=1 yi=1 对应正样本, y i = 0 y_{i}=0 yi=0 对应负样本。假设我们建立了一个分类模型 H H H, 对每一个输入的样本 x i x_{i} xi 会输出一个预测值 H ( x i ) H(x_{i}) H(xi), 那么将预测值 H ( x i ) H(x_{i}) H(xi) 与样本对应的实际值 y i y_{i} yi做比较,会得到以下四种情况:

H ( x i ) = 1 , y i = 1 H(x_{i})=1, y_{i}=1 H(xi)=1,yi=1
H ( x i ) = 1 , y i = 0 H(x_{i})=1, y_{i}=0 H(xi)=1,yi=0
H ( x i ) = 0 , y i = 1 H(x_{i})=0, y_{i}=1 H(xi)=0,yi=1
$H(x_{i})=0, y_{i}=0 $

第一种情况,预测为正,实际也为正,我们称为 true positive (TP),第二种情况,预测为正,实际为负,我们称为 false positive (FP),第三种情况,预测为负,实际为正,称为false negative (FN),最后一种情况,预测为负,实际也为负,称为 true negative (TN),每一个样本只可能属于这四种情况中的某一种,不会有其它的可能。
很显然,给定一个测试集,我们可以得到如下的关系:
N p r e = T P + T N N_{pre}=TP+TN Npre=TP+TN
N t o t a l = T P + T N + F P + F N N_{total}=TP+TN+FP+FN Ntotal=TP+TN+FP+FN
如果我们定义一个测试集中,正样本个数为 P P P, 负样本个数为 N N N, 那么我们可以知道: P = T P + F N P=TP+FN P=TP+FN, N = T N + F P N=TN+FP N=TN+FP
所以,我们常用的识别率 a c c acc acc 其实就等于
A c c = T P + T N T P + T N + F P + F N = T P + T N P + N Acc=\frac{TP+TN}{TP+TN+FP+FN}=\frac{TP+TN}{P+N} Acc=TP+TN+FP+FNTP+TN=P+NTP+TN
进一步,我们可以定义 recall ,precision, F1-score 如下所示:
R e c a l l = T P T P + F N = T P P Recall=\frac{TP}{TP+FN}= \frac{TP}{P} Recall=TP+FNTP=PTP
P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP+FP} Precision=TP+FPTP
F 1 = 2 T P 2 T P + F N + F P = 2 ⋅ P r e c i s i o n ⋅ R e c a l l P r e c i s i o n + R e c a l l F1=\frac{2TP}{2TP+FN+FP}=\frac{2 \cdot Precision \cdot Recall}{Precision+Recall} F1=2TP+FN+FP2TP=Precision+Recall2PrecisionRecall

可以看到,recall 体现了分类模型 H H H对正样本的识别能力,recall 越高,说明模型对正样本的识别能力越强,precision 体现了模型对负样本的区分能力,precision越高,说明模型对负样本的区分能力越强。F1-score 是两者的综合。F1-score 越高,说明分类模型越稳健。

比如我们常见的雷达预警系统,我们需要对雷达信号进行分析,判断这个信号是飞行器(正样本)还是噪声 (负样本), 很显然,我们希望系统既能准确的捕捉到飞行器信号,也可以有效地区分噪声信号。所以就要同时权衡recall 和 precision这两个指标,如果我们把所有信号都判断为飞行器,那 recall 可以达到1,但是precision将会变得很低(假设两种信号的样本数接近),可能就在 0.5 左右,那F1-score 也不会很高。

有的时候,我们对recall 与 precision 赋予不同的权重,表示对分类模型的偏好:

F β = ( 1 + β 2 ) T P ( 1 + β 2 ) T P + β 2 F N + F P = ( 1 + β 2 ) ⋅ P r e c i s i o n ⋅ R e c a l l β 2 ⋅ P r e c i s i o n + R e c a l l F_{\beta}=\frac{(1+\beta^{2})TP}{(1+\beta^{2})TP+\beta^{2}FN+FP}=\frac{(1+\beta^{2}) \cdot Precision \cdot Recall}{\beta^{2} \cdot Precision+Recall} Fβ=(1+β2)TP+β2FN+FP(1+β2)TP=β2Precision+Recall(1+β2)PrecisionRecall

可以看到,当 β = 1 \beta=1 β=1,那么 F β F_{\beta} Fβ就退回到 F 1 F1 F1了, β \beta β 其实反映了模型分类能力的偏好, β > 1 \beta>1 β>1 的时候,precision的权重更大,为了提高 F β F_{\beta} Fβ,我们希望precision 越小,而recall 应该越大,说明模型更偏好于提升recall,意味着模型更看重对正样本的识别能力; 而 β < 1 \beta<1 β<1 的时候,recall 的权重更大,因此,我们希望recall越小,而precision越大,模型更偏好于提升precision,意味着模型更看重对负样本的区分能力。

参考来源:
https://en.wikipedia.org/wiki/Receiver_operating_characteristic
https://en.wikipedia.org/wiki/F1_score

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183272.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • VMware GSX Server 3.2.1 Build 19281免费下载

    VMware GSX Server 3.2.1 Build 19281免费下载

    2021年12月17日
    39
  • vim查找快捷键_vim搜索关键字命令

    vim查找快捷键_vim搜索关键字命令vim有强大的字符串查找功能。我们通常在vim下要查找字符串的时候,都是输入/或者?加需要查找的字符串来进行搜索,比如想搜索super这个单词,可以输入/super或者?super,两者的区别是前者是从上往下搜索,后者是从下往上搜索。那么如果我想搜索本行中某个单词,并且这个单词很长的时候,手动输入该字符串是非常麻烦的…

    2022年9月24日
    0
  • tomcat 设置允许跨域访问「建议收藏」

    tomcat 设置允许跨域访问「建议收藏」既然想到使用tomcat进行跨域的设置,而不使用在项目中设置header来解决,说明你也是tomcat下的资源需要做跨域处理吧?这也是一个统一的允许跨域设置,tomcat下的所有请求都将放开,请注意。具体步骤:1.首先找到你的tomcat所在路径,并在conf文件夹下找到web.xml2.打开该文件,在以下位置加上这段:<filter><…

    2022年9月30日
    0
  • 五分钟成为记忆王(路飞为什么能成为五皇)

    一、记忆的面纱1、记忆的含义(1)就在我嘴边上  有多少次你这样说过,就在我嘴边上,又有过多少次在你需要什么时候,任凭你如何拼命地想,就是想不起来。  当然,这问题不是你一个人才有,几乎所有的人都受到过记忆力差的困扰。这也是人类的一个最常见的不幸。(2)改变你的记忆力  自身内部,就蕴藏着一种由于记忆力差而产生的烦恼的能力。如果你真想利用这一能力的话,这能力就能使你的记忆力在几天内提高

    2022年4月16日
    31
  • 国际标准时间哪个时区_北京时间与世界时间的换算

    国际标准时间哪个时区_北京时间与世界时间的换算关于时间格式2016-08-9T10:01:54.123Z20160809100154.123Z处理方法今天遇到了一个奇怪的时间格式如以下格式,下面两种时间格式所表示的时间是同一个时间,这个不难理解//UTC时间,世界标准时间2016-08-9T10:01:54.123Z20160809100154.123Z如图所示,这是一张由网友提供的图片,里面显示的是时间UTC…

    2022年10月22日
    0
  • visio安装教程2013_visio2018安装教程

    visio安装教程2013_visio2018安装教程下载地址:https://download.csdn.net/download/qq_33705529/11082285说到办公绘图软件,最强大的莫过于微软新推出的visio2013简体中文版,该软件可以帮助用户快速绘制工作中常用的业务流程图、组织结构图、项目管理图、网络…

    2022年9月28日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号