转自机器学习:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线

摘要:

数据挖掘、机器学习和推荐系统中的评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure)简介。

引言:

在机器学习、数据挖掘、推荐系统完成建模之后,需要对模型的效果做评价。

业内目前常常采用的评价指标有准确率(Precision)、召回率(Recall)、F值(F-Measure)等,下图是不同机器学习算法的评价指标。下文讲对其中某些指标做简要介绍。

本文针对二元分类器!
本文针对二元分类器!!
本文针对二元分类器!!!

对分类的分类器的评价指标将在以后文章中介绍。

在介绍指标前必须先了解“混淆矩阵”:

混淆矩阵

True Positive(真正,TP):将正类预测为正类数

True Negative(真负,TN):将负类预测为负类数

False Positive(假正,FP):将负类预测为正类数误报 (Type I error)

False Negative(假负,FN):将正类预测为负类数→漏报 (Type II error)

1、准确率(Accuracy)

准确率(accuracy)计算公式为:

ACC=TP+TNTP+TN+FP+FN A C C = T P + T N T P + T N + F P + F N

ACC=\frac{TP+TN}{TP+TN+FP+FN}
注:准确率是我们最常见的评价指标,而且很容易理解,就是被分对的样本数除以所有的样本数,通常来说,正确率越高,分类器越好。
准确率确实是一个很好很直观的评价指标,但是有时候准确率高并不能代表一个算法就好。比如某个地区某天地震的预测,假设我们有一堆的特征作为地震分类的属性,类别只有两个:0:不发生地震、1:发生地震。一个不加思考的分类器,对每一个测试用例都将类别划分为0,那那么它就可能达到99%的准确率,但真的地震来临时,这个分类器毫无察觉,这个分类带来的损失是巨大的。为什么99%的准确率的分类器却不是我们想要的,因为这里数据分布不均衡,类别1的数据太少,完全错分类别1依然可以达到很高的准确率却忽视了我们关注的东西。再举个例子说明下。在正负样本不平衡的情况下,准确率这个评价指标有很大的缺陷。比如在互联网广告里面,点击的数量是很少的,一般只有千分之几,如果用acc,即使全部预测成负类(不点击)acc也有 99% 以上,没有意义。因此,单纯靠准确率来评价一个算法模型是远远不够科学全面的。

2、错误率(Error rate)

错误率则与准确率相反,描述被分类器错分的比例,

errorrate=FP+FNTP+TN+FP+FN e r r o r r a t e = F P + F N T P + T N + F P + F N

error rate = \frac{FP+FN}{TP+TN+FP+FN},对某一个实例来说,分对与分错是互斥事件,所以accuracy =1 - error rate。

3、灵敏度(sensitive)
sensitive=TPP s e n s i t i v e = T P P

sensitive = \frac{TP}{P}表示的是所有正例中被分对的比例,衡量了分类器对正例的识别能力。

4、特效度(sensitive)
specificity=TNN s p e c i f i c i t y = T N N

specificity = \frac{TN}{N}
表示的是所有负例中被分对的比例,衡量了分类器对负例的识别能力。

5、精确率、精度(Precision)

精确率(precision)定义为:

P=TPTP+FP P = T P T P + F P

P=\frac{TP}{TP+FP}

表示被分为正例的示例中实际为正例的比例。

6、召回率(recall)

召回率是覆盖面的度量,度量有多个正例被分为正例,

recall=TPTP+FN=TPP=sensitive r e c a l l = T P T P + F N = T P P = s e n s i t i v e

recall=\frac{TP}{TP+FN}=\frac{TP}{P}=sensitive可以看到召回率与灵敏度是一样的。

7、综合评价指标(F-Measure)

P和R指标有时候会出现的矛盾的情况,这样就需要综合考虑他们,最常见的方法就是F-Measure(又称为F-Score)。
F-Measure是Precision和Recall加权调和平均:

F=(a2+1)P∗Ra2(P+R) F = ( a 2 + 1 ) P ∗ R a 2 ( P + R )

F=\frac{(a^2+1)P*R}{a^2(P+R)}
当参数α=1时,就是最常见的F1,也即

F1=2∗P∗RP+R F 1 = 2 ∗ P ∗ R P + R

F1=\frac{2*P*R}{P+R}
可知F1综合了P和R的结果,当F1较高时则能说明试验方法比较有效。

8、其他评价指标

计算速度:分类器训练和预测需要的时间;

鲁棒性:处理缺失值和异常值的能力;

可扩展性:处理大数据集的能力;

可解释性:分类器的预测标准的可理解性,像决策树产生的规则就是很容易理解的,而神经网络的一堆参数就不好理解,我们只好把它看成一个黑盒子。

下面来看一下ROC和PR曲线(以下内容为自己总结):

8.1 ROC曲线:

ROC(Receiver Operating Characteristic)曲线是以假正率(FP_rate)和假负率(TP_rate)为轴的曲线,ROC曲线下面的面积我们叫做AUC,如下图所示:

图片根据Paper:Learning from eImbalanced Data画出

其中:这里写图片描述
(1)曲线与FP_rate轴围成的面积(记作AUC)越大,说明性能越好,即图上L2曲线对应的性能优于曲线L1对应的性能。即:曲线越靠近A点(左上方)性能越好,曲线越靠近B点(右下方)曲线性能越差。
(2)A点是最完美的performance点,B处是性能最差点。
(3)位于C-D线上的点说明算法性能和random猜测是一样的–如C、D、E点。位于C-D之上(即曲线位于白色的三角形内)说明算法性能优于随机猜测–如G点,位于C-D之下(即曲线位于灰色的三角形内)说明算法性能差于随机猜测–如F点。
(4)虽然ROC曲线相比较于Precision和Recall等衡量指标更加合理,但是其在高不平衡数据条件下的的表现仍然过于理想,不能够很好的展示实际情况。

8.2 PR曲线:

即,PR(Precision-Recall)曲线。
举个例子(例子来自Paper:Learning from eImbalanced Data):
假设N_c>>P_c(即Negative的数量远远大于Positive的数量),若FP很大,即有很多N的sample被预测为P,因为这里写图片描述,因此FP_rate的值仍然很小(如果利用ROC曲线则会判断其性能很好,但是实际上其性能并不好),但是如果利用PR,因为Precision综合考虑了TP和FP的值,因此在极度不平衡的数据下(Positive的样本较少),PR曲线可能比ROC曲线更实用。

机器学习模型评价指标:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线相关推荐

  1. python垃圾分类准确率计算公式_准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure...

    机器学习(ML),自然语言处理(NLP),信息检索(IR)等领域,评估(Evaluation)是一个必要的 工作,而其评价指标往往有如下几点:准确率(Accuracy),精确率(Precision), ...

  2. Airbnb欺诈预测机器学习模型设计:准确率和召回率的故事 发表于2015-07-15 16:14| 3926次阅读| 来源AirBNB/Data| 1 条评论| 作者Ariana Radianto

    Airbnb欺诈预测机器学习模型设计:准确率和召回率的故事 发表于2015-07-15 16:14| 3926次阅读| 来源AirBNB/Data| 1 条评论| 作者Ariana Radianto ...

  3. Airbnb欺诈预测机器学习模型设计:准确率和召回率的故事

     Airbnb欺诈预测机器学习模型设计:准确率和召回率的故事 发表于2015-07-15 16:14| 504次阅读| 来源AirBNB/Data| 0 条评论| 作者Ariana Radiant ...

  4. 【机器学习】准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure

    在机器学习.数据挖掘.推荐系统完成建模之后,需要对模型的效果做评价. 业内目前常常采用的评价指标有准确率(Precision).召回率(Recall).F值(F-Measure)等,下图是不同机器学习 ...

  5. 目标检测评价标准(mAP, 精准度(Precision), 召回率(Recall), 准确率(Accuracy),交除并(IoU))

    1. TP , FP , TN , FN定义 TP(True Positive)是正样本预测为正样本的数量,即与Ground truth区域的IoU>=threshold的预测框 FP(Fals ...

  6. 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题)

    首先我们可以计算准确率(accuracy),其定义是: 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比.也就是损失函数是0-1损失时测试数据集上的准确率. 下面在介绍时使用一下例子: 一个 ...

  7. 真阳假阳真阴假阴指标(TP,FP,TN,FN)精度Precision 准确率Accuracy 召回率Recall 总结

    检测相关指标(TP,FP,TN,FN)总结表格 指标 定义 公式 备注 真阳性 (True Positive, TP) 预测为阳性,实际为阳性 - - 假阳性 (False Positive, FP) ...

  8. 机器学习中的准确率、召回率、F值详解

    机器学习算法中的准确率(Precision).召回率(Recall).F值(F-Measure): 摘要: 数据挖掘.机器学习和推荐系统中的评测指标-准确率(Precision).召回率(Recall ...

  9. 信息检索(IR)的评价指标介绍-准确率、召回率、F1、mAP、ROC、AUC

    在信息检索.分类体系中,有一系列的指标,搞清楚这些指标对于评价检索和分类性能非常重要,因此最近根据网友的博客做了一个汇总. 准确率.召回率.F1 信息检索.分类.识别.翻译等领域两个最基本指标是召回率 ...

  10. 模型评估准确率、召回率、ROC曲线、AUC总结

    实际上非常简单,精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是对的.那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP). P = TP ...

最新文章

  1. 感受hook里useEffect的执行顺序,hook倒计时
  2. mac 使用svn记录
  3. Android -- ADT变化aarLint
  4. 神经网络中,正则化L1与L2的区别、如何选择以及代码验证
  5. 安装node-rfc时需要的cmake依赖
  6. Android 如何全局获取Context
  7. HTML页面楷体gb2312字体,楷体gb2312
  8. spring 实现小程序抖音去水印后台
  9. BottomNavigationView--基本使用总结
  10. iOS平台游戏安全之IPA破解原理及防御
  11. TriangleCount三角形计数
  12. python 删除特定列_pandas删除某一列的方法(drop函数)
  13. git删除远程创库命令
  14. [数学学习笔记]极限的概念.
  15. 在c#中using和new这两个关键字有什么意义
  16. 双向可控硅漏电流 ?- 解决方法
  17. Linux qt教程 qt入门(一)
  18. 安卓投屏大师_安卓免费录屏软件哪个好用 免费长时间录屏软件推荐
  19. Opencv笔记(十七)——轮廓性质
  20. 测试iphone硬件好坏的软件,如何检测苹果手机硬件有没有故障,这几招收好不谢!...

热门文章

  1. jmeter之java代码性能测试_松勤软件性能测试-自定义编写的Java测试代码在Jmeter中如何使用...
  2. 舰船交流电网绝缘监测及故障定位的研究及产品选型
  3. 元素宽度固定,根据字符串长度,计算fontSize,缩小字号适配页面
  4. cleave.js_Cleave.js的Vue.js 2.x组件
  5. SwiftUI 文字转语音TTS 开发朗读器 AVSpeechSynthesizer(教程含源码)
  6. sqlserver列转行,纵向数据转横向
  7. Docker 镜像、容器操作--小试牛刀
  8. 秒杀系统(二)——商品模块展示技术难点
  9. 华为云计算FusionCompute虚拟化平台的安装与设置(戴尔服务器单点安装)
  10. 安川伺服总线通讯方式_伺服控制总线方式特点