我一直在尝试使用插入符号包对模型进行k-fold验证。我已经运行lm()取得了一些成功,但是当我尝试用插入符号时,它失败了。步骤进行:
train_control <- trainControl(method="cv", number=10)
grid <- expand.grid(.fL=c(0), .usekernel=c(FALSE))
model <- train(FantasyPTS ~ Shoots + Height + Weight + Birthyear +
age + Draft_Year + Overall_Draft_Num + Draft_Team + Draft_Age +
GAA + SVPCT + GSAA + QS + QS. + RBS + GPS, data=nhlgoalies, trControl=train_control, method="lm", tuneGrid=grid)
结果
Error in train.default(x, y, weights = w, ...) :
The tuning parameter grid should have columns intercept
我的理解始终是模型本身应该生成拦截。我知道从阅读文档它需要参数拦截但我不知道如何在模型本身创建之前生成它?
答案 0 :(得分:1)
你没有给出数据集的链接,所以我生成了一个例如。
所以你只需要指定 ## Make data
ncol <- 3
Xs <- matrix(rnorm(300*ncol), nrow = 300, ncol = ncol) %>% as.tibble()
Yvec <- rnorm(300)
train_control <- trainControl(method="cv", number=10)
## Fit lm model using train
fit <- train(x= Xs, y = Yvec, method = "lm",trControl = train_control)
参数即可。