
在本文中,我描述了如何在CRAN中搜索用于绘制ROC曲线的包,并重点介绍了六个有用的包。
我使用pkgsearch来搜索CRAN并查看其中的内容。该package_search()
函数将文本字符串作为输入,并使用基本的文本挖掘技术来搜索所有CRAN。
可下载资源
经过一番尝试和错误之后,我确定了以下查询,其中包括许多与ROC相关的有趣软件包。
rocPkg <- pkg_search(query="ROC",size=200)
分类模型(又称分类器,或诊断)将实例映射到特定类。ROC分析的是二元分类模型,也就是输出结果只有两种类别的模型,例如:(阳性/阴性) (有病/没病) (垃圾邮件/非垃圾邮件) (敌军/非敌军)。
当讯号侦测(或变量测量)的结果是连续值时,类与类的边界必须用阈值来界定。举例来说,用血压值来检测一个人是否有高血压,测出的血压值是连续的实数(从0~200都有可能),以收缩压140/舒张压90为阈值,阈值以上便诊断为有高血压,阈值未满者诊断为无高血压。二元分类模型的个案预测有四种结局:
真阳性(TP):诊断为有,实际上也有高血压。
伪阳性(FP):诊断为有,实际却没有高血压。
真阴性(TN):诊断为没有,实际上也没有高血压。
伪阴性(FN):诊断为没有,实际却有高血压。
rocPkgShort <- rocPkg %>%
filter(maintainer_name != "ORPHANED", score > 190) %>%
select(score, package, downloads_last_month) %>%
arrange(desc(downloads_last_month))
head(rocPkgShort)
## # A tibble: 6 x 3
## score package downloads_last_month
## <dbl> <chr> <int>
## 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
软件包,查看我选择分析的六个软件包的下载历史记录。
下图使用了Guangchuang Yu的dlstats
软件包,查看我选择分析的六个软件包的下载历史记录。
library(dlstats)
shortList <- c("pROC","precrec","ROCit", "PRROC","ROCR","plotROC")
downloads <- cran_stats(shortList)
ggplot(downloads, aes(end, downloads, group=package, color=package)) +
geom_line() + geom_point(aes(shape=package)) +
scale_y_continuous(trans = 'log2')

2005年
以下代码ROCR
使用包随附的综合数据集设置并绘制默认的ROC曲线。在整个文章中,我将使用相同的数据集。
library(ROCR)
## Loading required package: gplots
##
## Attaching package: 'gplots'
## The following object is masked from 'package:stats':
##
## lowess
# 为单个预测绘制ROC曲线,并对曲线进行着色。
data(ROCR.simple)
df <- data.frame(ROCR.simple)
pred <- prediction(df$predictions, df$labels)
perf <- performance(pred,"tpr","fpr")
plot(perf,colorize=TRUE)

2010
pROC
在图中绘制曲线下面积(AUC)的置信区间非常容易。

2014年
roc.curve()
函数会绘制出干净整齐的ROC曲线 。

2014年
该软件包提供了许多功能丰富的ggplot()
几何图形 。

2015年
precrec
是另一个用于绘制ROC的库。

evalmod()
函数可以很容易地生成各种模型特征的基本图。

2019
ROCit
是一个用于绘制ROC曲线和其他二进制分类可视化效果的新程序包 ,并且正在迅速普及。

下图显示了CDF累积密度。KS统计数据显示两条曲线之间的最大距离。
ksplot(ROCit_obj)

可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!