0

我必须使用 LOO 交叉验证来比较不同的模型(OLS、BEST SUBSET、RIDGE、LASSO、PCR 和 PLS)(比较的标准是测试 MSE)。有人可以解释我怎么做(可能使用示例数据集)吗?我需要R代码。谢谢你们!

PS:对不起我的英语,但我会说另一种语言。

好的,我尝试使用“caret”包:

library(ISLR)

library(caret)

library(forecast)

myControl <- trainControl(method='LOOCV')

LM <- train(Salary~., data=Hitters, method=lm, 
            trControl=myControl)

Step <- train(Salary~., data=Hitters, method='leapSeq', 
                   trControl=myControl)

Ridge <- train(Salary~., data=Hitters, method='ridge', 
               trControl=myControl)

Lasso <- train(Salary~., data=Hitters, method='lasso', 
               trControl=myControl)

PLS <- train(Salary~., data=Hitters, method="pls", 
             trControl=myControl)

PCR <- train(Salary~., data=Hitters, method='pcr', 
             trControl=myControl)

如何设置参数 lambda、ncomp 和 nvmax?谢谢你们!

4

1 回答 1

0

我认为使用 Caret 包可以做到这一点:install.packages("caret"). Caret 的优点是可以同时运行多个不同的模型并比较性能。但是,我不确定您是否可以找到您请求的所有模型,但如果您的模型在那里,请查看以下列表:http: //topepo.github.io/caret/modelList.html。我还建议阅读教程:http ://www.edii.uclm.es/~user-2013/Tutorials/kuhn/user_caret_2up.pdf 。

于 2015-05-23T11:32:29.907 回答