pr曲线 roc曲线_roc曲线与auc的含义

pr曲线 roc曲线_roc曲线与auc的含义评价指标系列PR曲线查准率和查全率PR曲线绘制ROC曲线TPR,FPR插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入PR曲线AUC就是衡量学习器优劣的一种性能指标。从定义可知,AUC可通过对ROC曲线下各部分的面积求和而得。查准率和查全率查准率,表示所有被预测为正类的样本(TP+F

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

PR曲线

混淆矩阵

预测 \真实 P N
P TP FP
N FN TN

查准率和查全率

查准率,表示所有被预测为正类的样本(TP+FP)是真正类(TP)的比例:
P = T P T P + F P P= \frac{TP}{TP+FP} P=TP+FPTP
查全率,表示所有真正类的样本(TP+FN)中被预测为真正类(TP)的比例:
R = T P T P + F N R= \frac{TP}{TP+FN} R=TP+FNTP

PR曲线绘制

PR曲线的横坐标为召回率R,纵坐标为查准率P

  1. 将预测结果按照预测为正类概率值排序
  2. 将阈值由1开始逐渐降低,按此顺序逐个把样本作为正例进行预测,每次可以计算出当前的P,R值
  3. 以P为纵坐标,R为横坐标绘制图像

图片名称

如何利用PR曲线对比性能:

  1. 如果一条曲线完全“包住”另一条曲线,则前者性能优于另一条曲线。
  2. PR曲线发生了交叉时:以PR曲线下的面积作为衡量指标,但这个指标通常难以计算
  3. 使用 “平衡点”(Break-Even Point),他是查准率=查全率时的取值,值越大代表效果越优
  4. BEP过于简化,更常用的是F1度量:
    F 1 = 2 ∗ P ∗ R P + R = 2 ∗ T P 样 本 总 数 + T P − T N F1= \frac{2*P*R}{P+R}=\frac{2*TP}{样本总数+TP-TN} F1=P+R2PR=+TPTN2TP

ROC曲线

AUC就是衡量学习器优劣的一种性能指标。从定义可知,AUC可通过对ROC曲线下各部分的面积求和而得。

TPR和FPR

真阳性率: T P R = T P T P + F N TPR= \frac{TP}{TP+FN} TPR=TP+FNTP
假阳性率: F P R = F P F P + T N FPR= \frac{FP}{FP+TN} FPR=FP+TNFP

ROC曲线绘制

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

  1. 将预测结果按照预测为正类概率值排序
  2. 将阈值由1开始逐渐降低,按此顺序逐个把样本作为正例进行预测,每次可以计算出当前的FPR,TPR值
  3. 以TPR为纵坐标,FPR为横坐标绘制图像

图片名称

如何利用ROC曲线对比性能:
ROC曲线下的面积(AUC)作为衡量指标,面积越大,性能越好

AUC的计算

AUC就是衡量学习器优劣的一种性能指标。从定义可知,AUC可通过对ROC曲线下各部分的面积求和而得。 AUC的统计意义是从所有正样本随机抽取一个正样本,从所有负样本随机抽取一个负样本,对应的预测probability中该正样本排在负样本前面的概率。
计算原理:所有的样本对中被正确排序的样本对(正类排在负类前面)的比例。

  1. 设正样本M个,负样本N个,样本总量n。
  2. 计算预测结果中每个样本的rank值,及升序排列后的位置,probability最大的样本rank为n。
  3. 当一个正样本在正类预测结果的升序排列中排在第k位,则证明它与排在其后面的负样本构成了正确排序对,则所有正确排序的样本对的总和为:
    举个例子:
    例如 ( r a n k 0 − 1 ) (rank_0-1) (rank01)表示rank最小的正例可以和 r a n k 0 − 1 rank_0-1 rank01个负样本构成正确样本对。
    C o r r e c t P a i r = ( r a n k 0 − 1 ) + ( r a n k 1 − 2 ) + . . . + ( r a n k i − ( i + 1 ) ) + . . + ( r a n k M − 1 − M ) = ∑ i ∈ 正 样 本 集 合 r a n k i − ∑ ( M + ( M − 1 ) + . . . + 1 ) = ∑ i ∈ 正 样 本 集 合 r a n k i − M ∗ ( M + 1 ) 2 CorrectPair = (rank_0-1) + (rank_1-2)+…\\ +(rank_i-(i+1))+..+(rank_{M-1}-M)\\ = \sum_{i\in 正样本集合}{rank_i}-\sum(M+(M-1)+…+1)\\ =\sum_{i\in 正样本集合}{rank_i}-\frac{M*(M+1)}{2} CorrectPair=(rank01)+(rank12)+...+(ranki(i+1))+..+(rankM1M)=iranki(M+(M1)+...+1)=iranki2M(M+1)

则AUC计算公式为:
A U C = C o r r e c t P a i r M ∗ N AUC=\frac{CorrectPair}{M*N} AUC=MNCorrectPair

python 代码实现及注解

def cacu_auc(label, prob):
    ''' :param label: 样本的真实标签 :param prob: 分类模型的预测概率值,表示该样本为正类的概率 :return: 分类结果的AUC '''
    # 将label 和 prob组合,这样使用一个key排序时另一个也会跟着移动
    temp = list(zip(label, prob))
    # 将temp根据prob的概率大小进行升序排序
    rank = [val1 for val1, val2 in sorted(temp, key=lambda x: x[1])]
    # 将排序后的正样本的rank值记录下来
    rank_list = [i+1 for i in range(len(rank)) if rank[i]==1]
    # 计算正样本个数m
    M = sum(label)
    # 计算负样本个数N
    N=len(label)-M
    return (sum(rank_list)-M*(M+1)/2)/(M*N)

类别不平衡问题

这里特指负样本数量远大于正样本时,在这类问题中,我们往往更关注正样本是否被正确分类,即TP的值。PR曲线更适合度量类别不平衡问题中:

  1. 因为在PR曲线中TPR和FPR的计算都会关注TP,PR曲线对正样本更敏感。
  2. 而ROC曲线正样本和负样本一视同仁,在类别不平衡时ROC曲线往往会给出一个乐观的结果。

参考
[1]: https://blog.csdn.net/ft_sunshine/article/details/108833761
[2]: 《机器学习》周志华

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/179653.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Socket编程原理(1)「建议收藏」

    Socket编程原理(1)「建议收藏」[精华]socket编程原理socket编程原理 socket编程原理 1 问题的引入 UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-close)。在一个用户进程进行I/O操作时,它首先调用“打开”获得对指定文件或设备的使用权,并返回称为文件描述符的整型数,以描述用户在打开的文件或设备上进行I/O

    2022年10月17日
  • mongoDB安装和服务配置过程「建议收藏」

    mongoDB安装和服务配置过程「建议收藏」mongoDB安装和服务配置过程

  • 压缩包文件的解压密码如何激活成功教程

    压缩包文件的解压密码如何激活成功教程压缩包文件带有解压码,在不知道密码的情况下,想要解压文件,需要使用激活成功教程软件将解压密码找回才能顺利解压文件,比如使用奥凯丰压缩包解密大师【压缩包解密大师】快速找回密码_轻松移除使用限制-奥凯丰okfone压缩包大师是奥凯丰推出的一款可以找回RAR打开密码以及移除RAR使用限制的软件,使用户可以自由编辑和打印RAR文件https://www.okfone.com/onepass-for-rar/onepass-for-rar.html将压缩包(支持rar、zip、7z格式)添加到软件中,选择一种找回方法,

    2022年10月24日
  • 利用Openssl生成证书

    利用Openssl生成证书生成privatekeyopensslgenrsa-des3-outca.key2048生成根证书opensslreq-new-x509-sha384-days3650-keyca.key-outca.crt生成二级证书的privatekeyopensslgenrsa-outsecond.key2048生成二级证书的CSRopensslreq-new-keysecond.key-outsecond.csropen.

  • python-opencv图像处理:sobel算子

    python-opencv图像处理:sobel算子Sobel原理:https://blog.csdn.net/zfjBIT/article/details/86655444函数原型:”’Sobel算子Sobel算子依然是一种过滤器,只是其是带有方向的。在OpenCV-Python中,使用Sobel的算子的函数原型如下:dst=cv2.Sobel(src,ddepth,dx,dy[,dst[,ksize[,s…

  • 什么是java?为什么要学Java? 学Java有什么用?

    什么是java?为什么要学Java? 学Java有什么用?肯定会有许多人或多或少都和我一样,当偶然在电视上看到程序员对着电脑飞快敲下一串代码,不禁为他们发出惊叹,想象着有一天自己也能这样。是的,有一天你也能这样!因为我已经实现了!下面我们来看看到底什么是JAVA?为什么要学习,学习了有什么用?先给大家看一下19年计算机语言排行什么是java?为什么要学Java?学Java有什么用?1.什么是JavaJava它就是一种编程语言,别的编程语言能干的事,它都能干。2.编程语言这么多,我为什么选择Java呢?简单易学首先Java是一个面向对象的编程语言

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号