【发布时间】:2017-09-25 02:48:02
【问题描述】:
我是使用 R 的新手,我正在尝试构建决策树。我已经将包party 用于ctree 和rpart 用于rpart。
但是,由于我需要对我的模型进行交叉验证,我开始使用 caret 包,因为我可以通过使用函数 `train() 和我想使用的方法来做到这一点。
library(caret)
cvCtrl <- trainControl(method = "repeatedcv", repeats = 2,
classProbs = TRUE)
ctree.installed<- train(TARGET ~ OPENING_BALANCE+ MONTHS_SINCE_EXPEDITION+
RS_DESC+SAP_STATUS+ ACTIVATION_STATUS+ ROTUL_STATUS+
SIM_STATUS+ RATE_PLAN_SEGMENT_NORM,
data=trainSet,
method = "ctree",
trControl = cvCtrl)
但是,我的变量 OPENING_BALANCE 和 MONTHS_SINCE_EXPEDITION 有一些缺失值,因此函数无法正常工作。我不明白为什么会发生这种情况,因为我正在尝试构建一棵树。当我使用其他包时不会出现此问题。
这是错误:
Error in na.fail.default(list(TARGET = c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, :
missing values in object
我不想使用na.action=pass,因为我真的不想放弃这些观察结果。
我做错了吗?为什么会这样?您对此有什么建议吗?
【问题讨论】:
-
na.action = na.pass不会丢弃 na,它会传递它们,这意味着如果您使用不支持NA的predict函数,它将失败。na.action = na.omit会放弃这些观察。 -
你找到了吗?它也可能有帮助:stats.stackexchange.com/questions/144922/r-caret-and-nas
-
感谢您的回答。我发现的问题是,当我使用预测函数时,结果返回的观察结果比我在测试集上给出的观察结果要少得多。假设测试集有 30000 个观察值,我只收到 20000 个的预测,因为其中 10000 个在输入变量上有缺失值。
标签: r decision-tree missing-data r-caret rpart