为什么Precision高Recall就低——F1 score

梳理一下公式

sensitivity = recall

为什么Precision高Recall就低——F1 score_第1张图片

 

为什么Precision高Recall就低——F1 score_第2张图片

为什么Precision高Recall就低——F1 score_第3张图片

Precision和Recall虽然从计算公式来看并没有什么必然的相关性关系,但是,在大规模数据集合中,这2个指标往往是相互制约的。理想情况下做到两个指标都高当然最好,但一般情况下,Precision高,Recall就低,Recall高,Precision就低。所以在实际中常常需要根据具体情况做出取舍。

对于搜索应用,在保证召回率的条件下,尽量提升精确率。即减少假阳性率、搜索出无关的信息。

对于癌症检测、地震检测、金融欺诈等,则在保证精确率的条件下,尽量提升召回率。减少假阴性率、漏检、。

所以,很多时候我们需要综合权衡这2个指标,这就引出了一个新的指标F-score。这是综合考虑Precision和Recall的调和值。

当β=1时,称为F1-score,这时,精确率和召回率都很重要,权重相同。当有些情况下,我们认为精确率更重要些,那就调整β的值小于1,如果我们认为召回率更重要些,那就调整β的值大于1。

举个例子:癌症检查数据样本有10000个,其中10个数据祥本是有癌症,其它是无癌症。假设分类模型在无癌症数据9990中预测正确了9980个,在10个癌症数据中预测正确了9个,此时真阳=9,真阴=9980,假阳=10,假阴=1。

那么:
Accuracy = (9+9980) /10000=99.89%

recall = 9/10=90%

Precision=9/(9+10)= 47.36%

F1-score=2×(47.36% × 90%)/(1×47.36%+90%)=62.07%

F10-score=101× (47.36% × 90%)/(100×47.36%+90%)=89.2%

F0.5-score=(1+0.25)× (47.36% × 90%)/(0.25×47.36%+90%)=52.32%

F0.1-score=(1+0.01)× (47.36% × 90%)/(0.01×47.36%+90%)=47.58%

可以看到,当召回率更重要时,当β升高,F-score逼近于召回率。

当精确率更重要时,当β降低时,F-score逼近于精确率。

参考文献

https://blog.csdn.net/saltriver/article/details/74012163

你可能感兴趣的:(python的荒野,F-score,precision,recall)