【问题标题】:ROC Curve in R with rpart for a decision treeR中的ROC曲线与决策树的rpart
【发布时间】:2020-10-05 07:26:24
【问题描述】:

我在为 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】:

首先对于 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)

【讨论】:

  • @Meax Louis 只编辑了我的答案。但是,如果您认为它有用,请随时接受它。
猜你喜欢
  • 2021-01-13
  • 2015-08-29
  • 2016-05-26
  • 2018-01-04
  • 2020-05-18
  • 1970-01-01
  • 2013-02-09
  • 2021-05-30
  • 2015-01-08
相关资源
最近更新 更多