caret 确实训练了不同的模型,但通常使用不同的超参数来完成。您可以查看该过程的说明。超参数不能直接从数据中学习,所以你需要训练过程。这些参数决定了你的模型将如何表现,例如你在套索中有 lambda,它决定了对模型应用了多少正则化。
在 glm 中,没有要训练的超参数。我想您正在寻找的是从许多潜在变量中选择最佳线性模型的东西。您可以使用 step()
fit = lm(mpg ~ .,data=mtcars)
step(fit,direction="back")
另一种选择是使用带有插入符号的跳跃,例如上面的等价物将是:
train(mpg~ .,data=mtcars,method='leapBackward', trControl=trainControl(method="cv",number=10),tuneGrid=data.frame(nvmax=2:6))
Linear Regression with Backwards Selection
32 samples
10 predictors
No pre-processing
Resampling: Cross-Validated (10 fold)
Summary of sample sizes: 30, 28, 28, 28, 30, 28, ...
Resampling results across tuning parameters:
nvmax RMSE Rsquared MAE
2 3.299712 0.9169529 2.783068
3 3.124146 0.8895539 2.750305
4 3.249803 0.8849213 2.853777
5 3.258143 0.8939493 2.823721
6 3.123481 0.8917197 2.723475
RMSE was used to select the optimal model using the smallest value.
The final value used for the model was nvmax = 6.
您可以在本网站上查看有关使用跳跃的变量选择的更多信息