深度解析roc曲线、AUC与排序损失

简介: 深度解析roc曲线、AUC与排序损失

1、ROC曲线

ROC全称受试者工作特征,是用来研究学习器泛化性能的有力工具。ROC曲线横轴是假正利率FPR,纵轴是TPR,曲线的绘制过程是:根据学习器的预测结果对样例进行排序,按此顺序逐个把样例作为正例进行预测,计算出TPR和FPR,绘制ROC图。


  • ROC VS P-R


ROC PR
适用情况 测试样本正负分布均匀 测试样本正负分布不均匀(有明显差别)
对样本分布的敏感程度 不敏感 敏感
优点 能够衡量一个模型本身的预测能力 能够看出学习器随样本比例的变化的效果

「注」:先观察ROC曲线再观察PR曲线决定学习器的效果


2、AUC=1- rank


ROC曲线绘制实例


已知一个学习器有以下预测结果:

s1,0.77,+ s2,0.62,- s3,0.58,+ s4,0.47,+
s5,0.47,- s6,0.33,- s7,0.23,+ s8,0.15,-


ROC曲线横轴为image.png,纵轴为 image.pngTPR=TP+FNTP,横轴纵轴的分母都是定值,分别为m_(反例个数),m+(正例个数),根据ROC的绘制过程可以看出每新增一个正例,ROC曲线水平上升一个单位,每新增一个反例,ROC曲线水平向右增加一个单位。最特殊的是上面例子中选定0.47作为正例阈值时,正例和反例各增加了一个,因此线段斜向上倾斜。


绘制过程如上图所示。


  • 证明AUC=1-  rank


现在已知排序损失定义为:

image.png

试证明:AUC=1- rank,也就是说明上述式子的含义是曲线上方的面积。

证明:

image.png

  • 上面式子第一项解释:

针对每个被选入当作正例的正点,在它被选入之前,那些预测值大于它的反点已被选入正例,也就是ROC曲线上已经向右平移 image.png 个单位,再乘于高 image.png便得到每条绿色线段左边矩形的面积。


  • 上面式子第二项解释:


针对每个被选入当作正例的正点,当它选入时,可能会有一些反点和它预测值相同而被当作正例看待,因此ROC曲线上会同时向上、向右分别平移1个单位image.png单位,因此整体线段会斜向上延伸,如上图蓝色线段所示,多的三角形面积计算公式便为:image.png

因此:image.png


「参考」:

  1. https://www.jianshu.com/p/9d70c26b73a2
  2. https://github.com/datawhalechina/pumpkin-book


目录
相关文章
|
18天前
|
NoSQL MongoDB Python
深入了解 Python MongoDB 操作:排序、删除、更新、结果限制全面解析
使用 sort() 方法对结果进行升序或降序排序。 sort() 方法接受一个参数用于“字段名”,一个参数用于“方向”(升序是默认方向)。
76 0
|
7月前
各种基础排序的超详细解析及比较
各种基础排序的超详细解析及比较
24 0
|
18天前
|
存储 Java
Java TreeMap:基于红黑树的排序映射解析
Java TreeMap:基于红黑树的排序映射解析
|
18天前
|
安全 Java
Java TreeSet:基于红黑树的排序集合解析
Java TreeSet:基于红黑树的排序集合解析
|
18天前
|
算法 Java
②【Java 组】蓝桥杯省赛真题解析 [振兴中华] [三部排序] 持续更新中...
②【Java 组】蓝桥杯省赛真题解析 [振兴中华] [三部排序] 持续更新中...
27 0
|
18天前
|
算法 搜索推荐
☆打卡算法☆LeetCode 148. 排序链表 算法解析
☆打卡算法☆LeetCode 148. 排序链表 算法解析
|
7月前
|
Python
DataFrame排序和排名案例解析
DataFrame排序和排名案例解析
|
算法 搜索推荐
分治法实现合并排序(归并排序),理解分治算法思想,实现分治算法的完美例子合并排序(含码源与解析)
分治法实现合并排序(归并排序),理解分治算法思想,实现分治算法的完美例子合并排序(含码源与解析)
116 0
|
8月前
|
搜索推荐 C++
深入解析 qsort 排序(上),它为什么是万能排序?
深入解析 qsort 排序(上),它为什么是万能排序?
50 0
|
12月前
|
Java
【JAVA数据结构】Java排序(七大排序 + 动图代码解析)
排序有很多种,一般以主流升序或者降序为主(不包含特殊的排序序列)【这里讲解都是升序且是整形,其他类型以此类推,改个符号和比较方法就好】
192 1

推荐镜像

更多