机器学习 F1-Score, recall, precision

在机器学习,模式识别中,我们做分类的时候,会用到一些指标来评判算法的优劣,最常用的就是识别率,简单来说,就是

Acc=Npre/Ntotal

这里的 Npre表示预测对的样本数,Ntotal表示测试集总的样本数。

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

F1-score, recall, precision.

在介绍这些概念之前,我们先来看一个二分类的问题,给定一组训练集:

D={(xi,yi)|xi∈Rn,yi∈{0,1}}Ni=1

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

H(xi)=1,yi=1
H(xi)=1,yi=0
H(xi)=0,yi=1
H(xi)=0,yi=0

第一种情况,预测为正,实际也为正,我们称为 true positive (TP),第二种情况,预测为正,实际为负,我们称为 false positive (FP),第三种情况,预测为负,实际为正,称为false negative (FN),最后一种情况,预测为负,实际也为负,称为 true negative (TN),每一个样本只可能属于这四种情况中的某一种,不会有其它的可能。

很显然,给定一个测试集,我们可以得到如下的关系:

Npre=TP+TN

Ntotal=TP+TN+FP+FN

如果我们定义一个测试集中,正样本个数为P, 负样本个数为N, 那么我们可以知道:P=TP+FN, N=TN+FP

所以,我们常用的识别率 acc 其实就等于

Acc=TP+TNTP+TN+FP+FN=TP+TNP+N

进一步,我们可以定义 recall ,precision, F1-score 如下所示:

Recall=TPTP+FN=TPP

Precision=TPTP+FP

F1=2TP2TP+FN+FP=2?Precision?RecallPrecision+Recall

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

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

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

Fβ=(1+β2)TP(1+β2)TP+β2FN+FP=(1+β2)?Precision?Recallβ2?Precision+Recall

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

参考来源:

https://en.wikipedia.org/wiki/Receiver_operating_characteristic

https://en.wikipedia.org/wiki/F1_score

时间: 2024-12-25 18:09:44

机器学习 F1-Score, recall, precision的相关文章

机器学习中的 precision、recall、accuracy、F1 Score

1. 四个概念定义:TP.FP.TN.FN 先看四个概念定义: - TP,True Positive - FP,False Positive - TN,True Negative - FN,False Negative 如何理解记忆这四个概念定义呢? 举个简单的二元分类问题 例子: 假设,我们要对某一封邮件做出一个判定,判定这封邮件是垃圾邮件.还是这封邮件不是垃圾邮件? 如果判定是垃圾邮件,那就是做出(Positive)的判定: 如果判定不是垃圾邮件,那就做出(Negative)的判定. Tru

F1 score,micro F1score,macro F1score 的定义

F1 score,micro F1score,macro F1score 的定义 2018年09月28日 19:30:08 wanglei_1996 阅读数 976 本篇博客可能会继续更新 最近在文献中经常看到precesion,recall,常常忘记了他们的定义,在加上今天又看到评价多标签分类任务性能的度量方法micro F1score和macro F2score.决定再把F1 score一并加进来把定义写清楚,忘记了再来看看. F1score F1score(以下简称F1)是用来评价二元分类

Recall, Precision and F-score

F1 score (also F-score or F-measure) ,调和平均数稍微有点不好理解,最关键的是,不知道分子的情况下,采用调和平均数.

Python机器学习之数据探索可视化库yellowbrick-tutorial

背景介绍 从学sklearn时,除了算法的坎要过,还得学习matplotlib可视化,对我的实践应用而言,可视化更重要一些,然而matplotlib的易用性和美观性确实不敢恭维.陆续使用过plotly.seaborn,最终定格在了Bokeh,因为它可以与Flask完美的结合,数据看板的开发难度降低了很多. 前阵子看到这个库可以较为便捷的实现数据探索,今天得空打算学习一下.原本访问的是英文文档,结果发现已经有人在做汉化,虽然看起来也像是谷歌翻译的,本着拿来主义,少费点精力的精神,就半抄半学,还是发

机器学习算法优秀性:衡量指标

评价算法优秀程序的时候,常用一系列指标来衡量,主要包括:Precision,Recall,F-1 Score,为什么要设计这些值?单单用Precision不行吗? 1, 什么是Precision ? Precison,准确度,主要表示检测出的Alert中有多少是正确的判断(True Positive,TP). 实际使用中,由于样本中正常数据和异常数据的比例不同,准确性可能不能体现真实的算法性能,举个例子: 癌症检测:假定99.5%的人是健康的,0.5%的人患有癌症. 错误检测算法:简单所有患者都

CDA 数据分析师 level1 part 5

数据分析师-机器学习 数据分析师-机器学习 机器学习概念 机器学习概念 ●机器学习研究如何让计算机不需要明确的程序也能具备学习能力.( Arthur Samuel,1959) ●一个计算机程序在完成了任务T之后,获得经验E,其表现效果为P,如果任务T的性能表现,也就是用以衡量的P,随着E的增加而增加,可以称其为学习.(Tom Mitchell11977) 虽然机器学习的研究来源于人工智能领域,但是机器学习的方法却应用于数据科学领域,因此我们将机器学习看作是一种数学建模更合适. 机器学习的本质就是

Python—kmeans算法学习笔记

一.   什么是聚类 聚类简单的说就是要把一个文档集合根据文档的相似性把文档分成若干类,但是究竟分成多少类,这个要取决于文档集合里文档自身的性质.下面这个图就是一个简单的例子,我们可以把不同的文档聚合为3类.另外聚类是典型的无指导学习,所谓无指导学习是指不需要有人干预,无须人为文档进行标注. 二.聚类算法:from sklearn.cluster import KMeans def __init__(self, n_clusters=8, init='k-means++', n_init=10,

dc竞赛大学生奖学金预测--模型优化篇

继上一篇得到的初步数据,我们基本上已经得到了用于分类的数据了.接下来可以考虑建模了,建模可以有多种方法那么评估模型的最简单粗暴的方法就是匹配准确率.但是这次的评分规则是: 简单说下赛方为什么不用匹配准确率来评价模型,本身数据结构中"没得助学金"的个体已经占了85%左右的比例,如果计算整体的匹配率对好的模型的检验不够.所以从这个比赛规则,我们也可以收到启发,下次做这种数据结构不均衡的分类时,评价体系可以采用上面这个比赛规则.那么先把得分函数写出来: from sklearn import

数据挖掘——Data competition: From 0 to 1: Part I

Data competition: From 0 to 1: Part I 1. Data competition Introduction 2. Example: Credit Fraud Detector EDA(Exploratory Data Analysis) Why taking log transformation of continuous variables? Outliers Detection Unbalance Metrics Resampling Cross-valid