逻辑回归之ROC曲线的绘制

关于ROC曲线的绘制过程,通过以下举例进行说明

假设有6次展示记录,有两次被点击了,得到一个展示序列(1:1,2:0,3:1,4:0,5:0,6:0),前面的表示序号,后面的表示点击(1)或没有点击(0)。

然后在这6次展示的时候都通过model算出了点击的概率序列。

下面看三种情况。

1 曲线绘制

1.1 如果概率的序列是(1:0.9,2:0.7,3:0.8,4:0.6,5:0.5,6:0.4)。[比如以0.75进行分割]

与原来的序列一起,得到序列(从概率从高到低排)

1 1 0 0 0 0
0.9  [90%的概率被点击]  原序号1 0.8    原序号3 0.7 [70%的概率不被点击]   原序号2 0.6   原序号4 0.5   原序号5 0.4   原序号6

绘制的步骤是:

1)把概率序列从高到低排序,得到顺序(1:0.9,3:0.8,2:0.7,4:0.6,5:0.5,6:0.4);

2)从概率最大开始取一个点作为正类,取到点1,计算得到TPR=0.5,FPR=0.0;

3)从概率最大开始,再取一个点作为正类,取到点3,计算得到TPR=1.0,FPR=0.0;

4)再从最大开始取一个点作为正类,取到点2,计算得到TPR=1.0,FPR=0.25;

5)以此类推,得到6对TPR和FPR。

然后把这6对数据组成6个点(0,0.5),(0,1.0),(0.25,1),(0.5,1),(0.75,1),(1.0,1.0)   [FPR, TPR]。

这6个点在二维坐标系中能绘出来。

[效果最好]

看看图中,那个就是ROC曲线。

1.2 如果概率的序列是(1:0.9,2:0.8,3:0.7,4:0.6,5:0.5,6:0.4)

与原来的序列一起,得到序列(从概率从高到低排)

1 0 1 0 0 0
0.9 0.8 0.7 0.6 0.5 0.4

绘制的步骤是:

6)把概率序列从高到低排序,得到顺序(1:0.9,2:0.8,3:0.7,4:0.6,5:0.5,6:0.4);

7)从概率最大开始取一个点作为正类,取到点1,计算得到TPR=0.5,FPR=0.0;

8)从概率最大开始,再取一个点作为正类,取到点2,计算得到TPR=0.5,FPR=0.25;

9)再从最大开始取一个点作为正类,取到点3,计算得到TPR=1.0,FPR=0.25;

10)以此类推,得到6对TPR和FPR。

然后把这6对数据组成6个点(0,0.5),(0.25,0.5),(0.25,1),(0.5,1),(0.75,1),(1.0,1.0)。

这6个点在二维坐标系中能绘出来。

[有个别错的点]

看看图中,那个就是ROC曲线。

1.3 如果概率的序列是(1:0.4,2:0.6,3:0.5,4:0.7,5:0.8,6:0.9)

与原来的序列一起,得到序列(从概率从高到低排)

0 0 0 0 1 1
0.9 0.8 0.7 0.6 0.5 0.4

绘制的步骤是:

11)把概率序列从高到低排序,得到顺序(6:0.9,5:0.8,4:0.7,2:0.6,3:0.5,1:0.4);

12)从概率最大开始取一个点作为正类,取到点6,计算得到TPR=0.0,FPR=0.25;

13)从概率最大开始,再取一个点作为正类,取到点5,计算得到TPR=0.0,FPR=0.5;

14)再从最大开始取一个点作为正类,取到点4,计算得到TPR=0.0,FPR=0.75;

15)以此类推,得到6对TPR和FPR。

然后把这6对数据组成6个点(0.25,0.0),(0.5,0.0),(0.75,0.0),(1.0,0.0),(1.0,0.5),(1.0,1.0)。

这6个点在二维坐标系中能绘出来。

[得到了相反的结果,效果最差,完全相反]

看看图中,那个就是ROC曲线。

2 意义解释

如上图的例子,总共6个点,2个正样本,4个负样本,取一个正样本和一个负样本的情况总共有8种。

上面的第一种情况,从上往下取,无论怎么取,正样本的概率总在负样本之上,所以分对的概率为1,AUC=1。再看那个ROC曲线,它的积分是什么?也是1,ROC曲线的积分与AUC相等。

上面第二种情况,如果取到了样本2和3,那就分错了,其他情况都分对了;所以分对的概率是0.875,AUC=0.875。再看那个ROC曲线,它的积分也是0.875,ROC曲线的积分与AUC相等。

上面的第三种情况,无论怎么取,都是分错的,所以分对的概率是0,AUC=0.0。再看ROC曲线,它的积分也是0.0,ROC曲线的积分与AUC相等。

很牛吧,其实AUC的意思是——Area Under roc Curve,就是ROC曲线的积分,也是ROC曲线下面的面积。

绘制ROC曲线的意义很明显,不断地把可能分错的情况扣除掉,从概率最高往下取的点,每有一个是负样本,就会导致分错排在它下面的所有正样本,所以要把它下面的正样本数扣除掉(1-TPR,剩下的正样本的比例)。总的ROC曲线绘制出来了,AUC就定了,分对的概率也能求出来了。

逻辑回归之ROC曲线的绘制相关推荐

  1. sklearn 绘制roc曲线_sklearn——逻辑回归、ROC曲线与KS曲线

    一.sklearn中逻辑回归的相关类 在sklearn的逻辑回归中,主要用LogisticRegression和LogisticRegressionCV两个类来构建模型,两者的区别仅在于交叉验证与正则 ...

  2. python ks曲线_sklearn——逻辑回归、ROC曲线与KS曲线

    一.sklearn中逻辑回归的相关类 在sklearn的逻辑回归中,主要用LogisticRegression和LogisticRegressionCV两个类来构建模型,两者的区别仅在于交叉验证与正则 ...

  3. 多分类RandomForest回归及ROC曲线绘制

    使用multiROC包可实现多分类ROC曲线的绘制 require(multiROC) data(iris) head(iris)set.seed(123456) total_number <- ...

  4. 影像组学视频学习笔记(15)-ROC曲线及其绘制、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(15)主要介绍: ROC曲线及其绘制 ROC 曲线 ROC = receiver operating characteristic cu ...

  5. 转载——逻辑回归的袅娜曲线,你是否会过目难忘?

    在上一集<你在,或者不在,需要逻辑回归来算>里,我们初次认识了一种新的统计学方法--逻辑回归.和线性回归相比,逻辑回归能帮助我们应对一种新的情况:因变量是二元变量(通常表现为是/否,数值上 ...

  6. R语言实战 input+结果——ROC曲线的绘制 auc 时量下曲线面积

    1.数据处理 第一步当然得处理一下数据.默认的Iris数据集有三类鸢尾花,我目前的理解是只有二分类才画的出ROC曲线,所以才去一定的手段处理一下数据: 输入 # 数据准备 iris2 <- ir ...

  7. Sklearn机器学习——ROC曲线、ROC曲线的绘制和AUC面积、运用ROC曲线找到最佳阈值

    目录 1 ROC曲线 2 ROC曲线的绘制 2.1 Sklearn中的ROC曲线和AUC面积 2.2 利用ROC曲线找到最佳阈值 1 ROC曲线 上篇博客介绍了ROC曲线的概率和阈值还有SVM实现概率 ...

  8. stata绘制roc曲线_绘制ROC曲线、找截断值,教你两种软件操作方法!

    我们在前面学习过用SPSS(SPSS操作:多项测量指标的ROC曲线分析)和Stata (Stata教程:ROC曲线下面积的比较)绘制ROC曲线.但是,最佳临界点--截断值(cut-off point) ...

  9. roc曲线怎么绘制_ROC曲线和PR曲线

    在机器学习中,ROC曲线被广泛应用于二分类问题中来评估分类器的可信度,当处理一些高度不均衡的数据集时,PR曲线能表现出更多的信息. 在二分类问题中,分类器将一个实例的分类标记为正例还是负例,这可以用一 ...

  10. Matlab机器学习(分类问题)中多个ROC曲线的绘制

    该教程适用于2017版本以后的matlab,老版本可能会有差异. step1打开机器学习分类工具箱,导入数据选择"全部模型"进行训练:训练结果如图所示: step2 寻找准确度较高 ...

最新文章

  1. z-index 用法
  2. springboot+mybatis+sqlserver导出数据库数据并实现下载到excel
  3. UVALive - 7163
  4. Redis 面试题 50 问,史上最全
  5. mdadm,用命令做RAID
  6. 2014025689《嵌入式程序设计》第一周学习总结
  7. BetterAndBetter(BAB)的使用详解
  8. oracle 内存分析工具,IDE 中的分析工具
  9. I/0口输入输出实验 流水灯程序 P0、P1、P2、P3口作为输出口,连接八只发光二极管,编写程序,使发光二极管从左至右循环点亮。
  10. docs和src_《编写Docs波特兰2017》中的提示和顶级演示
  11. java 货架高度摆放最优算法_商铺内部空间摆放竟暗藏玄机
  12. powershell 安装mvn_Maven 安装好之后,命令行执行 `mvn -v` 提示“'mvn' 不是内部或外部命令,也不是可运行的程序 或批处理文件。”...
  13. 如何进行大数据分析与处理
  14. json对象与json字符串互转方法
  15. mac电脑利用file和iconv命令修改文件编码
  16. 复现IIS6.0PUT任意上传漏洞
  17. react18新特性
  18. handsome对应php文件,基于handsome主题的一些美化总结
  19. 验证码的java实现
  20. 世界上最具价值的10家公司!

热门文章

  1. 【Python项目】Python利用神经网络自动生成的“藏头诗”生成器 | 附带源码
  2. Cximage 库使用,直接读取图像数据到内存。
  3. 算法与数据结构面试题(6)-腾讯面试题
  4. 如何写软件的需求和设计文档
  5. Go语言实现md4、md5、sha256哈希算法加密
  6. svn服务端可视化界面
  7. 发票上的计算机字体,发票代码和发票号码是什么字体
  8. 【C++】字体文件解析(FreeType)
  9. 如何看旷视南京负责人魏秀参跳槽高校工作?
  10. 毕业设计管理系统(JAVA毕业设计)