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
)
按照下面 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
)