NA 对 Caret Train 的影响

NA impact in Caret Train

按照下面 link 中报告的示例,我有以下错误:

Using nnet for prediction, am i doing it right?

Error in na.fail.default(list(y = c(0, 0.0998334166468282, 0.198669330795061, : missing values in object

为了解决这个错误我使用条件 na.action = na.omit

#Fit model
model <- train(y ~ x1 + x2, te, method='nnet', linout=TRUE, trace = FALSE,
               #Grid of tuning parameters to try:
               tuneGrid=expand.grid(.size=c(1,5,10),.decay=c(0,0.001,0.1)),
               na.action = na.omit) 
ps <- predict(model, te)

is.na(te)
nrow(te)
nrow(ps)

这个条件是唯一可以继续的方法吗?

事实上,结果是 ps 的行数与 ps 数据的行数不同。

鉴于您的数据滞后,这可能是最好的方法。请注意:

> sum(!complete.cases(te))
[1] 2

模型无法预测这些,这就是为什么

> nrow(ps)
[1] 199
> nrow(te)
[1] 201

这是因为:

> formals(predict.train)$na.action
na.omit

(注意 这可能会在下一版本的软件包中更改为 na.fail)