在R中用rpart做决策树的ROC曲线。

问题描述 投票:0回答:1

我在为我用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) 
r roc rpart ctree
1个回答
1
投票

首先对于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)
© www.soinside.com 2019 - 2024. All rights reserved.