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

https://blog.csdn.net/sinat_28576553/article/details/83448724?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

https://blog.csdn.net/littlehaes/article/details/83278256?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

很早以前就知道这些概念了,不过由于跟自己的认知习惯不一样,所以碰到了还是会忘。于是索性把这些概念总结一下,以后再忘了也不好找(其他的文章太罗嗦额,计算方法也写的不清不楚)。

真阳率、假阳率

这些概念是从医学那引入到机器学习的,所以其思维模式多多少少跟机器学习有点出入。我们去看病,化验单或报告单会出现(+)跟(-),其分别表现阳性和阴性。比如你检查是不是得了某种疾病,阳性(+)说明得了,阴性(-)说明没得。

那么这种检验到底靠不靠谱呢?科研人员在设计这种检验方法的时候希望知道,如果这个人确实得了病,那么这二个方法能检查出来的概率是多少呢:

真阳率:

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

假阳率:

检测出来的假阳性样本数除以所有真实隐形样本数。

ROC

很简单,就是吧假阳率当作X轴,真阳率当Y轴画一个二维平面直角坐标系。然后不断调整检测方法的阈值,即最终得分法偶遇某个值就是阳性,反之就是阴性,得到不同的真阳率和假阳率数值,然后描点。就可以得到一条ROC曲线。

需要注意的是,ROC曲线必定起于(0,0),止于(1,1),因为,当全部判断 为阴性时,就是(0,0);全部判断为阳性(+)时就是(1,1)。这两点间斜率为1的线段表示随机分类器。所以一般分类器需要在这条线上方。

方案一:

我们可以对于总体样本中的M个正样本和负样本,组成个pair,如果某个pair正样本score大于负样本,则记1分,反之记0分,先等记0.5分。然后总分初一AUC的值了。复杂度

方案二:

基本思想一样,不过复杂度可以缩减到。

首先,我们将所有样本毒粉从大到小排序,则排名最高的样本rank为M+N,第二的为M+N-1,以此类推。然后我们将所有正样本的rank加和,其思想为:排名k的正样本至多比k-1个负样本的score要大。当我们将正样本的rank加权后,再减去,即正样本的个数,就是正样本scorel比负样本score大的pair个数。在除以就是AUC的值了。

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

TP、True Positive   真阳性:预测为正,实际也为正

FP、False Positive  假阳性:预测为正,实际为负

FN、False Negative 假阴性:预测与负、实际为正

TN、True Negative 真阴性:预测为负、实际也为负

也就是说,预测和实际一致则为真,预测和实际不一致则为假;如果预测出来是“正”的,则为“阳”,预测结果为 “负”,则为“阴”。

先看一个简单的二分类问题。

比如说总共有100个人,其中60个人患有疾病,40个人是健康的。我们的要找出里面的病人,我们一共找出了50个我们认为的病人,其中40个确实是病人,另外10个是健康的。因为我们要找的是“病人”,所以“病人”就是正样本,健康者是负样本。

TP 正阳性:预测为正,实际也为正,也就是预测为病人,实际也是病人的样本数目,一个有40个。

FP 假阳性:预测为正,实际为负。预测为病人,但实际不是病人,有10个。

FN 假阴性:预测为负,实际为正。我们找出了50个我们认为的病人,剩下50个我们认为都是健康的,但事实上剩下的50个人中,有20个是病人。这20个就是假阴性的数目。预测没病,但实际有病。

TN 真阴性:预测为负,实际为负。我们找出了50个我们认为的病人,剩下的50个就是我们预测的负样本,但是这50个样本中,有20个是病人,剩下30个才是负样本,所以真阴性的个数为30。

以一个等级预测为例。

人员

璇璇

晓慧

美君

鱼丸

奶副

菌菇

铁扣

甜甜

梦慧

实际等级

A

A

A

B

B

B

C

C

C

预测等级

A

A

B

B

A

C

C

B

B

为了叙述方便,下文一律把“等级”称呼为“类”。

首先看真阳性TP:预测为正,实际也为正。也就说本来属于哪个类,预测出来还是那个类,就叫真阳性。对于类A而言,实际是A,预测出来还是A的有“璇璇”和“晓慧”,那么类A的真阳性TP的个数为2。对于类B而言,实际是B,预测出来还是B(说成预测出来是B,实际也是B是等效的)的只有“鱼丸”,所以类B的真阳性个数为1。同理对于类C而言,真阳性TP的个数也为1。

接下来看假阳性FP:预测为正,实际为负。就是说你预测她是某个类,但她实际不是,就是假阳性。对于类A而言,假阳性FP的个数为1,就是“奶副”,预测为A,但实际是B。对于类B而言,假阳性FP的个数为3,分别是“美君”,“梦慧”和“甜甜”,预测出来是B,但实际都不是。类C的假阳性FP个数为1,是“菌菇”,预测出来是C,但实际是B。

假阴性FN,预测与负、实际为正。就是预测不是,但是实际是,还是结合前边的表格来看。对于类A而言,假阴性就是预测不是A,但实际是A(注意和假阳性的区别),这样的情况有“美君”,预测为B(负),但实际是A(正)所以类A假阴性的个数为1。类B假阴性的,有“奶副”和“菌菇”,所以为2。同理类C的假阴性个数为2,分别是“甜甜”和“梦慧”。

至于真阴性在多分类中的应用我暂时还没搞明白。不过无碍,毕竟还是用Precision和Recall比较多,而这两个用不到真阴性。

二:精确率(Precision),召回率(Recall),准确率(Accuracy)

准确率(Accuracu):这会儿三个指标里最直观的就是准确率:,模型判断正确的数据(TP+TN)占总数据的比例。

Acc= (TP+TN)/(TP+TN+FP+FN)

召回率(Recall):针对数据集中所有正例(TP+FN)而言,模型正确判断出的整理(TP)占数据集中所有正例的比例。FN表示被模型误认为是负例但实际是正例的数据。召回率也叫查全率,以物体检测为例,我们往往把图片中的物体作为正例,此时召回率高代表着模型可以找出图片中更多的物体。

Recall =(TP)/(TP+FN)

精确率:针对模型判断出的所有整理而言。其中真正例(TP)占的比例。精确率也叫查准率,还是以物体检测为例,准确率高表示模型检测出的物体中大部分是物体,只有少量不是物体的对象被当成物体。

Precision = (TP)/(TP+FP)

区分好召回率和精确率的关键在于:针对的数据不同,召回率针对的是数据集中的所有正例,精确率针对的是模型判断出的所有正例。

每日记录 8.28 TP(真阳率) NP(假阳率) FP相关推荐

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

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

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

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

  3. 真阳率(true positive rate)、假阳率(false positive rate),AUC,ROC

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

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

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

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

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

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

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

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

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

  8. Python混淆矩阵(confusion_matrix)FP、FN、TP、TN、ROC,FROC,精确率(Precision),召回率(Recall),准确率(Accuracy),F1分数详述与实现

    目录 一.FP.FN.TP.TN 二.准确率(Accuracy).精确率(Precision).召回率(Recall).F1score 2.1.准确率(Accuracy) 2.2.召回率(Recall ...

  9. 模型评估——ROC曲线与AUC计算(真正率假正率)

    评估方法: 在学习得到的模型投放使用之前,通常需要对其进行性能 评估.为此, 需使用一个"测试集"(testing set)来测试 模型对新样本的泛化能力,然后以测试集上的&quo ...

最新文章

  1. 小机上监控AIX和数据库管理系统的运行情况直到性能优化(SQL语句优化和排除硬件问题)...
  2. B2B2C多用户商城就等于零售吗?什么是新零售?新零售有哪些特点?
  3. 如何保护 SpringBoot 配置文件中的敏感信息
  4. 20分钟教你手写Sping MVC
  5. boost::shared_ptr相关的测试程序
  6. Ext---CheckBoxGroup的取值和赋值
  7. 为考试而准备1——无线WCDMA 网规精选(04年)
  8. centos7.1 postgresql10+postgis2.5离线安装
  9. Animator 设置动画效果
  10. python如何使用多线程_python实现多线程教程
  11. 干货|软件测试简历的编写以及注意事项
  12. SVN图标丢失解决方法
  13. MySQL InnoDB 锁
  14. 电驴服务器搜索文件排序,电驴怎么连接服务器 电驴eMule怎么搜索文件
  15. Matplotlib之条形图绘制
  16. 一个电商数据分析师的经验总结
  17. C++实验题8 数组使用(bushi)
  18. 图片局部无失真放大的两种方式
  19. 无root卸载预装-adb的简单操作
  20. 微信小程序客服之如何接入多客服

热门文章

  1. 物价压力居高不下 低成本生活抠抠族各显神通
  2. 微信api调用限制:45009 reach max api daily quota limit
  3. iPhone 开发中心 论坛 与 视频
  4. Docker可视化工具
  5. 怎样才能做好一个优秀的FAE ?
  6. 【Nav2中文网】一、入门
  7. ChatGPT中文网
  8. matlab带延迟环节的单位阶跃响应,典型环节的单位阶跃响应.doc
  9. redis HyperLogLog原理
  10. socket中的read()