很早以前就知道这些概念了,不过由于跟自己的认知习惯不一样,所以碰到了还是经常会忘。于是索性把这些概念总结一下,以后再忘了也好找(其他的文章太啰嗦了,计算方法也写的不清不楚….) 
另外我也会陆续更新一些其他的机器学习相关概念和指标,即是方便自己,也方便他人吧。

注意:本文将混用正负样本和阳性(+)阴性(-)这两套说法

真阳率、假阳率

这些概念其实是从医学那边引入到机器学习里面的,所以其思维逻辑多多少少会跟做机器学习的有点出入。我们去看病,化验单或报告单会出现(+)跟(-),其分别表型阳性和阴性。比如你去检查是不是得了某种病,阳性(+)就说明得了,阴性(-)就说明没事。 
那么,这种检验到底靠不靠谱呢?科研人员在设计这种检验方法的时候希望知道,如果这个人确实得了病,那么这个方法能检查出来的概率是多少呢(真阳率)?如果这个人没有得病,那么这个方法误诊其有病的概率是多少呢(假阳率)? 
具体来说,看下面这张表(摘自百度百科): 

真阳率(True Positive Rate, TPR)就是:

真阳率=aa+c真阳率=aa+c

含义是检测出来的真阳性样本数除以所有真实阳性样本数。

假阳率(False Positive Rate, FPR)就是:

假阳率=bb+d假阳率=bb+d

含义是检测出来的假阳性样本数除以所有真实阴性样本数。

ROC(Receiver Operating Characteristic)

很简单,就是把假阳率当x轴,真阳率当y轴画一个二维平面直角坐标系。然后不断调整检测方法(或机器学习中的分类器)的阈值,即最终得分高于某个值就是阳性,反之就是阴性,得到不同的真阳率和假阳率数值,然后描点。就可以得到一条ROC曲线。 
需要注意的是,ROC曲线必定起于(0,0),止于(1,1)。因为,当全都判断为阴性(-)时,就是(0,0);全部判断为阳性(+)时就是(1,1)。这两点间斜率为1的线段表示随机分类器(对真实的正负样本没有区分能力)。所以一般分类器需要在这条线上方。

画出来大概是长下面这样(转自这里): 

AUC(Area Under Curve)

顾名思义,就是这条ROC曲线下方的面积了。越接近1表示分类器越好。 
但是,直接计算AUC很麻烦,但由于其跟Wilcoxon-Mann-Witney Test等价,所以可以用这个测试的方法来计算AUC。Wilcoxon-Mann-Witney Test指的是,任意给一个正类样本和一个负类样本,正类样本的score有多大的概率大于负类样本的score(score指分类器的打分)。

方案一: 
我们可以对于总样本中的M个正样本和N个负样本,组成M×NM×N个pair,如果某个pair正样本score大于负样本,则记1分,反之记0分,相等记0.5分。然后总分除以M×NM×N就是AUC的值了。复杂度O(M×N)O(M×N)

方案二: 
基本思想一样,不过复杂度可以缩减到O((M+N)log(M+N))O((M+N)log(M+N))。 
首先,我们将所有样本得分从大到小排序,则排名最高的样本rank为M+N,第二的为M+N-1,以此类推。然后我们将所有正样本的rank加和,其思想为:排名k的正样本至多比k-1个负样本的score要大。当我们将正样本的rank加和后,再减去(1+M)M/2(1+M)M/2,即正样本的个数,就是正样本score比负样本score大的pair个数。再除以O(M×N)O(M×N)就是AUC的值了,公式如下:

AUC=∑i∈positiveranki−(1+M)M2M×NAUC=∑i∈positiveranki−(1+M)M2M×N

注意:对score相等的样本,需要赋予相同的rank(无论这个相等的score是出现在同类样本还是不同类的样本之间,都需要这样处理)。具体操作就是把所有这些score相等的样本的rank取平均。然后再使用上述公式。比如score为0.8的有两个样本,rank为7和8,则其最终代入公式的rank为7.5

真阳率(true positive rate)、假阳率(false positive rate),AUC,ROC相关推荐

  1. 每日记录 8.28 TP(真阳率) NP(假阳率) FP

    参考链接:https://blog.csdn.net/u011534057/article/details/51733244 https://blog.csdn.net/sinat_28576553/ ...

  2. TPR FPR 真阳率(true positive rate)、假阳率(false positive rate),AUC,ROC

    很早以前就知道这些概念了,不过由于跟自己的认知习惯不一样,所以碰到了还是经常会忘.于是索性把这些概念总结一下,以后再忘了也好找(其他的文章太啰嗦了,计算方法也写的不清不楚-.)  另外我也会陆续更新一 ...

  3. 真阳率(tp)、假阳率(np)

    很早以前就知道这些概念了,不过由于跟自己的认知习惯不一样,所以碰到了还是经常会忘.于是索性把这些概念总结一下,以后再忘了也好找(其他的文章太啰嗦了,计算方法也写的不清不楚-.)  另外我也会陆续更新一 ...

  4. 评价指标——精确度,召回率,真阳率,假阳率,P-R曲线,ROC曲线,AUC

    1.定义 精确度(precision)/查准率:TP/(TP+FP)=TP/P    预测为真中,实际为正样本的概率 召回率(recall)/查全率:TP/(TP+FN)  正样本中,被识别为真的概率 ...

  5. 假阳率(第一类错误)、假阴率,召回率、精确率

    为什么统计检验中常关注假阳率(第一类错误)和假阴率(第二类错误),而机器学习中常关注准确率和精确率? 最根本的原因是统计检验的零假设和备择假设是"不平等"的两类.而机器学习的分类一 ...

  6. 准确率,精准率,召回率,真正率,假正率,ROC/AUC

      最近在看到这些词得时候老是混淆,看了之后还很容易遗忘,于是查了些资料把他们记录下来. 我们在设计深度学习网络模型的时候经常要对其进行评估,评估就要用到这些东西,在接介绍这个率,那个率之前,我先来介 ...

  7. ROC/AUC、精准率、召回率、真正率,假正率等指标含义,学习笔记

    1. 混淆矩阵 对于二分类模型,预测值与真实值的组合情况,行成了混淆矩阵. 第一个字母表示是否预测正确(T/F),第二个表示预测为 P/1 还是 N/0. 2. 准确率 预测正确的结果占总样本的百分比 ...

  8. 误报率、故障检测率、漏报率、虚警率、误警率等指标异同及计算公式

    文章目录 误报率.故障检测率.漏报率.虚警率.误警率等指标异同及计算公式 1. 一些标准指标的计算 true positive rate (tp rate)[真阳性率], or hit rate [命 ...

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

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

最新文章

  1. LeetCode实战:两数相加
  2. .net面试题(高级)
  3. PTA天梯赛L1-006 连续因子 (20分)
  4. 文件指针创建失败!File *fp失败
  5. 中国连计算机硬盘都无法生产吗,中国仍无能力制造出电脑中的硬盘
  6. WordPress post和page的区别
  7. JAVA基础-关键字与保留字
  8. php mysql 多行_php-更新MySQL中的多行而没有循环
  9. 计算机视觉中常见图像扰动方法的Pytorch实现
  10. 【mongodb系统学习之十】mongodb查询(二)
  11. inotify java maven_Maven
  12. 帅帅什么意思_帅帅帅是什么意思
  13. CSS: 如何实现img垂直居中?
  14. Gentoo 软件包冲突
  15. STM32F103C8T6引脚图
  16. 20220326 java基础代码题(二)
  17. matalb读取txt文件以及将数据写入txt文件
  18. 数据驱动运营,为门店开拓第二增长曲线。
  19. 基于scrapy-redis的分布式腾讯新闻爬虫
  20. 腾讯御安全深度解析新型流量盗刷病毒家族

热门文章

  1. Next.js图片使用
  2. 火箭季后赛第二轮火箭vs湖人比赛赛程
  3. Juniper SRX Junos升级
  4. echarts 树图属性设置
  5. React:input输入框只能输入英文和特殊字符(可以自定义限制)
  6. Ogre图形引擎介绍(ZT)
  7. 量化交易准备资料-短线策略
  8. diff 算法深入一下?
  9. c3p0连接池报错 A client timed out while waiting
  10. 《Weighted Maximum Mean Discrepancy for Unsupervised Domain Adaptation》论文阅读