ROC曲线的通俗理解

ROC曲线的通俗理解在准备机器学习导论课程考试的过程中,发现自己根据西瓜书上的讲解总是也理解不上去ROC曲线的含义。于是在网络上寻求答案,发现一篇讲解得不错的博客【1】,说得比西瓜书好很多,通俗易懂。这里说一下自己的感想和理解对于已经有数据标签的训练样本,可以得到它们的评分: 其中class一栏表示真实值,p为正例,n为反例,这20个样本中有10个正例10个反例;score一栏则是分类器给出的分类评分。一…

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

在准备机器学习导论课程考试的过程中,发现自己根据西瓜书上的讲解总是也理解不上去ROC曲线的含义。于是在网络上寻求答案,发现一篇讲解得不错的博客【1】,说得比西瓜书好很多,通俗易懂。这里说一下自己的感想和理解对于已经有数据标签的训练样本,可以得到它们的评分:

 

ROC曲线的通俗理解

其中class一栏表示真实值,p为正例,n为反例,这20个样本中有10个正例10个反例;score一栏则是分类器给出的分类评分。一般的二分类的实现方法就是选择一个阈值,将大于这个阈值的样本认为是正例,小于这个阈值的样本认为是反例。于是,不妨对 样本4来看,如果将样本4的评分设置为分类阈值,被分类器为正例的样本有1 2 3 4,其中真正的正例样本有1 2 4,故其TPR=3/10=0.3,FPR=1/10=0.1(分母虽然数值一样但是意义不同,前面TPR的分母是样本总体中的真正例个数,后者是样本总体中的真反例个数)。接着不妨设置样本9的评分0.51作为阈值,那么样本1~9都会被分类器认为是正例样本,其中为真正例的有1 2 4 5 6 9共6个,所以TPR=6/10=0.6,FPR=3/10=0.3.如此这样,将1~20每个样本的评分均作为分类器的判定阈值,可以得到20组TPR和FPR的有序数对;然后不妨以TPR和FPR为两个坐标轴建立一个直角坐标系,就可以得到这样的图像:

ROC曲线的通俗理解

这样每一组图像在图中都会有一个坐标,可以连成一条折线。一般地我们希望分类器得到的分类结果是完全正确的,也就是正例样本全部都能够被检测出来,并且不会混入真反例样本,这个时候TPR->1且FPR->0,反应在图像上好的分类器的折线应该更加接近左上角。当样本足够多时,折线就近似为圆滑的曲线,类似于这个样子【2】:

 

ROC曲线的通俗理解

从这个图上看,分类器A的结果肯定比分类器B要好。这个就是AOC曲线以及它的含义,通过这样的分析理解,感到自己明白了很多。

 

附上绘图所使用的MATLAB程序:

%code type:MATLAB
%绘制ROC曲线,demo

clear all;
close all;
clc;

%测试样本数据
samples=[
    1,0.9;
    1,0.8;
    0,0.7;
    1,0.6;
    1,0.55;
    1,0.54;
    0,0.53;
    0,0.52;
    1,0.51;
    0,0.505;
    1,0.4;
    0,0.39;
    1,0.38;
    0,0.37;
    0,0.36;
    0,0.35;
    1,0.34;
    0,0.33;
    1,0.30;
    0,0.1];

%首先准备绘制ROC曲线
figure;
%开始计算TPR和FPR
tpr=zeros(20,1);
fpr=zeros(20,1);
%这里的i表示以第i个样本的评分作为分类阈值
for i=1:20
    %正例样本计数
    p_cnt=0;
    %这里的j表示在统计正例个数的时候,遍历到的样本的id
    for j=1:i
        %判断这个遍历到的样本是不是正例
        if(samples(j,1)==1)
            %是?计数器++
            p_cnt=p_cnt+1;
        end
    end
    
    %计算TPR FPR
    tpr(i)=p_cnt/10;    %(10)是表示样本总体中的真正例个数总数为10
    fpr(i)=(i-p_cnt)/10;    %这里的10则是样本总体中的真反例个数总数    
end

%计算完成之后需要做的事情就是……画点,连线
plot(fpr,tpr,'*b-');
xlabel('FPR');
ylabel('TPF');
title('ROC Curve');
text(fpr+0.02,tpr+0.02,num2str(samples(:,2)));

 

参考文献:

【1】dzl_ML.机器学习之分类器性能指标之ROC曲线、AUC值.博客园,https://www.cnblogs.com/dlml/p/4403482.html.20150408,20181105.

【2】Dengchao.博客园,ROC曲线.https://www.cnblogs.com/cdeng/p/3471527.html.20131212,20181105.

 

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

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

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


相关推荐

  • Linux的清屏命令(linux终端清屏)

    在windows的DOS操作界面里面,清屏的命令是cls,那么在linux里面的清屏命令是什么呢?下面笔者分享几种在linux下用过的清屏方法。1、clear命令、这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息。2、Ctrl+l(小写的L)、这是一个清屏的快捷键,这个是笔者在工作中用得最多的一种清屏方式,清屏效果同clear命令一样…

    2022年4月13日
    187
  • 数据库返回的整型数据被偷换成了字符串类型[通俗易懂]

    数据库返回的整型数据被偷换成了字符串类型

    2022年2月15日
    38
  • 太极阳支持的Android版本,三星 Android 7.0 无法使用太极阳

    太极阳支持的Android版本,三星 Android 7.0 无法使用太极阳什么问题太极阴无法变成太极阳详细情况按照官网操作刷入magisk(+manager)magisk菜单download中搜索taichi,下载taichi4.9.1模块安装,然后重启手机从浏览器搜索稳定版网址链接,然后下载太极5.1.114.下载完成直接安装后,显示还是太极阴重启系统后,进入太极应用依然显示太极阴进入magisk菜单modules,发现Taichiv4.9.1模块已经被…

    2022年6月4日
    45
  • describing people听力原文_你美国也配谈道德

    describing people听力原文_你美国也配谈道德  美国著名公司PeopleSoft,名字也代表旗下的一系列ERP产品,一系列的解决方案,有一整套的开发工具,04年被oracle以103亿美元收购。 在某银行的CRM,EPM项目中有幸认识Michaelzhou,非常感谢他的帮助,使我认识到底什么才是PeopleSoft,暂且不说PeopleSoft的产品有多好,本文仅讨论PeopleSoft的开发模式。 

    2025年6月9日
    4
  • 服务器机房排风系统图,机房新风系统和排风系统的方案设计方法-20210628031546.pdf-原创力文档…

    服务器机房排风系统图,机房新风系统和排风系统的方案设计方法-20210628031546.pdf-原创力文档…______________________________________________________________________________________________________________新风系统的方案设计方法:设计方案时,即便再简单的方案,我们也应该先做方案、再扒图纸、作出预算的程序,这样我们就不会丢项、报错。复杂的项目,应该编制联系人表格;方便现场沟通…

    2022年5月22日
    55
  • 罗技键盘+android风格,罗技这款好看轻便的蓝牙键盘,让你在电脑手机间无缝切换…

    罗技键盘+android风格,罗技这款好看轻便的蓝牙键盘,让你在电脑手机间无缝切换…来源:极客之选摘要对便携性和颜值有要求的用户,这款键盘很适合。罗技K380蓝牙键盘是罗技比较经典的一款外设产品,最近,罗技新推出了k380芍药白和茱萸粉两种新配色,让我们来一起看一下。其中粉色介于粉色和裸色之间,相比粉色增加了一丝灰色。极客之选本次拿到的是白色版本,颜色也非亮白,而是与粉色类似较柔和,两种颜色整体都非常素雅,因此也适合在各种场合使用。外观上,罗技K380延续了一贯的设计…

    2022年10月15日
    5

发表回复

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

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