ROC 曲线绘制

个人的浅显理解:1.ROC曲线必须是针对连续值输入的,通过选定不同的阈值而得到光滑而且连续的ROC曲线,故通常应用于Saliency算法评价中,因为可以选定0~255中任意的值进行阈值分割,从而得到ROC曲线;

2.对于图像分割算法的评价不适合用ROC曲线进行评价,除非能够得到连续值,而不是二值图像;图像分割算法适合采用准确率、召回率、F1指标的平均值进行评价。

3.针对已经分割好的二值图像:分割出了一系列的分割二值图,除非分割的结果足够大,否则很难得到良好的ROC曲线,一般都是波动很大的,如下图所示。

      

    matlab中已经有现成的针对分类的ROC曲线绘制函数。

目前理解的并不透彻,以下资料可供进一步学习,记录以备忘:

http://blog.sina.com.cn/s/blog_4cf8aad30100gt1g.html

http://www.ilovematlab.cn/thread-62962-1-1.html

http://blog.csdn.net/fuhpi/article/details/8813455

论文:The relationship between Precision-Recall and ROC curves.pdf

matlab中plotroc函数的用法说明:

ROC曲线是通用的分类器评价工具,matlab函数中自带了绘制该曲线的函数plotroc。

plotroc函数的原型为:plotroc(targets, outputs)

其中参数targets是一个矩阵,代表测试集,每一列表示一个测试样本的标签

如果有两类样本,比如第1,2,5个样本属于第1类,第3,4,6个样本属于第2类....则targets应为:

1 1 0 0 1 0 ...

0 0 1 1 0 1 ...

如果只有一类样本,包含了负样本,则只要一行,用1表示正样本,0表示负样本即可,比如targets为:

1 0 1 1 0 0 0 0 1 ...

参数outputs也是一个矩阵,代表分类结果,同样每一列表示一个测试样本的分类结果

同样如果有两类样本,则应有两个分类器,每一列记录了每个测试样本在两个分类器上的得分,此时outputs为:

0.8 0.85 0.2 0.75 0.21 ...

0.8 0.01 0.9 0.23 0.67 ...

如果只有一类,则outputs只有一行,如:

0.8 0.6 0.8 0.7 0.05 0.3 0.03 ...

注意,得分必须在[0, 1]的区间内,可以自己规约一下。

我们将相应的测试标签targets和对应的分类得分outputs输入plotroc中就可以绘制出相应的ROC曲线了。

ROC曲线绘制的更多相关文章

  1. [机器学习]-分类问题常用评价指标、混淆矩阵及ROC曲线绘制方法

    分类问题 分类问题是人工智能领域中最常见的一类问题之一,掌握合适的评价指标,对模型进行恰当的评价,是至关重要的. 同样地,分割问题是像素级别的分类,除了mAcc.mIoU之外,也可以采用分类问题的一些 ...

  2. R语言︱ROC曲线——分类器的性能表现评价

    笔者寄语:分类器算法最后都会有一个预测精度,而预测精度都会写一个混淆矩阵,所有的训练数据都会落入这个矩阵中,而对角线上的数字代表了预测正确的数目,即True Positive+True Nagetiv ...

  3. ROC曲线的概念和意义

    ROC曲线 受试者工作特征曲线 (receiver operating characteristic curve,简称ROC曲线),又称为感受性曲线(sensitivity curve).得此名的原因 ...

  4. 多分类-- ROC曲线

    本文主要介绍一下多分类下的ROC曲线绘制和AUC计算,并以鸢尾花数据为例,简单用python进行一下说明.如果对ROC和AUC二分类下的概念不是很了解,可以先参考下这篇文章:http://blog.c ...

  5. ROC 曲线/准确率、覆盖率(召回)、命中率、Specificity(负例的覆盖率)

      欢迎关注博主主页,学习python视频资源 sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频教程) https://study.163.com/course/introduction.ht ...

  6. 【sklearn】性能度量指标之ROC曲线(二分类)

    原创博文,转载请注明出处! 1.ROC曲线介绍 ROC曲线适用场景 二分类任务中,positive和negtive同样重要时,适合用ROC曲线评价 ROC曲线的意义 TPR的增长是以FPR的增长为代价 ...

  7. 多分类下的ROC曲线和AUC

    本文主要介绍一下多分类下的ROC曲线绘制和AUC计算,并以鸢尾花数据为例,简单用python进行一下说明.如果对ROC和AUC二分类下的概念不是很了解,可以先参考下这篇文章:http://blog.c ...

  8. 【分类模型评判指标 二】ROC曲线与AUC面积

    转自:https://blog.csdn.net/Orange_Spotty_Cat/article/details/80499031 略有改动,仅供个人学习使用 简介 ROC曲线与AUC面积均是用来 ...

  9. FDDB人脸检测数据集 生成ROC曲线

    看了好多博客,踩了很多坑,终于把FDDB数据集的ROC曲线绘制出来了.记录一下. 环境:ubuntu18.04 1.数据集准备 去FDDB官网:http://vis-www.cs.umass.edu/ ...

随机推荐

  1. percona-toolkit 之 【pt-slave-delay】说明

    摘要: 在主从复制的架构中,正常情况下主上操作的记录也会在从上进行操作,虽说是异步复制,但操作会“实时”的同步到从.比如在主上不小心误操作了,还没等反应过来从上也会马上执行误操作,后期只有通过二进制或 ...

  2. vs2013显示行号

    随便打开一个项目,可以看到代码框内并没有显示行号 选择“工具”-“选项”,打开后界面如下 选择文本编辑器,找到下图中的“行号”并勾选 行号可以显示了 5 这样我们就完成了任务

  3. 通过configSource提高web.config配置灵活性

    很多时候我们会有这样的情况,开发环境和测试环境中的配置文件是不一样的,最明显的就是数据库连接串,这样,每次我们发布一个测试版本,都要手动去修改一下配置文件,是不是很麻烦的说.其实利用web.confi ...

  4. RecyclerView的万能分割线

    效果图: 使用方法: 添加默认分割线:高度为2px,颜色为灰色 mRecyclerView.addItemDecoration(new RecyclerViewDivider(mContext, Li ...

  5. 【2016-08-21】Linux内核版本编号规则简介

    我们已经了解可以使用下面的几天命令来查看Linux内核版本及Ubuntu发行版本的信息: uname -r uname -a cat /proc/version lsb-release -a 等等 可 ...

  6. python基础——单元测试

    python基础——单元测试 如果你听说过“测试驱动开发”(TDD:Test-Driven Development),单元测试就不陌生. 单元测试是用来对一个模块.一个函数或者一个类来进行正确性检验的 ...

  7. Ubuntu离线更新flashplugin

    当网络太烂时,Ubuntu更新可能会卡在下载flashplugin上面,继而出错.在U论坛上找到一篇帖子,寻到成功安装flashplugin-installer的方法: 1.首先使用sudo apt- ...

  8. Android自学指导

    如果想自学Android,以下的文章可以作为参考: 如何自学Android(Gityuan) 那两年炼就的Android内功修养(老罗的Android之旅)

  9. gitlab 用户头像不能显示的问题

    [root@GitLab assets]# cat /etc/gitlab/gitlab.rb # Change the external_url to the address your users ...

  10. EasyUi–8.datebox赋值的问题

    这个问题要从EasyUI的datebox组件说起,小菜用这个组件的时候,发现用$("#id").val()这种形式,居然拿不到文本框的值!      经过度娘的帮助,发现可以用$( ...