【发布时间】:2017-09-27 21:10:12
【问题描述】:
最近完成了 Datacamp 的“机器学习工具箱”课程,我想应用我学到的东西:插入符号可以使用参数 preProcess = "medianImpute" 输入缺失值
如果我运行table(complete.cases(df)),我会得到:
FALSE TRUE
24429 6042
所以我需要对缺失值做一些事情。 video 让它看起来如此简单!
mod.lm.medians <- train(target ~.,
data = train,
trControl = train_control,
method = "lm",
preProcess = "medianImpute")
给予:
na.fail.default(list(target = c(5850000L, 6000000L, 5700000L, : 对象中的缺失值
我找到了另一个 SO 答案 here,它告诉我不要尝试 na.action=na.exclude,它可以让我的模型运行,但只能在完整的情况下运行,这不是我想要的。
我对插入符号的预处理参数的理解不正确吗?我预计缺失值将替换为 df 中每个观察值的特征中值。相反,我得到了这个错误。
【问题讨论】:
-
要进行调查,您可以使用
predict(preProcess(train, method=c("medianImpute")), train)之类的东西单独运行预处理,这两个步骤的原因是preProcess是从训练集学习的,但也需要应用于测试集.这里我们只是重新申请训练看看效果 -
嗨,我在控制台中输入了它并运行。虽然我不追!请 ELI5 并尽可能使用蜡笔和乐高积木。 IE。我不知道我刚刚跑了什么。我如何将它应用到我的模型中?
-
这里是a pretty good article on caret pre processing。每种转换都有点重复。
-
感谢您的链接。实际上,我在搜索解决方案时偶然发现了它。会通读。希望识别此插入符号错误的人也能看到并发表评论
-
我不知道您是否找到任何解决此问题的方法。我在真实数据集上练习时尝试完全相同的东西(datacamp)并得到了同样的错误。
标签: r na r-caret data-science