首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >一块岩层中的多条ROC曲线

一块岩层中的多条ROC曲线
EN

Stack Overflow用户
提问于 2012-12-30 03:43:18
回答 3查看 49.6K关注 0票数 26

是否可以使用ROCR包在同一图中绘制不同分类器的roc曲线?我试过了:

代码语言:javascript
复制
>plot(perf.neuralNet, colorize=TRUE)
>lines(perf.randomForest)

但我得到了:

错误en as.double(y):无法将类型'S4‘强制为类型'double’的向量

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-30 04:09:43

您的lines-approach的问题在于,对于ROCR包中定义的performance类的对象,没有通用的S4行函数。但是您可以像使用额外的add = TRUE参数一样使用通用的plot函数。例如,这部分来自?plot.performance的示例页面:

代码语言:javascript
复制
library(ROCR)
data(ROCR.simple)
pred <- prediction( ROCR.simple$predictions, ROCR.simple$labels )
pred2 <- prediction(abs(ROCR.simple$predictions + 
                        rnorm(length(ROCR.simple$predictions), 0, 0.1)), 
        ROCR.simple$labels)
perf <- performance( pred, "tpr", "fpr" )
perf2 <- performance(pred2, "tpr", "fpr")
plot( perf, colorize = TRUE)
plot(perf2, add = TRUE, colorize = TRUE)

或者,您可以将所有预测存储在一个矩阵中,然后在一个矩阵中完成所有后续步骤:

代码语言:javascript
复制
preds <- cbind(p1 = ROCR.simple$predictions, 
                p2 = abs(ROCR.simple$predictions + 
                rnorm(length(ROCR.simple$predictions), 0, 0.1)))

pred.mat <- prediction(preds, labels = matrix(ROCR.simple$labels, 
                nrow = length(ROCR.simple$labels), ncol = 2) )

perf.mat <- performance(pred.mat, "tpr", "fpr")
plot(perf.mat, colorize = TRUE)

顺便说一句,如果你因为某些原因真的想用lines来绘制连续的ROC曲线,你必须得做点什么。如下所示:

代码语言:javascript
复制
plot(perf) 
lines(perf2@x.values[[1]], perf2@y.values[[1]], col = 2)
票数 41
EN

Stack Overflow用户

发布于 2015-12-31 04:28:29

回显@adibender,并添加注释:该示例没有涵盖如何使用第二种方法(一次绘制所有曲线)为每条曲线设置单独的颜色。在这种情况下,将col作为列表传递:

代码语言:javascript
复制
library(ROCR)
data(ROCR.hiv)
x   <- prediction(ROCR.hiv$hiv.nn$predictions, ROCR.hiv$hiv.nn$labels)
ROC <- performance(x, "tpr", "fpr")
plot(ROC, col = as.list(1:10))
票数 3
EN

Stack Overflow用户

发布于 2012-12-30 03:56:06

R具有在一个窗口中绘制多个绘图的功能。如果软件包不支持一个窗口中的多个绘图,您可以使用R的标准仪器来解决问题。其他方法:使用此脚本的Example of several ROCs文章:An example of ROC curves plotting with ROCR

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14085281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档