召回率 Recall、精确度Precision、准确率Accuracy、虚警、漏警等分类判定指标
假设原始样本中有两类,其中:
1:总共有 P个类别为1的样本,假设类别1为正例。
2:总共有N个类别为0的样本,假设类别0为负例。
经过分类后:
3:有TP个类别为1的样本被系统正确判定为类别1,FN个类别为1 的样本被系统误判定为类别0,显然有P=TP+FN;
4:有FP 个类别为0的样本被系统误判断定为类别1,TN个类别为0 的样本被系统正确判为类别0,显然有N=FP+TN;
那么:
精确度(Precision)
P = TP/(TP+FP);
反映了被分类器判定的正例中真正的正例样本的比重。
准确率(Accuracy)
A = (TP + TN)/(P+N) = (TP + TN)/(TP + FN + FP + TN);
反映了分类器统对整个样本的判定能力——能将正的判定为正,负的判定为负。
召回率(Recall && True Positive Rate)
R = TP/(TP+FN) = 1 - FN/T;
反映了被正确判定的正例占总的正例的比重。
转移性(True NegativeRate)
S = TN/(TN + FP) = 1 – FP/N;
明显的这个和召回率是对应的指标,只是用它在衡量类别0的判定能力。
F-measure or balanced F-score
F = 2 * 召回率 * 准确率/ (召回率+准确率);这就是传统上通常说的F1 measure,另外还有一些别的F measure,可以参考下面的链接
上面这些介绍可以参考:
http://en.wikipedia.org/wiki/Precision_and_recall
同时,也可以看看:
http://en.wikipedia.org/wiki/Accuracy_and_precision
在统计信号分析中,有另外两个指标来衡量分类器错误判断的后果:
漏警概率(Missing Alarm)
MA = FN/(TP + FN) = 1–TP/T = 1-R;
反映有多少个正例被漏判了(我们这里就是真正的导弹信号被判断为模拟信号,可见MA此时为33.33%,太高了)。
虚警概率(False Alarm)
FA = FP/(TP + FP) = 1–P;
反映被判为正例样本中,有多少个是负例。
统计信号分析中,希望上述的两个错误概率尽量小。而对分类器的总的惩罚就是上面两种错误分别加上惩罚因子的和:COST = Cma MA + Cfa FA。不同的场合、需要下,对不同的错误的惩罚也不一样的。像这里,我们自然希望对漏警的惩罚大,因此它的惩罚因子Cma要大些。
下面举例说明召回率和精度之间的关系:
一个数据库有500个文档, 其中有50个文档符合定义的问题.系统检索到75个文档,但是只有45个符合定义的问题.
召回率 R=45/50=90%
精度 P=45/75=60%
本例中, 系统检索是比较有效的,召回率为90%. 但是结果有很大的噪音,有近一半的检索结果是不相关。研究表明:在不牺牲精度的情况下,获得一个高召回率是很困难的.召回率越高,精度下降的很快,而且这种趋势不是线性的。
正确率(精确度)、召回率和F值是在鱼龙混杂的环境中,选出目标的重要评价指标。
不妨再看看这些指标的定义先:
正确率(精确度) = 正确识别的个体总数 / 识别出的个体总数
召回率 = 正确识别的个体总数 / 测试集中存在的个体总数
F值 = 正确率 * 召回率 * 2 / (正确率 + 召回率)
不妨举这样一个例子:某池塘有1400条鲤鱼,300只虾,300只鳖。现在以捕鲤鱼为目的。Seaeagle撒一大网,逮着了700条鲤鱼,200只虾,100只鳖。那么,这些指标分别如下:
正确率 = 700 / (700 + 200 + 100) = 70%
召回率 = 700 / 1400 = 50%
F值 = 70% * 50% * 2 / (70% + 50%) = 58.3%
不妨看看如果Seaeagle把池子里的所有的鲤鱼、虾和鳖都一网打尽,这些指标又有何变化:
正确率 = 1400 / (1400 + 300 + 300) = 70%
召回率 = 1400 / 1400 = 100%
F值 = 70% * 100% * 2 / (70% + 100%) = 82.35%
由此可见,正确率是评估捕获的成果中目标成果所占得比例;召回率,顾名思义,就是从关注领域中,召回目标类别的比例;而F值,则是综合这二者指标的评估指标,用于综合反映整体的指标。