机器学习和生物信息学实验室联盟

标题: Precision,Recall,Accuracy [打印本页]

作者: Genie    时间: 2013-5-22 13:04
标题: Precision,Recall,Accuracy
本帖最后由 Genie 于 2013-5-22 13:19 编辑

假设原始样本中有两类,其中: P个正例样本,N个负例样本
分类结果中:
TP个正例分成正例,FN个正例分成负例(P=TP+FN)
TN个负例分成负例,FP个负例分成正例(N=TN+FP)

那么:
precision = TP/(TP+FP) : 分成正例的结果中真正例所占的比重,也就是正例结果中你分对多少
recall = TP/(TP+FN):分类结果中真正例占所有真正例的比重,也就是所有正例中找到多少
accuracy=(TP+TN)/(N+P):分类器正确分类的比重(正例分为正例,负例分为负例的比重)
类似recall,考虑负例中的判别能力 specificity = TN/(N)
F1=2*P*R/(P+R)
ROC是以假证率为横坐标,真正率为纵坐标,所做曲线下的面积。一般来说,真正率的增加是以假正率的增加为代价的。

precision和recall从信息检索方面更容易理解,搜索引擎在用户检索一条query时当然是希望尽可能多的相关网页给检索出来,也就是recall要高,这是必然就要放宽“搜索限制”,从而可能导致一些不相关的网页也给返回进而导致precision降低,当然也希望找回的结果尽可能都是相关的,也就是precision比较高,这样就会严格控制“搜索限制”导致相关的网页由于过于严格的限制而不能检索出来。 从这里可以看出,precision和recall是两个相互竞争的指标,F-score就是在两者之间做一个tradeoff。
More:

1. http://en.wikipedia.org/wiki/Precision_and_recall
2. http://en.wikipedia.org/wiki/Accuracy_and_precision

为什么这么多指标?

评价一个分类器的好坏在不同的应用场合或限制下需要不同的指标。比如:假设有100个样本(正例有1个而负例有99个),不用任何训练,直接将所有样本判为正例,那么Accuracy可达到99%,看似非常好实则没有反映出模型的真正能力。如果考虑precision和recall,无论是直接将所有样本判为正例(recall高precision低)还是负例,得到的结果都不好。类似于癌症判断,把癌症判断为非癌症和非癌症判断成癌症的代价是不同 。

统计信号分析中,对不同类的判断结果的错误的惩罚是不一样的。举例而言,雷达收到100个来袭导弹的信号,其中只有 3个是真正的导弹信号,其余 97 个是敌方模拟的导弹信号。假如系统判断 98 个(97 个模拟信号+1个真正的导弹信号)信号为模拟信号,那么Accuracy=98%,很高了,剩下两个是导弹信号,被截掉,这时Recall=2/3=66.67%,Precision=2/2=100%,Precision也很高。但剩下的那颗导弹就会造成灾害。

因此在统计信号分析中,有另外两个指标来衡量分类器错误判断的后果:
漏警概率(Missing Alarm)
MA = FN/(TP + FN) = 1 – TP/T = 1 - R;  有多少个正例被漏判(这里就是真正的导弹信号被判断为模拟信号,可见MA= 33.33%,太高了)

虚警概率(False Alarm)
FA = FP / (TP + FP) = 1 – P;反映被判为正例样本中,有多少个是负例。

在统计信号分析中,希望MA和FA尽量小,而对分类器的总的惩罚是上面两种错误分别加上惩罚因子的和:Cost = Cma *MA + Cfa * FA,根据不同需求,控制稀疏Cma,Cfa来调节对不同的错误分类的惩罚,这里自然是Cma要大一些。
作者: zouquan    时间: 2013-5-22 14:21
生物信息学中的预测(分类)问题一般用敏感性(sensitivity, sn)、特异性(specificity, sp)来衡量,有时也用选择性(selectivity, se)来衡量。
[attach]1470[/attach]




欢迎光临 机器学习和生物信息学实验室联盟 (http://123.57.240.48/) Powered by Discuz! X3.2