r roc函数_画ROC曲线的R包总结

原标题:画ROC曲线的R包总结

作者: Joseph Rickert

原文链接:

https://rviews.rstudio.com/2019/03/01/some-r-packages-for-roc-curves/

在这篇文章中,我将描述如何在CRAN中搜索绘制ROC曲线的包,并强调六个有用的包。

虽然一开始我有一些想谈论的包的想法,像ROCR和pROC,我发现它们在过去是有用的,但我决定使用Gabor Csardi相对较新的包pkgsearch来搜索CRAN,看看那里有什么。package_search()函数的作用是:将文本字符串作为输入,并使用基本的文本挖掘技术搜索所有CRAN。该算法搜索包文本字段,并为它找到的每个包生成一个分数,该分数由反向依赖项和下载的数量加权。

1library(tidyverse) # for data manipulation

2library(dlstats) # for package download stats

3library(pkgsearch) # for searching packages

经过一些尝试和错误之后,我决定使用以下查询,其中包括一些有趣的与roc相关的包。

1rocPkg

2

然后,通过过滤掉孤立包和得分不超过190的包,我将rocPkg缩小到46个包。

1rocPkgShort%

2filter(maintainer_name != "ORPHANED", score > 190) %>%

3select(score, package, downloads_last_month) %>%

4arrange(desc(downloads_last_month))

5head(rocPkgShort)

为了完成选择过程,我做了大量的工作,浏览了软件包的文档,从中挑选出我认为对大多数数据科学家通常有用的东西。下面的图使用Guangchuang Yu的dlstats包查看我选择配置的六个包的下载历史。

1library(dlstats)

2shortList

3downloads

4ggplot(downloads, aes(end, downloads, group=package, color=package)) +

5geom_line() + geom_point(aes(shape=package)) +

6scale_y_continuous(trans = 'log2')

ROCR - 2005

ROCR已经存在了近14年,是绘制ROC曲线的一个坚如磐石的工具。我特别喜欢performance()函数通过输入真阳性率tpr和假阳性率fpr和参数来设置曲线的计算方法。这不仅具有令人放心的透明性,还显示了通过输入适当的参数来计算二进制分类器的几乎所有性能度量的灵活性。例如,要生成precision-recall曲线,您需要输入prec和rec。虽然没有vignette,但包的文档非常好。

下面的代码使用包附带的合成数据集并绘制默认的ROCR ROC曲线。在本文中,我将使用相同的数据集。

1library(ROCR)

2## Loading required package: gplots

3##

4## Attaching package: 'gplots'

5## The following object is masked from 'package:stats':

6##

7## lowess

8# plot a ROC curve for a single prediction run

9# and color the curve according to cutoff.

10data(ROCR.simple)

11df

12pred

13perf

14plot(perf,colorize=TRUE)

pROC - 2010

从下载曲线可以明显看出,pROC也很受数据科学家的欢迎。我喜欢它是因为很容易得到AUC的置信区间。

1library(pROC)

2## Type 'citation("pROC")' for a citation.

3##

4## Attaching package: 'pROC'

5## The following objects are masked from 'package:stats':

6##

7## cov, smooth, var

8pROC_obj

9smoothed = TRUE,

10# arguments for ci

11ci=TRUE, ci.alpha=0.9, stratified=FALSE,

12# arguments for plot

13plot=TRUE, auc.polygon=TRUE, max.auc.polygon=TRUE, grid=TRUE,

14print.auc=TRUE, show.thres=TRUE)

15

16

17sens.ci

18plot(sens.ci, type="shape", col="lightblue")

19## Warning in plot.ci.se(sens.ci, type = "shape", col = "lightblue"): Low

20## definition shape.

21plot(sens.ci, type="bars")

PRROC - 2014

虽然不像ROCR和pROC那么受欢迎,但PRROC最近似乎又卷土重来了。输入的术语有点折衷,但是一旦您理解了ROC.curve()函数,就可以轻松地绘制出一条干净的ROC曲线。正如vignette所指示,PRROC的创建实际上是为了做precision-recall曲线。

1library(PRROC)

2

3PRROC_obj

4curve=TRUE)

5plot(PRROC_obj)

plotROC - 2014

plotROC是使用ggplot()绘制ROC曲线的理想选择。我的猜测是,它似乎只受到有限的欢迎,因为文档使用了医学术语,如“疾病状态”和“标记”。尽管如此,文档(包括a vignette and a Shiny application)非常好。

该包提供了许多功能丰富的ggplot()几何,可以生成复杂的图形。下面的图包含一些样式,包括Clopper和Pearson(1934)精确的方法置信区间。

1library(plotROC)

2rocplot

3rocplot+ style_roc(theme= theme_grey)+ geom_rocci(fill="pink")

4

precrec - 2015

precrec是另一个绘制ROC和precision-recall曲线的库。

1library(precrec)

2##

3## Attaching package: 'precrec'

4## The following object is masked from 'package:pROC':

5##

6## auc

7precrec_obj

8autoplot(precrec_obj)

evalmod()函数的参数选项使生成各种模型特性的基本图变得很容易。

1precrec_obj2

2autoplot(precrec_obj2)

ROCit - 2019

ROCit是一种用于绘制ROC曲线和其他二元分类可视化的新工具,它在1月份迅速蹿红,并继续流行。如果我通过下载自动过滤原始搜索,就永远不会发现它。默认的图包括Yourden’s J Statistic数据的位置。

1library(ROCit)

2## Warning: package'ROCit'was built under R version 3.5.2

3ROCit_obj

4plot(ROCit_obj)

其他一些可视化是可能的。下图显示了正面和负面反应的累积密度。KS统计量显示了两条曲线之间的最大距离。

1ksplot(ROCit_obj)

在本文中,我试图深入研究CRAN并揭示R所包含的用于绘制ROC曲线和其他二进制分类器可视化的一些资源,但我只触及了皮毛。此外,我故意忽略了许多用于特殊应用程序的包,例如从审查生存数据计算时间相关的ROC曲线的survivalROC,以及包含评估交叉验证的AUC措施的功能的cvAUC。不过,我希望这个小练习能帮助您找到您要找的东西。返回搜狐,查看更多

责任编辑:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505045.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言出圈游戏课设报告,c语言作业 出圈游戏

#include//头函数#include#include#define SIZE 100struct SeqList{int num;char name[10];};int menu_select();//函数声明部分void Joseph1();void Joseph2();void Joseph3();void Joseph4();void Joseph(struct SeqList *p,int length);void main() //主要程序段{printf(&qu…

laravel框架中文手册_node.js 后端框架star 排名 2020年11月更新,fastify 超 egg

发布时间以首个版本发布(0.x)为准。第一名: express 50.8k (2010年1月发布) 目前star 和下载量最高的老牌框架。https://github.com/expressjs/express​github.com第二名:meteor 42.1k (2012年…

c语言~991|4等于多少,复习C语言9-helloworld3000-ChinaUnix博客

关于位操作1. 不使用中间变量,交换a、b的值。如使用:a a b; b a - b; a a - b;则当a、b都比较大时,ab的值可能会溢出。而采用下述方法则没有溢出越界的问题:a a ^ b;b a ^ b;a a ^ b;证明其实很简单,只要熟悉二…

python音乐下载器交互界面_基于Python实现下载网易音乐代码实例

代码如下 # 爬取网易音乐 import requests from bs4 import BeautifulSoup import urllib.request headers {"origin": "https://music.163.com", "referer": "https://music.163.com/", "user-agent": "Mozilla/5.0 …

2020年度工作计划_2020最新年度个人工作计划(精选3篇)

时间稍纵即逝,前方等待着我们的是新的机遇和挑战,不妨坐下来好好写写工作计划吧。工作计划怎么写才能发挥它最大的作用呢?下面是小编为大家整理的2020最新年度个人工作计划(精选3篇),希望能够帮助到大家。年度个人工作计划1转眼间…

c语言中把各位上为奇数的数取出,下列给定程序中函数fun()的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在冲。 - 赏学吧...

下列给定程序中函数fun()的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在冲。高位仍在高位,低位仍在低位。例如当s中的数为87653142时,t中的数为7531。请改正函数fun()中的错误,使它能得出正确的结…

java 格式化字符串_Java入门 - 语言基础 - 14.String类

1.概述字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。2.创建字符串创建字符串最简单的方式如下:String greeting "光束云";在代码中遇到字符串常量时,这里的值是 "光束…

c语言按照姓名查询员工信息,输入10个职工信息,按号码大小排序,再使用查找函数找职工的姓…...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include#include //主函数int main(){int sort(int num[10],char name[10][10],int n);int survey(int num[10]);int num[10];int n10;char name[10][10];int i;for(i0;i<9;i){printf("请输入第%d个职工的工号\n",i1…

decimal是什么类型_SQLMysql数据类型

一 前言每个数据库的数据类型从来都不是一个简单的数据结构&#xff0c;特别是使用不同的数据库&#xff0c;不同的引擎&#xff0c;其支持的数据类型也不一样&#xff0c;选择那种数据类型作为字段类型对数据库的性能也是天差地别&#xff0c;故对数据类型有个全面的认知&…

python 栈和队列_python 栈和队列的基本实现

python中的列表结构可以用来实现栈和队列。 【栈】&#xff1a; 栈是一种数据结构&#xff0c;具有先入后出的特点&#xff0c;并且栈的所有操作只能在某一端进行&#xff0c;能进行操作的一端的第一个元素称为栈顶&#xff0c;另一端的第一个元素称为栈底 栈的五种基本方法&am…

e480win7显卡驱动_e480安装了windows7显卡驱动装不上

展开全部一、显卡驱动程序启用驱动程序签名功能启用驱动程序签名功能是成功安装显卡驱动的第e68a84e8a2ad3231313335323631343130323136353331333433663031一步&#xff0c;因为只有启动了驱动程序签名&#xff0c;才能阻止系统的自动安装驱动程序功能&#xff0c;才可以抢在系…

android oat如何提取dex文件字节码,Android: 使用oatdump反编译oat文件

网上经常看到有通过apktool将apk中的dex反编译成smali格式的文件&#xff0c;以便分析功能实现与破—解&#xff0c;确没怎么看到oat文件反通过oatdump反编译的&#xff0c;所以就写了一篇这样的文档。声明一下oat文件也是可以反编译的。本来想着通过oatdump处理之后&#xff0…

mybatis依赖_Spring Boot2 系列教程(二十一)整合 MyBatis

前面两篇文章和读者聊了 Spring Boot 中最简单的数据持久化方案 JdbcTemplate&#xff0c;JdbcTemplate 虽然简单&#xff0c;但是用的并不多&#xff0c;因为它没有 MyBatis 方便&#xff0c;在 SpringSpringMVC 中整合 MyBatis 步骤还是有点复杂的&#xff0c;要配置多个 Bea…

android获取图片格式,Android得到图片的真实格式——从本地文件或者网络文件流...

ImageFormatFeatures支持从InputStream或者File解析四种格式&#xff1a;jpg 、 png 、 webp 、 gif从文件本身解析格式&#xff0c;而不是从扩展名获取FormatHelper.getFormat(InputStream inputStream)FormatHelper.getFormat(File file)UsageStep 1Step 2解析格式String For…

python中setup函数的用法_python学习之setUp函数和tearDown函数

1,setUp():就是在一个类中最先被调用的函数,每次执行一个函数都要先执行这个函数,有几个函数就被调用几次,与放的位置无关,随便放到哪里都会先执行这个函数 2,tearDown():就是在一个类中最后被调用的函数,每个函数执行之后都会执行一次,与放的位置无关,随便放到哪里…

pagehelper的使用_SpringBoot项目中,如何更规范的使用PageHelper分页?

SpringBoot项目中&#xff0c;如何更规范的使用PageHelper分页&#xff0c;拉勾IT课小编为大家分解一. 开发准备1. 开发工具• IntelliJ IDEA 2020.2.32. 开发环境• Red Hat Open JDK 8u256• Apache Maven 3.6.33. 开发依赖SpringBoot<dependency><groupId>org.s…

2-路插入排序c语言算法,浅谈2路插入排序算法及其简单实现

2路插入排序算法是在直接插入排序算法的基础上增加了一个辅助数组&#xff0c;其目的是减少排序过程中的移动次数&#xff0c;需要增加n个记录的辅助空间。难点可能在于对取余的考虑吧&#xff0c;可以把辅助数组看成一个环状空间&#xff0c;这样就能更好的理解辅助空间中最大…

mysql安装被打断_Mysql的安装/性能优化/安全加固

aa安装&#xff1a;增加一个登录用户和群组#groupaddmysql#useradd -r -g mysql mysql解压缩Mysql数据包#tar-zxvf mysql-5.6.13.tar.gz进入Mysql解压缩目录#cd mysql-5.6.13配置安装mysql#cmake.#make &&make install建立配置文件#cp./support-files/my-medium.cnf/et…

python自动输入账号密码_Python如何基于selenium实现自动登录博客园

这篇文章主要介绍了Python如何基于selenium实现自动登录博客园,文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需要做的准备&#xff1a; 本文章是使用Chrome&#xff0c;所以需要Chormedriver.exe&#xff0c;…

安卓软件错误log_Android编程实现捕获程序异常退出时的错误log信息功能详解

本文实例讲述了Android编程实现捕获程序异常退出时的错误log信息功能。分享给大家供大家参考&#xff0c;具体如下&#xff1a;很多时候我们程序无缘无故的就挂掉了&#xff0c;让我们一头雾水&#xff0c;如果刚好我们在调试&#xff0c;那我们可以通过错误log来查看是什么原因…