准确率、精确率、召回率和F-score

一、TP、FP、FN和TN

举例来说,用血压值来检测一个人是否有高血压,测出的血压值是连续的实数(从0~200都有可能),以收缩压140/舒张压90为阈值,阈值以上便诊断为有高血压,阈值未满者诊断为无高血压。二元分类模型的个案预测有四种结局:
1. 真阳性(true positive, TP):诊断为有, 实际上也有高血压;
2. 伪阳性(false positive,FP):诊断为有,实际却没有高血压;
3. 真阴性(true negative,TN):诊断为没有,实际上也没有高血压;
4. 伪阴性(false negative,FN):诊断为没有,实际上却有高血压。
这四种结局可以画成2 × 2的混淆矩阵:
在这里插入图片描述

二、 准确率(accuracy)、精确率(precision)、召回率(Recall)、F-score

补充: 阳性(正例):Positive(用P表示)
阴性(反例):Negative(用N表示)
样本的数量N = 正例 + 反例 = P + N = TP + FP + FN + TN

1. 准确率(accuracy), 所有的预测正确(正类负类)的占总的比重。
在这里插入图片描述
2. 精确率(也叫查准率,precision), 即正确预测为正的占全部预测为正的比例,(真正正确的占所有预测为正的比例)
在这里插入图片描述
3. 召回率(recall), 即正确预测为正的占全部实际为正的比例(真正正确的占所有实际为正的比例)
在这里插入图片描述
4. F-score值,F1值为算数平均数除以几何平均数,且越大越好,将Precision和Recall的上述公式带入会发现,当F1值小时,True Positive相对增加,而false相对减少,即Precision和Recall都相对增加,即F1对Precision和Recall都进行了加权。
在这里插入图片描述
公式转化之后:
在这里插入图片描述

三、各个指标意义和优缺点

1. 准确率
虽然准确率能够判断总的正确率,但是在样本不均衡的情况下,并不能作为很好的指标来衡量结果。
比如在样本集中,正样本有90个,负样本有10个,样本是严重的不均衡。对于这种情况,我们只需要将全部样本预测为正样本,就能得到90%的准确率,但是完全没有意义。对于新数据,完全体现不出准确率。因此,在样本不平衡的情况下,得到的高准确率没有任何意义,此时准确率就会失效。所以,我们需要寻找新的指标来评价模型的优劣。

2 . 精确率
精确率(Precision) 是针对预测结果而言的,其含义是在被所有预测为正的样本中实际为正样本的概率,精确率和准确率看上去有些类似,但是是两个完全不同的概念。精确率代表对正样本结果中的预测准确程度,准确率则代表整体的预测准确程度,包括正样本和负样本。

3. 召回率
召回率(Recall) 是针对原样本而言的,其含义是在实际为正的样本中被预测为正样本的概率。
准确率和召回率互相影响,理想状态下肯定追求两个都高,但是实际情况是两者相互“制约”:追求准确率高,则召回率就低;追求召回率高,则通常会影响准确率。我们当然希望预测的结果precision越高越好, recall越高越好, 但事实上这两者在某些情况下是矛盾的。这样就需要综合考虑它们,最常见的方法就是F-score。 也可以绘制出P-R曲线图,观察它们的分布情况。

4. F-score
一般来说准确率和召回率呈负相关,一个高,一个就低,如果两个都低,一定是有问题的。 一般来说,精确度和召回率之间是矛盾的,这里引入F1-Score作为综合指标,就是为了平衡准确率和召回率的影响,较为全面地评价一个分类器。F1是精确率和召回率的调和平均。

【参考】
https://zh.wikipedia.org/wiki/ROC曲线#基本概念
https://blog.csdn.net/u013063099/article/details/80964865
https://blog.csdn.net/XiaoYi_Eric/article/details/86726284
https://blog.csdn.net/Stephen_shijun/article/details/83059863

### 准确率精确召回率F-测度的关系 准确率(Accuracy)、精确Precision)、召回率Recall)以及F-测度(F-measure),虽然都是用于衡量机器学习模型性能的重要指标,但在定义上存在显著差异,并不会总是完全相同。 #### 1. 准确率 (Accuracy) 准确率是指所有预测正确的样本占总样本的比例。当数据集类别分布均衡时,准确率是一个有效的评估标准;然而,在处理不平衡的数据集时,高准确率可能掩盖了少数类别的低识别能力[^1]。 ```python accuracy = (TP + TN) / (TP + FP + FN + TN) ``` #### 2. 精确 (Precision) 精确关注的是被预测为正类的实例中有多少确实是真正的正类成员。对于减少误报非常重要的应用场景来说,这是一个关键参数[^2]。 ```python precision = TP / (TP + FP) ``` #### 3. 召回率 (Recall) 召回率反映了实际属于正类的对象中有多大比例被成功检测出来。在需要尽可能多地捕捉到真正阳性的场合下显得尤为重要。 ```python recall = TP / (TP + FN) ``` #### 4. F-测度 (F-measure 或者 F1 Score) 由于精确召回率之间可能存在冲突——提高其中一个可能会降低另一个,因此引入了F-测度来平衡两者的影响。它通过调平均数的方式结合了这两个方面: ```python f_measure = 2 * ((precision * recall) / (precision + recall)) ``` 这些指标只有在一个极端理想的情况下才会相等:即所有的预测都完美无缺,没有任何错误发生,此时真阳性(TP),假阴性(FN), 假阳性(FP)均为零,而真阴性(TN)等于总数减去TP。这通常只会在理论上的最佳情况下出现,在现实世界的应用场景里几乎不可能实现这样的条件。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值