R: построить несколько различных цветных ROC кривых с помощью ROCR
Следующий код был взят из ответа @adibender на "несколько кривых ROC в одном графике ROCR". Код частично от кого ?сюжет.спектакль.
library(ROCR)
data(ROCR.simple)
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)
Я хочу проиллюстрировать несколько кривых ROC на одном графике, как в приведенном выше коде, используя R-пакет ROCR. Однако я бы хотел, чтобы кривые ROC были в разных цветах. Как применить различные цвета к различным кривым? Спасибо заранее.
2 ответа:
Попробуйте это (вы можете сделать это с помощью
ROCR
):library(ROCR) data(ROCR.simple) preds <- cbind(p1 = ROCR.simple$predictions, p2 = abs(ROCR.simple$predictions + rnorm(length(ROCR.simple$predictions), 0, 0.1))) n <- 2 # you have n models colors <- c('red', 'blue') # 2 colors for (i in 1:n) { plot(performance(prediction(preds[,i],ROCR.simple$labels),"tpr","fpr"), add=(i!=1),col=colors[i],lwd=2) }
Функция
plot
для объектовROCR
, по-видимому, не предлагает эту опцию. Итак, вам придется разобрать объект и сделать это вручную.Например, используя
ggplot2
,library(ggplot2) df <- data.frame(Curve=as.factor(rep(c(1,2), each=length(perf.mat@x.values[[1]]))), FalsePositive=c(perf.mat@x.values[[1]],perf.mat@x.values[[2]]), TruePositive=c(perf.mat@y.values[[1]],perf.mat@y.values[[2]])) plt <- ggplot(df, aes(x=FalsePositive, y=TruePositive, color=Curve)) + geom_line() print(plt)