我在为我用rpart包创建的决策树创建ROC曲线时遇到了一个问题。我的目标是预测 "y "银行营销活动的成功。最后,你可以得到一个 "是 "或 "否 "的可能答案。我如何接近我的下一步ROC曲线图?
这是我目前的R代码。
library(caTools)
library(rpart)
library(rpart.plot)
set.seed(1234)
sample = sample.split(bank$y, SplitRatio = .75)
train = subset(bank, sample==TRUE)
test = subset(bank, sample==FALSE)
tree <-rpart(y ~.,method="class",data=train)
tree.preds<-predict(tree, test)
tree.preds<-as.data.frame(tree.preds)
joiner <- function(x) {if (x >= 0.5) {return("Yes") } else {return("No")}}
tree.preds$y <- sapply(tree.preds$yes, joiner)
table(tree.preds$y, test$y)
prp(tree)
首先对于ROC分析,你会希望得到数字预测,比如概率。
predict(tree, test, type="prob")
如果你的变量有 "是 "和 "否 "两个答案 你会得到两列相应的标签。我将假设 "是 "是第二个,并将其保存为预测值。
tree.preds <- predict(tree, test, type="prob")[, 2]
然后你就可以把这个直接插入ROC函数中 比如pROC提供的函数。
library(pROC)
tree.roc <- roc(test$y, tree.preds)
print(tree.roc)
plot(tree.roc)