在本文中,我描述了如何在CRAN中搜索用于绘制ROC曲线的包,并重点介绍了六个有用的包。
尽管我从一些我想谈论的软件包开始就有了一些想法,例如ROCR和pROC(我在过去发现它们很有用),但我还是决定使用 相对较新的软件包pkgsearch来搜索CRAN并查看其中的内容。该package_search()函数将文本字符串作为输入,并使用基本的文本挖掘技术来搜索所有CRAN。
library(tidyverse) # for data manipulation library(dlstats) # for package download stats library(pkgsearch) # for searching packages
need-to-insert-img
经过一番尝试和错误之后,我确定了以下查询,其中包括许多与ROC相关的有趣软件包。
rocPkg
need-to-insert-img
rocPkgShort % filter(maintainer_name != "ORPHANED", score > 190) %>% select(score, package, downloads_last_month) %>% arrange(desc(downloads_last_month)) head(rocPkgShort)
need-to-insert-img
## # A tibble: 6 x 3 ## score package downloads_last_month ## ## 1 690. ROCR 56356 ## 2 7938. pROC 39584 ## 3 1328. PRROC 9058 ## 4 833. sROC 4236 ## 5 266. hmeasure 1946 ## 6 1021. plotROC 1672
为了完成选择过程,我做了艰苦的工作,浏览软件包的文档,以挑选出我认为通常对大多数数据科学家有用的内容。下图使用了Guangchuang Yu的dlstats软件包,查看我选择分析的六个软件包的下载历史记录。
library(dlstats) shortList
need-to-insert-img
need-to-insert-img
2005年
以下代码ROCR使用包装随附的综合数据集设置并绘制默认的ROC曲线。在整个文章中,我将使用相同的数据集。
library(ROCR) ## Loading required package: gplots ## ## Attaching package: 'gplots' ## The following object is masked from 'package:stats': ## ## lowess # plot a ROC curve for a single prediction run # and color the curve according to cutoff. data(ROCR.simple) df
need-to-insert-img
## Loading required package: gplots
## ## Attaching package: 'gplots'
## The following object is masked from 'package:stats': ## ## lowess
need-to-insert-img
2010
pROC也受到数据科学家的欢迎。我喜欢AUC在图中绘制曲线下面积的置信区间非常容易。
need-to-insert-img
need-to-insert-img
2014年
该roc.curve()函数 会绘制出干净整齐的ROC曲线 。
need-to-insert-img
2014年
该软件包提供了许多功能丰富的ggplot()几何图形 。
need-to-insert-img
2015年
precrec是另一个用于绘制ROC和精确调用曲线的库。
## ## Attaching package: 'precrec'
## The following object is masked from 'package:pROC': ## ## auc
need-to-insert-img
该evalmod()函数的参数选项使生成各种模型特征的基本图变得容易。
need-to-insert-img
2019
ROCit是一个用于绘制ROC曲线和其他二进制分类可视化效果的新程序包 ,并且正在迅速普及。
## Warning: package 'ROCit' was built under R version 3.5.2
need-to-insert-img
下图显示了正响应和负响应的累积密度。KS统计数据显示两条曲线之间的最大距离。
ksplot(ROCit_obj)
need-to-insert-img
need-to-insert-img