威海网站优化,陕西省建设监理协会官方网站,三门峡做网站优化,wordpress整站搬运Berkeley Computer Vision page Performance Evaluation
机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率 True Positives, TP#xff1a;预测为正样本#xff0c;实际也为正样本的特征数 False Positives,FP#xff1a;预测为正样本#xff0c;实际为负…Berkeley Computer Vision page Performance Evaluation
机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率 True Positives, TP预测为正样本实际也为正样本的特征数 False Positives,FP预测为正样本实际为负样本的特征数 True Negatives,TN预测为负样本实际也为负样本的特征数 False Negatives,FN预测为负样本实际为正样本的特征数
图如下所示里面绿色的半圆就是TP(True Positives), 红色的半圆就是FP(False Positives), 左边的灰色长方形不包括绿色半圆就是FNFalse Negatives。右边的 浅灰色长方形不包括红色半圆就是TN(True Negatives)。这个绿色和红色组成的圆内代表我们分类得到模型结果认为是正值的样本 Recall召回率 Precision准确率 F-Measure E值 sensitivity灵敏性 specificity特异性漏诊率 误诊率 ROC AUC
信息检索、分类、识别、翻译等领域两个最基本指标是
召回率(Recall Rate)系统检索到的相关文件 / 系统所有相关的文件总数衡量的是检索系统的查全率。 准确率(Precision Rate)系统检索到的相关文件 / 系统所有检索到的文件总数衡量的是检索系统的查准率。
图示表示如下 一般来说Precision就是检索出来的条目比如文档、网页等有多少是准确的Recall就是所有准确的条目有多少被检索出来了。
注意准确率和召回率是互相影响的理想情况下肯定是做到两者都高但是一般情况下准确率高、召回率就低召回率低、准确率高当然如果两者都低那是什么地方出问题了。一般情况用不同的阀值统计出一组不同阀值下的精确率和召回率如下图
如果是做搜索那就是保证召回的情况下提升准确率 如果做疾病监测、反垃圾则是保准确率的条件下提升召回。
综合评价指标F-Measure
P和R指标有时候会出现的矛盾的情况这样就需要综合考虑他们最常见的方法就是F-Measure又称为F-Score。
F-Measure是Precision和Recall加权调和平均
F a^2 1/(1/P a^2/R) (a^21)*P*R / (a^2*P R)
当参数a1时就是最常见的F1
F1 2*P*R / (PR) 有时候我们对精确率和召回率并不是一视同仁比如有时候我们更加重视精确率。我们用一个参数β来度量两者之间的关系。如果β1, 召回率有更大影响如果β1,精确率有更大影响。自然当β1的时候精确率和召回率影响力相同和F1形式一样。含有度量参数β的F1我们记为Fβ, 严格的数学定义如下 很容易理解F1综合了P和R的结果。 F1 测量不均衡数据的精度。 R2 分数测量回归的精度。 更多R2的介绍见 准确测量机器学习模型的误差 Accurately Measuring Model Prediction Error
E值 是Precision和Recall加权平均值b1表示更重视P
E 1-b^2 1/(1/P b^2/R)1- (b^21)*P*R / b^2*P R)
不妨举这样一个例子某池塘有1400条鲤鱼300只虾300只鳖。现在以捕鲤鱼为目的。撒一大网逮着了700条鲤鱼200只虾100只鳖。那么这些指标分别如下
准确率 700 / (700 200 100) 70%
召回率 700 / 1400 50%
F值 70% * 50% * 2 / (70% 50%) 58.3%
不妨看看如果把池子里的所有的鲤鱼、虾和鳖都一网打尽这些指标又有何变化
正确率 1400 / (1400 300 300) 70%
召回率 1400 / 1400 100%
F值 70% * 100% * 2 / (70% 100%) 82.35%
由此可见准确率是评估捕获的成果中目标成果所占得比例召回率顾名思义就是从关注领域中召回目标类别的比例而F值则是综合这二者指标的评估指标用于综合反映整体的指标。
当然希望检索结果Precision越高越好同时Recall也越高越好但事实上这两者在某些情况下有矛盾的。比如极端情况下我们只搜索出了一个结果且是准确的那么Precision就是100%但是Recall就很低而如果我们把所有结果都返回那么比如Recall是100%但是Precision就会很低。因此在不同的场合中需要自己判断希望Precision比较高或是Recall比较高。如果是做实验研究可以绘制Precision-Recall曲线来帮助分析。
灵敏性与假阴性率漏诊率特异性与假阳性率误诊率
灵敏度也称真阳性率sensitivity真阳性人数/真阳性人数假阴性人数*100%。
指正确判断病人的程度也即实际有病而被正确诊断的百分比。 特异度也称真阴性率specificity真阴性人数/真阴性人数假阳性人数*100%。 指正确判断非病人的程度也即实际无病而被正确诊断为无病的百分比。
ROC和AUC
ROC和AUC是评价分类器的指标 回到ROC上来ROC的全名叫做Receiver Operating Characteristic。 ROC关注两个指标
True Positive Rate ( TPR ) TP /TP FN
TPR代表能将正例分对的概率 False Positive Rate( FPR ) FP /FP TN
FPR代表将负例错分为正例的概率
纵轴真正率击中率true positive rate ,TPR称为灵敏度。所有实际正例中正确识别的正例比例。
横轴假正率虚报率false positiverate, FPR称为(1-特异度)。所有实际负例中错误得识别为正例的负例比例。
在ROC 空间中每个点的横坐标是FPR纵坐标是TPR这也就描绘了分类器在TP真正的正例和FP错误的正例间的trade-off。
以召回率为y轴以特异性为x轴我们就直接得到了RoC曲线。从召回率和特异性的定义可以理解召回率越高特异性越小我们的模型和算法就越高效。也就是画出来的RoC曲线越靠近左上越好。如下图左图所示。从几何的角度讲RoC曲线下方的面积越大越大则模型越优。所以有时候我们用RoC曲线下的面积即AUCArea Under Curve值来作为算法和模型好坏的标准。
ROC的主要分析工具是一个画在ROC空间的曲线——ROC curve。我们知道对于二值分类问题实例的值往往是连续值我们通过设定一个阈值将实例分类到正类或者负类比如大于阈值划分为正类。因此我们可以变化阈值根据不同的阈值进行分类根据分类结果计算得到ROC空间中相应的点连接这些点就形成ROC curve。ROC curve经过0,01,1实际上(0, 0)和(1, 1)连线形成的ROC curve实际上代表的是一个随机分类器。一般情况下这个曲线都应该处于(0, 0)和(1, 1)连线的上方如图所示。
Roc曲线用来评价分类器的性能。通过测试分类结果可以计算得到TPR和FPR的一个点对。再通过调整这个分类器分类的阈值从0.1到0.9阈值的设定将实例分类到正类或者负类比如大于阈值划分为正类。因此根据变化阈值会产生不同效果的分类得到多个分类结果的点可以画出一条曲线经过(0, 0)(1, 1)。
曲线在对角线左上方离得越远说明分类效果好。如果出现在对角线右下方直观的补救办法就是把所有的预测结果反向即分类器目的是识别正例但效果差所以把分类器输出结果正负颠倒把输出的正例当成负例把负例当成正例。就得到一个好的分类器。从源头上说分类器越差越好。
用ROC curve来表示分类器的performance很直观好用。可是人们总是希望能有一个数值来标志分类器的好坏。于是Area Under roc Curve(AUC)就出现了。顾名思义AUC的值就是处于ROC curve下方的那部分面积的大小。通常AUC的值介于0.5到1.0之间较大的AUC代表了较好的Performance。
P/R和ROC是两个不同的评价指标和计算方式一般情况下检索用前者分类、识别等用后者。
以精确率为y轴以召回率为x轴我们就得到了PR曲线。仍然从精确率和召回率的定义可以理解精确率越高召回率越高我们的模型和算法就越高效。也就是画出来的PR曲线越靠近右上越好。 准确率Precision TP/(TPFP)
反映了被分类器判定的正例中真正的正例样本的比重
虚警概率False AlarmFA FP / (TP FP) 1 – Precision
反映被判为正例样本中有多少个是负例
召回率(Recall)TP/(TPFN) 1 - FN/P
也称为 True Positive Rate 反映了被正确判定的正例占总的正例的比重
漏警概率Missing AlarmMA FN/(TP FN) 1 – TP/P 1 - Recall
反映有多少个正例被漏判了
F-measure or balanced F-score
F 2 * 召回率 * 准确率/ (召回率准确率)
这就是传统上通常说的F1 measure
灵敏度也称真阳性率)sensitivity TP/(TP FN);True Positive Rate ( TPR ) TP /TP FN
指正确判断病人的程度也即实际有病而被正确诊断的百分比。 即实际上有病而按该筛检标准被正确地判为有病的百分率
(假阴性率)False Negative Rate(FNR) FN/(TP FN) 1-sensitivity1-TPR
假阴性率也称为漏诊率即实际有病但根据该筛选标准被定为非病者的百分率。
特异性真阴性率specificity TN /FP TN
True Negative Rate(TNR) TN/(TP TN)
即实际无病按照该诊断标准被正确地判为无病的百分率。
假阳性率False Positive Rate FPR FP/(FP TN) 1-specificity1- TNR
假阳性也称为误诊率即实际无病但根据诊断标准被定为有病的百分率 综上所述 Recall召回率和 sensitivity灵敏性是同一个概念其他无相同点。
关于分类算法中的ROC与PR指标参考下文 http://blog.csdn.net/jiandanjinxin/article/details/51841726 MATLAB实现
AUC计算
ROC 计算
Precision-Recall and ROC Curves
Matlab code for Precision/Recall, ROC, Accuracy, F-Measure
本文参考主页 精确率与召回率RoC曲线与PR曲线 http://bookshadow.com/weblog/2014/06/10/precision-recall-f-measure/ http://blog.csdn.net/marising/article/details/6543943 http://blog.sina.com.cn/s/blog_4dff58fc010176ax.html http://blog.sina.com.cn/s/blog_49ea41a20102w4kd.html http://blog.csdn.net/wangran51/article/details/7579100