AUC计算 - 手把手步进操作
2017-07-10 14:38:24
理论参考:
http://www.cnblogs.com/suanec/p/5941630.html
ROC全称:receiver operation characters,适用于二分类。
同理可得由ROC曲线计算的AUC,适用于二分类。
计算AUC需要知道这个表格:
| 实际正样本 | 实际负样本 | |
| 预测正样本 | 正样本正确数 | 正样本错误数 |
| 预测负样本 | 负样本错误数 | 负样本正确数 |
其中实际正样本常被成为Positive,实际负样本常被成为Negative。
对应的表格中数据分别为True Positive、False Positive、True Negative、False Negative。
对应的概率Rate,分别为TPR、FPR、TNR、FNR。
其中TPR=TP/P、FPR=FP/N,绘制ROC,主要使用TPR和FPR。
使用网上的例子:
模型预测情况与实际类标情况:

由以上绘制的ROC曲线及各点取值。

当阈值自高向低取,分别为0.9、0.8、0.7、0.6、0.55。
0.9:TPR:0.1,FPR:0
0.8:TPR:0.2,FPR:0
0.7:TPR:0.2,FPR:0.1
0.6:TPR:0.3,FPR:0.1
0.55:TPR:0.4,FPR:0.1
按照取值绘制ROC图线,计算图线下面积即可得AUC。
其中:以0.7举例TRP和FPR如何统计:
当阈值为0.7时,可得模型将1、2、3样本分为了正样本,其他为负样本。
1、2、3中正样本正确了两个。
TPR:正样本正确率为正样本正确数目/所有正样本数目:2/10=0.2。
FPR:正样本错误率为正样本错误数目/所有负样本数目:1/10=0.1。
那么在0.7为阈值可以绘制ROC曲线点:(0.1,0.2)。
以此类推。绘制多个阈值下的ROC曲线点,可得ROC曲线的近似值。(因为阈值取值数量有限,故ROC为近似值)
计算AUC:
因为ROC曲线近似,可以利用矩阵面积加和得到面积和。(计算AUC面积和,就可以按个人喜好计算了,spark mllib中的AUC是按坐标取值计算连线形成梯形的面积加和。个人感觉按纵轴计算矩阵面积实现更容易一些,但精度有损失。)
当ROC为精确时,需要积分。仅存于理论层面。
AUC计算 - 手把手步进操作的更多相关文章
- AUC计算 - 进阶操作
首先AUC值是一个概率值,当你随机挑选一个正样本以及负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值,AUC值越大,当前分类算法越有可能将正样本排在负样本前 ...
- ROC 曲线,以及AUC计算方式
ROC曲线: roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性. ROC曲线的横轴: 负正类率(false ...
- tensorflow添加自定义的auc计算operator
tensorflow可以很方便的添加用户自定义的operator(如果不添加也可以采用sklearn的auc计算函数或者自己写一个 但是会在python执行,这里希望在graph中也就是c++端执行这 ...
- Storm实时计算:流操作入门编程实践
转自:http://shiyanjun.cn/archives/977.html Storm实时计算:流操作入门编程实践 Storm是一个分布式是实时计算系统,它设计了一种对流和计算的抽象,概念比 ...
- openstack中彻底删除计算节点的操作记录
在使用openstack的过程中,我们经常会添加好几台计算节点来部署虚拟机,在后续使用中由于某些原因,一些计算节点出现了问题,需要将这些出了问题的计算节点从openstack的控制节点中踢出去!但是很 ...
- 主表当中明细表字段的金额计算问题,操作控件是在gridview+aspnetPage
做这个例子,主要是我在工作当中遇到一个主表的明细表的操作计算问题,也用了不少时间.操作计算的方式是这样的. 这个功能是在.net语言当中实现,操作过程当点击添加行,添加第一行时,当我输入金额的时候,累 ...
- C 语言函数手册:涵盖字符测试、字符串操作、内存管理、时间换算、数学计算、文件操作、进程管理、文件权限控制、信号处理、接口处理、环境变量、终端控制
1. 字符测试函数 函数 说明 isascii() 判断字符是否为ASCII码字符 2. 字符串操作 函数 说明 gcvt() 将浮点型数转换为字符串(四舍五入) index() 查找字符串并返回首次 ...
- python练习题--计算总分平均分操作excel
''' 有一个存着学生成绩的文件,里面存的是json串,json串读起来特别不直观,需要你写代码把它都写到excel中,并计算出总分和平均分,json格式如下 { "1":[&qu ...
- Mean Average Precision(mAP),Precision,Recall,Accuracy,F1_score,PR曲线、ROC曲线,AUC值,决定系数R^2 的含义与计算
背景 之前在研究Object Detection的时候,只是知道Precision这个指标,但是mAP(mean Average Precision)具体是如何计算的,暂时还不知道.最近做OD的任 ...
随机推荐
- CentOS7 使用yum命令安装Java SDK(openjdk)
CentOS 6.X 和 7.X 自带有OpenJDK runtime environment (openjdk).它是一个在linux上实现开源的java 平台. 安装方式: 1.输入以下命令,以 ...
- [Java] zjdbcping:JDBC数据库连接测试工具
作者: zyl910 一.缘由 当数据库服务器很多时,或者要与第三方公司做数据库表交换时,此时觉得若有一个简单快捷的数据库连接测试工具就好了. 因为若是采取直接把程序部署到tomcat等容器再测试的办 ...
- linux随机数生成
随机数多应用在密码的随机生成 #随机数生成 $RANDOM (1-32767) 11.内部系统变量($RANDOM) 1-32767 22. awk 'BEGIN{srand();print rand ...
- vue改变了数据却没有自动刷新
有两个按钮,按钮上有个number属性,当此值为偶数时,按钮显示为红色. 最初的数据如下:"a": [{ name: "one" },{ name: " ...
- CoreGraphics之CGContextSaveGState与UIGraphicsPushContext
转至:https://www.jianshu.com/p/be38212c0f79 CoreGraphics与UIKit 这边从iOS绘图教程 提取一些重要的内容. Core Graphics Fra ...
- ELK 6.X 版本下xpack破解
ELK 6.2.2 版本下xpack破解 1.下载xpack 先下载最新版本的 x-pack,里面包含了 es,kibana,logstash 新版本的x-pack 下载地址:https://arti ...
- go-ehtereum编译:
git clone https://github.com/ethereum/go-ethereum.git cd go-ethereum && git checkout make ge ...
- AYUI第12个作品-英雄联盟-魔法少女的星光水晶2.0-WPF版本
一下 内容基于AYUI6.7制作,主要3个大控件,1个 轮播预览,一个抽奖展示,一个是自己的抽中的历史展示,还有礼品领取,图片变成黑白的滤镜,滚动条网页方式布局 历时4天,制作效果如下: 由于自己爬了 ...
- top 命令
首先介绍top中一些字段的含义: VIRT:virtual memory usage 虚拟内存1.进程"需要的"虚拟内存大小,包括进程使用的库.代码.数据等 2.假如进程申请100 ...
- Java多线程:CountDownLatch、CyclicBarrier 和 Semaphore
场景描述: 多线程设计过程中,经常会遇到需要等待其它线程结束以后再做其他事情的情况. 有几种方案: 1.在主线程中设置一自定义全局计数标志,在工作线程完成时,计数减1.主线程侦测该标志是否为0,一 ...