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。不過,我希望這個小練習能幫助您找到您要找的東西。返回搜狐,查看更多
責任編輯:
總結
以上是生活随笔為你收集整理的r roc函数_画ROC曲线的R包总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos安装mysql5.7.12_
- 下一篇: word手写字体以假乱真_Word小技巧