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的任 ...
随机推荐
- java-算法-排列组合
package com.qinghuainvest.utils.algorithm; import java.util.ArrayList; import java.util.Arrays; impo ...
- Django根据现有数据库建立/更新model
Django引入外部数据库还是比较方便的,步骤如下: 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自动 ...
- SQL Server里如何处理死锁
在今天的文章里,我想谈下SQL Server里如何处理死锁.当2个查询彼此等待时会发生死锁,没有一个查询可以继续它们的操作.首先我想给你大致讲下SQL Server如何处理死锁.最后我会展示下SQL ...
- 对于 url encode decode js 和 c# 有差异
在js对一个值进行解码使用:decodeURIComponent,编码使用:encodeURIComponent
- android4.2 telephone应用层分析
InCallScreen.java 复制通话界面的显示和提供人机交互的接口.进入该界面第一个调用ONCreate.否则进入OnNewIntent,该配置文件是incall_screen.xml,当中i ...
- Windows Server 2008 IIS安装FTP及端口配置
添加角色IIS,选择上FTP服务 打开IIS,右击网站,添加FTP站点 允许访问的指定用户,必须是Windows系统真实存在的用户,为了安全起见,此用户只赋予user组即可,不能赋予远程桌面权限 如果 ...
- RapidJson 的使用
rapidjson为了最大化性能,大量使用了浅拷贝,使用之前一定要了解清楚.如果采用了浅拷贝,特别要注意局部对象的使用,以防止对象已被析构了,却还在被使用. rapidjson使用注意点: 1.对不存 ...
- 【OCR技术系列之八】端到端不定长文本识别CRNN代码实现
CRNN是OCR领域非常经典且被广泛使用的识别算法,其理论基础可以参考我上一篇文章,本文将着重讲解CRNN代码实现过程以及识别效果. 数据处理 利用图像处理技术我们手工大批量生成文字图像,一共360万 ...
- git忽略.idan目录
git rm -r --cached .idea git add . git commit -m '忽略idea' git pull git push
- 【C#】读取Excel中嵌套的Json对象,Json带斜杠的问题(其二)
上一篇说到的嵌套Json带有斜杠的问题,如下图: 上一篇中用反射C#类的方法,在序列化Json阶段实现了去掉斜杠,现在还有一种相对更简单的方法,就是在反序列化阶段,读取Json时通过字符串的操作,把这 ...