插入符号包似乎没有应用配方过程来删除用于交叉验证的NA。我想我忽略了什么。。。
iris_dt <- as.data.table(iris)
iris_dt[3:5,':='(Petal.Length=NA)]
control <- trainControl(method='cv',number=2,allowParallel = T)
rec <- recipe(Petal.Length ~ Sepal.Width,iris_dt) %>% step_naomit(all_outcomes(),all_predictors())
train(rec,iris_dt,method='lm',trControl = control)
分位数错误。默认值(y,probs=seq(0,1,length=cuts((:缺少值,并且如果"na.rm"为FALSE ,则不允许使用NaN
当回归器为NA但给出不同的错误消息时,它也不起作用。当数据被准备、烘焙并传递到train(.)
的x/y接口时,它就工作了。
非常感谢你的提示。
配方工作正常,但重新采样是在使用配方之前创建的。您应该在调用train
或使用公式方法之前删除它们
> iris_dt <- as.data.table(iris)
> iris_dt[3:5,':='(Petal.Length=NA)]
> control <- trainControl(method='cv',number=2,allowParallel = T)
> rec <- recipe(Petal.Length ~ Sepal.Width,iris_dt) %>% step_naomit(all_outcomes(),all_predictors())
> train(Petal.Length ~ Sepal.Width,iris_dt,method='lm',trControl = control, na.action = na.omit)
Linear Regression
150 samples
1 predictor
No pre-processing
Resampling: Cross-Validated (2 fold)
Summary of sample sizes: 74, 73
Resampling results:
RMSE Rsquared MAE
1.610659 0.1885815 1.363651
Tuning parameter 'intercept' was held constant at a value of TRUE