Precision(精确率,正确率), Recall(召回率,查全率),Accuracy(准确率),F-Measure(F值)

一、指标概念

TP - 将正类预测为正类

FN - 将正类预测为负类, 类似假设检验中的第一类错误,拒真

FP - 将负类预测位正类,类似假设检验中的第二类错误,取伪

TN - 将负类预测位负类

假设检验第一类错误(Type I error):原假设是正确的,却拒绝了原假设。

假设检验第二类错误(Type II error):原假设是错误的,却没有拒绝原假设。
 
二、定义
Precision(精确率,正确率) = TP / (TP +FP)     提取出来的正确信息条数 /  提取出来的信息条数
反映了被分类器判定的正例中真正的正例样本的比重 
 
Recall(召回率,查全率) = TP / (TP + FN)    提取出的正确信息条数 /  样本中的正确信息条数 
反映了被正确判定的正例占总的正例的比重
 
Accuracy(准确率)  = (TP + TN) /(TP + FN + FP + TN)
反映了分类器统对整个样本的判定能力——能将正的判定为正,负的判定为负 
 
在大规模数据集合中,精确率(Precision)和召回率(Recall)2个指标往往是相互制约的。理想情况下做到两个指标都高当然最好,但一般情况下,Precision高,Recall就低,Recall高,Precision就低。所以在实际中常常需要根据具体情况做出取舍,例如一般的搜索情况,在保证召回率的条件下,尽量提升精确率。而像癌症检测、地震检测、金融欺诈等,则在保证精确率的条件下,尽量提升召回率。
F-Measure(F值) = 2 *  Recall * Precision/ (Precision+Recall)
 

一个例子:某池塘有1400条鲤鱼,300只虾,300只鳖

现在以捕鲤鱼为目的。那么,这些指标分别如下:

  逮着了700条鲤鱼,200只虾,100只鳖 把池子里的所有的鲤鱼、虾和鳖都一网打尽
Precision 700 / (700 + 200 + 100) = 70% 1400 / (1400 + 300 + 300) = 70%
Recall 700 / 1400 = 50% 1400 / 1400 = 100%
F值 70% * 50% * 2 / (70% + 50%) = 58.3% 70% * 100% * 2 / (70% + 100%) = 82.35% 

另一个例子

生病检查数据样本有10000个,其中10个数据祥本是有病,其它是无病。

假设分类模型在无病数据9990中预测正确了9980个,在10个有病数据中预测正确了9个,真阳=9,真阴=9980,假阳=10,假阴=1

可翻译为 TP=9,  FN(拒真)=1, FP(取伪)= 10,TN=9980

于是

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

Accuracy = (TP + TN) /(TP + FN + FP + TN)(9+9980) /10000=99.89% 

Recall = TP / (TP + FN) = 9/(9+1) = 90%

F-Measure(F值) = 2 *  Recall * Precision/ (Precision+Recall)
F1-score=2 *Recall *Precision/ (Precision+Recall)= 2×(47.36% × 90%)/(1×47.36%+90%)=62.07% 
F2-score=5× (47.36% × 90%)/(4×47.36%+90%)=76. 27%

参考链接:

https://blog.csdn.net/u011630575/article/details/80250177

https://blog.csdn.net/xwd18280820053/article/details/70674256

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

猜你喜欢

转载自www.cnblogs.com/FiaFia/p/9293346.html