使用RStudio将abline添加到ROC曲线的问题

时间:2017-11-30 23:57:00

标签: r

我试图为我使用分类树进行的预测投入ROC曲线。绘制曲线后没有问题,R不会添加abline。

数据如下所示:

head(so)
 post.test.score messages forum.posts level.up
1          0.37       68           7       no
2          0.52       83          22      yes
3          0.42       81           7       no
4          0.56       94          14      yes
5          0.25       42          11       no
6          0.35       60          11       no

我首先创建了一个分类树,然后使用这个树生成一个概率值,表示接收level.up值的概率。

c.tree1 <- rpart(level.up~post.test.score+messages+forum.posts, data=so, method="class")
so$pred <- predict(c.tree1, so, type = "prob")[,2]

当我继续绘制ROC曲线并添加abline时,我收到错误

library(ROCR)

pred.detail <- prediction(so$pred, so$level.up) 
plot(performance(pred.detail, "tpr", "fpr"))
abline(0, 1, lty = 2)
Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...): 
  plot.new has not been called yet

我阅读了一些有关类似问题的回归的帖子,并意识到我的问题可能存在于预测本身,但我无法弄清楚。如何成功添加abline?

1 个答案:

答案 0 :(得分:0)

您是否运行了所有代码?

我根据您提供的数据重新创建了一个数据框,并运行了所有代码:

library(ROCR)
library(rpart)
so <- data.frame(post.test.score=c(0.37,0.53,0.42,0.56,0.25,0.35),
                 messages=c(68,83,81,94,42,60),
                 forum.posts=c(7,22,7,14,11,11),
                 level.up=c('no','yes','no','yes','no','no'))
c.tree1 <- rpart(level.up~post.test.score+messages+forum.posts, data=so, method="class")
so$pred <- predict(c.tree1, so, type = "prob")[,2]


pred.detail <- prediction(so$pred, so$level.up) 
plot(performance(pred.detail, "tpr", "fpr"))
abline(0, 1, lty = 2)

这是输出,如果你正在寻找:

IMAGE1