roc曲线的意义_Pre / Rec / ROC / PR「建议收藏」

roc曲线的意义_Pre / Rec / ROC / PR「建议收藏」Precision和Recall值是既矛盾又统一的两个指标,为了提高Precision值,分类器需要尽量在“更有把握”时(即,提高分类阈值!)才把样本预测为正样本,但此时往往会因为过于保守而漏掉很多“没有把握”的正样本,导致Recall值降低。ROC(ReceiverOperatorCharacteristic)曲线被广泛应用于二分类问题中来评估分类器的可信度,但是当处理一…

大家好,又见面了,我是你们的朋友全栈君。

Precision 和 Recall值是既矛盾又统一的两个指标,为了提高 Precision 值,分类器需要尽量在 “更有把握” 时(即,提高分类阈值!)才把样本预测为正样本,但此时往往会因为过于保守而漏掉很多 “没有把握” 的正样本,导致 Recall 值降低。

ROC(Receiver Operator Characteristic)曲线被广泛应用于二分类问题中来评估分类器的可信度,但是当处理一些高度不均衡的数据集时,PR 曲线能表现出更多的信息,发现更多的问题。

首先理解这四个基本指标:

9f313402767be5e69ef2e89b5881fc57.png

ROC曲线中,是以FPR为x轴,TPR为y轴。

PR曲线中,以Recall为x轴,Precision为y轴。

绘制ROC曲线和PR曲线都是选定不同阈值,从而得到不同的x轴和y轴的值,画出曲线。

在 ROC 空间,ROC 曲线越凸向左上方向效果越好,但是,PR 曲线是右上凸效果越好。

当正负样本比例差距不大时,ROC和PR的趋势是差不多的,当正负样本比例差距很大时,ROC效果依然看似很好,但是PR曲线则会表现的比较差。

所以,PR曲线在正负样本比例悬殊较大时,更能反映分类器的性能。

当正负样本分布发生变化时,ROC 曲线的形状能够基本保持不变,而 P-R 曲线的形状一般会发生较剧烈的变化。这个特点让 ROC 曲线能够尽量降低不同测试集带来的干扰,更加客观地衡量模型本身的性能

这有什么实际意义呢?在很多实际问题中,正负样本数量往往很不均衡。比如,计算广告领域经常涉及转化率模型,正样本的数量往往是负样本数量的 1/1000 甚至 1/10000。若选择不同的测试集,P-R 曲线的变化就会非常大,而 ROC 曲线则能够更加稳定地反映模型本身的好坏。

所以,ROC 曲线的适用场景更多,被广泛用于排序、推荐、广告等领域。但需要注意的是,选择 P-R 曲线还是 ROC 曲线是因实际问题而异的,如果研究者希望更多地看到模型在特定数据集上的表现,P-R 曲线则能够更直观地反映其性能。

AUC(Area Under Curve) 即指曲线下面积占总方格的比例。有时不同分类算法的 ROC 曲线存在交叉,因此很多时候用 AUC 值作为算法好坏的评判标准。面积越大,表示分类性能越好。

wdmad:机器学习之类别不平衡问题 (2) —— ROC和PR曲线​zhuanlan.zhihu.com

10860a781b0eae86afa08179bd55df8f.png

(分析了ROC曲线的优缺点,以及ROC和PR的使用场景)

ROC曲线和PR(Precision-Recall)曲线的联系_SEAN是一只程序猿​www.fullstackdevel.com

7670f2ababefbf9e289a7322a188aff3.png

(解释了ROC和PR曲线的概念与画法)

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145450.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JSONObject与JSONArray的使用

    JSONObject与JSONArray的使用

    2021年12月14日
    35
  • 在pycharm中安装opencv_pycharm opencv

    在pycharm中安装opencv_pycharm opencv打开pycharm下方的terminal终端在路径下直接输入pipinstallopencv-python稍等片刻既安装成功在这里查看项目安装的模块点击左上方文件-设置-项目-Protect-Interpreter看到我们已经安装了opencv-python与numpy模块…

    2022年8月27日
    5
  • VirtualBox管理工具Vboxmanage「建议收藏」

    VirtualBox管理工具Vboxmanage「建议收藏」注意事项: 使用vboxmanage管理virtualBox虚拟机,必须使用命令行开启虚拟机。  1、如果没有使用virtualbox管理界面创建好虚拟机的话,需要使用命令行或管理界面将虚拟机创建完成(创建步骤就不啰嗦了)  2、将创建好的虚拟机注册到管理工具里。      VBoxManageregistervm <filename>.vbox  …

    2022年5月3日
    165
  • python敏感词过滤代码简单(敏感词匹配算法)

    今天游戏正好用到需要过滤敏感词将出现的敏感词替换成*,在网上找了许久找了一片可用的java版本的DFA算法,最后费了一番功夫将其思路用C#实现,里面的注释甚至都没改动的,这里直接上代码,这里不借助任何第三方工具,复制粘贴就是用当然想看原博客的点击这里usingUnityEngine;usingSystem.Collections.Generic;publicclassTes…

    2022年4月17日
    160
  • E. Riding in a Lift(Codeforces Round #274)「建议收藏」

    E. Riding in a Lift(Codeforces Round #274)

    2022年1月25日
    72
  • Java调用so文件[通俗易懂]

    Java调用so文件[通俗易懂]公司的硬件让我帮忙调用一个so文件,想着一直都没机会自己写一个jni,于是就答应了,在调用的过程中还踩了不少坑,特地写一篇博客记录一下。一、使用技术原本是想直接用java自带的jni,但是我们硬件只给了一个so文件,而且里面的函数命名等规则不符合java的jni调用标准,于是就打算使用框架jna来调用。JNA就是建立在JNI之上,它简化了Java调用原生函数的过程。JNA提供了一…

    2022年9月19日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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