2017-07-10 14:38:24

理论参考:

评估分类器性能的度量,像混淆矩阵、ROC、AUC等

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计算 - 手把手步进操作的更多相关文章

  1. AUC计算 - 进阶操作

    首先AUC值是一个概率值,当你随机挑选一个正样本以及负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值,AUC值越大,当前分类算法越有可能将正样本排在负样本前 ...

  2. ROC 曲线,以及AUC计算方式

    ROC曲线: roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性. ROC曲线的横轴: 负正类率(false ...

  3. tensorflow添加自定义的auc计算operator

    tensorflow可以很方便的添加用户自定义的operator(如果不添加也可以采用sklearn的auc计算函数或者自己写一个 但是会在python执行,这里希望在graph中也就是c++端执行这 ...

  4. Storm实时计算:流操作入门编程实践

    转自:http://shiyanjun.cn/archives/977.html Storm实时计算:流操作入门编程实践   Storm是一个分布式是实时计算系统,它设计了一种对流和计算的抽象,概念比 ...

  5. openstack中彻底删除计算节点的操作记录

    在使用openstack的过程中,我们经常会添加好几台计算节点来部署虚拟机,在后续使用中由于某些原因,一些计算节点出现了问题,需要将这些出了问题的计算节点从openstack的控制节点中踢出去!但是很 ...

  6. 主表当中明细表字段的金额计算问题,操作控件是在gridview+aspnetPage

    做这个例子,主要是我在工作当中遇到一个主表的明细表的操作计算问题,也用了不少时间.操作计算的方式是这样的. 这个功能是在.net语言当中实现,操作过程当点击添加行,添加第一行时,当我输入金额的时候,累 ...

  7. C 语言函数手册:涵盖字符测试、字符串操作、内存管理、时间换算、数学计算、文件操作、进程管理、文件权限控制、信号处理、接口处理、环境变量、终端控制

    1. 字符测试函数 函数 说明 isascii() 判断字符是否为ASCII码字符 2. 字符串操作 函数 说明 gcvt() 将浮点型数转换为字符串(四舍五入) index() 查找字符串并返回首次 ...

  8. python练习题--计算总分平均分操作excel

    ''' 有一个存着学生成绩的文件,里面存的是json串,json串读起来特别不直观,需要你写代码把它都写到excel中,并计算出总分和平均分,json格式如下 { "1":[&qu ...

  9. Mean Average Precision(mAP),Precision,Recall,Accuracy,F1_score,PR曲线、ROC曲线,AUC值,决定系数R^2 的含义与计算

    背景   之前在研究Object Detection的时候,只是知道Precision这个指标,但是mAP(mean Average Precision)具体是如何计算的,暂时还不知道.最近做OD的任 ...

随机推荐

  1. C# Task的GetAwaiter和ConfigureAwait

    个人感觉Task 的GetAwaiter和ConfigureAwait也是比较好理解的,首先看看他们的实现 public class Task<TResult> : Task { //Ge ...

  2. C# ExecutionContext 实现

    网上关于ExecutionContext的说明比较少,我们来看看微软的描述吧,   名称 说明 Capture() 捕获从当前线程的执行上下文. CreateCopy() 创建当前执行上下文的副本. ...

  3. 版本控制:tortoise svn的 revert to this revision和 revert changes from this revision有什么区别?

    问题: The link: http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-howto-rollback.html describes ...

  4. java-算法-排列组合

    package com.qinghuainvest.utils.algorithm; import java.util.ArrayList; import java.util.Arrays; impo ...

  5. TRAC-IK机器人运动学求解器

    TRAC-IK和Orocos KDL类似,也是一种基于数值解的机器人运动学求解器,但是在算法层面上进行了很多改进(Specifically, KDL’s convergence algorithms ...

  6. mongodb连接配置实践

    之前百度,google了很多,发现并没有介绍mongodb生产环境如何配置的文章, 当时想参考下都不行, 所以写篇文章,大家可以一块讨论下. 1. MongoClientOptions中的连接池配置: ...

  7. Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)

    Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer   Advanced Installer :Free for 30 da ...

  8. 深入理解JDBC的超时设置

    恰当的JDBC超时设置能够有效地减少服务失效的时间.本文将对数据库的各种超时设置及其设置方法做介绍. 真实案例:应用服务器在遭到DDos攻击后无法响应 在遭到DDos攻击后,整个服务都垮掉了.由于第四 ...

  9. Generate google sitemap xml

    方式一. XNamespace xNamespace = "http://www.sitemaps.org/schemas/sitemap/0.9"; XNamespace xht ...

  10. .net Core Abp See config settings - "CustomSchemaIds" for a workaround

    Swagger  See config settings - "CustomSchemaIds" for a workaround System.InvalidOperationE ...