1. 分类器评估指标

对于二分类问题,可将样例根据其真实类别和分类器预测类别划分为:
真正例(True Positive,TP):真实类别为正例,预测类别为正例。
假正例(False Positive,FP):真实类别为负例,预测类别为正例。
假负例(False Negative,FN):真实类别为正例,预测类别为负例。
真负例(True Negative,TN):真实类别为负例,预测类别为负例。

2. 精确度,召回率,真阳性,假阳性

精确度( precision ):TP / ( TP+FP ) = TP / P

召回率(recall):TP / (TP + FN ) = TP / T

真阳性率(True positive rate):TPR = TP / ( TP+FN ) = TP / T  (敏感性 sensitivity)

假阳性率(False positive rate):FPR = FP / ( FP + TN ) = FP / F  (特异性:specificity)

准确率(Accuracy):Acc = ( TP + TN ) / ( P +N )

F-measure:2*recall*precision / ( recall + precision )

ROC曲线:FPR为横坐标,TPR为纵坐标

PR曲线:recall为横坐标,precision 为纵坐标

3. ROC图

  • 纵坐标是true positive rate(TPR)  = TP / (TP+FN=P) (分母是横行的合计)直观解释:实际是1中,猜对多少
  • 横坐标是false positive rate(FPR) = FP / (FP+TN=N)  直观解释:实际是0中,错猜多少

4. AUC

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

随着FPR的上升,ROC曲线从原点(0, 0)出发,最终都会落到(1, 1)点。ROC便是其右下方的曲线面积。下图展现了三种AUC的值:

AUC = 1,是完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器。

0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。

AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。

AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测,因此不存在AUC < 0.5的情况

AUC对于每一个做机器学习的人来说一定不陌生,它是衡量二分类模型优劣的一种评价指标,表示正例排在负例前面的概率。其他评价指标有精确度、准确率、召回率,而AUC比这三者更为常用。因为一般在分类模型中,预测结果都是以概率的形式表现,如果要计算准确率,通常都会手动设置一个阈值来将对应的概率转化成类别,这个阈值也就很大程度上影响了模型准确率的计算。

我们不妨举一个极端的例子:一个二类分类问题一共10个样本,其中9个样本为正例,1个样本为负例,在全部判正的情况下准确率将高达90%,而这并不是我们希望的结果,尤其是在这个负例样本得分还是最高的情况下,模型的性能本应极差,从准确率上看却适得其反。而AUC能很好描述模型整体性能的高低。这种情况下,模型的AUC值将等于0(当然,通过取反可以解决小于50%的情况,不过这是另一回事了)。

机器学习ROC图解读的更多相关文章

  1. 图机器学习(GML)&图神经网络(GNN)原理和代码实现(前置学习系列二)

    项目链接:https://aistudio.baidu.com/aistudio/projectdetail/4990947?contributionType=1 欢迎fork欢迎三连!文章篇幅有限, ...

  2. 两张图解读Java异常与断言

    两张图解读Java异常与断言                                 --转载请注明出处:coder-pig 本节引言: 前天公布的"七张图解析Java多线程&quo ...

  3. Agile1001社区10月份活动:一张图解读企业级产品思维

    活动信息 主题:一张图解读企业级产品思维 地点:北京市海淀区苏州街3号大恒科技大厦南座4层 时间: 2017-10-15 14:00 - 17:00 报名链接:http://www.hdb.com/p ...

  4. (转)Linux 系统性能分析工具图解读(一、二)

    Linux 系统性能分析工具图解读(一.二) 原文:http://oilbeater.com/linux/2014/09/08/linux-performance-tools.html 最近看了 Br ...

  5. scikit-learn画ROC图

    1.使用sklearn库和matplotlib.pyplot库 import sklearn import matplotlib.pyplot as plt 2.准备绘图函数的传入参数1.预测的概率值 ...

  6. Java之24种设计模式-UML-模型图解读

    Design Patterns 策略模式: 观察者模式: 经典单例模式: private static class AuthenticationHolder { private static fina ...

  7. Dlib机器学习指南图翻译

    原图地址 http://dlib.net/ml_guide.svg 翻译的文件 http://files.cnblogs.com/files/oloroso/ml_guide.zip

  8. UML系列,使用UML实现GOF Design patterns,常用模式类图解读

    1.单例:Singleton, DirectedAssociation

  9. 模型监控指标- 混淆矩阵、ROC曲线,AUC值,KS曲线以及KS值、PSI值,Lift图,Gain图,KT值,迁移矩阵

    1. 混淆矩阵 确定截断点后,评价学习器性能 假设训练之初以及预测后,一个样本是正例还是反例是已经确定的,这个时候,样本应该有两个类别值,一个是真实的0/1,一个是预测的0/1 TP(实际为正预测为正 ...

随机推荐

  1. 使用distinct消除重复记录的同时又能选取多个字段值

    需求是:我要消除name字段值重复的记录,同时又要得到id字段的值,其中id是自增字段. select distinct name from t1 能消除重复记录,但只能取一个字段,现在要同时取id, ...

  2. [HDU]P2586 How far away?[LCA]

    [HDU]P2586 How far away ? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...

  3. Internet History, Technology, and Security(week2)——History: The First Internet - NSFNet

    前言: 上周学习了<电子计算机的曙光>,对战时及战后的计算机的历史发展有了更丰富的了解,今天继续coursera的课程,感觉已经有点适应了课程的节奏(除了经常有些奇奇怪怪的词汇看都看不懂@ ...

  4. ORACLE Physical Standby DG 之fail over

    SQL> select thread#, low_sequence#, high_sequence# from v$archive_gap;确认下是否存在日志间隙,发现gap现象,说明failo ...

  5. EXISTS 和 IN 的查询效率问题

    mysql使用总结: 一:EXISTS 和 IN 的查询效率问题 1:当a表的数据小于b表中的数据时 用 IN 的效率是要小于用 EXISTS 的效率 SELECT * FROM a WHERE id ...

  6. CMD模块打包部署总结

    目前线上系统利用Seajs做模板化,但是没有对js和css进行打包,在这次简历搜索优化项目里我尝试对gulp插件对Seajs模块打包. 安装gulp和相关插件 npm install -g gulp ...

  7. (转)IDataGridViewEditingControl 接口 作用

    本文转载自:http://blog.csdn.net/zx13525079024/article/details/4814575 IDataGridViewEditingControl 接口 定义承载 ...

  8. GMSSL中生成SM2或RSA1024或RSA2048的证书相关命令

    1.生成KEY:gmssl sm2 -genkey -out 01.root.pemgmssl genrsa -out 01.root_plain.key 2048gmssl genrsa -out ...

  9. node+express 发送get请求

    var express = require('express') , app = express(); var querystring = require('querystring'); var ut ...

  10. Android.应用软件.常用程序下载地址_20190913

    1. 1.1. 健康友行 微信 官网 https://weixin.qq.com/ 抖音 chrome 百度网盘(账号:osskill)中有 1.2. 支付宝 官网 https://mobile.al ...