最近完成了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中每个观察的特征的中位数。相反,我得到了这个错误。
答案 0 :(得分:0)
我遇到了完全相同的问题。我参加了名为“机器学习工具箱”的数据广告课程,它正在他们的控制台上工作,但它不适用于我的。
答案 1 :(得分:0)
我相信问题在于使用preProcess参数作为公式。尝试先进行预处理,然后再训练...
# first preprocess
preproc <- preProcess(train, method = "medianImpute")
trainPreProc<- predict(preproc,train)
mod.lm.medians <- train(target ~.,
data = train,
trControl = train_control,
method = "lm",
preProcess = "medianImpute")