Сравнение разных моделей методом LOOCV

Я должен сравнить различные модели (OLS, BEST SUBSET, RIDGE, LASSO, PCR и PLS), используя перекрестную валидацию LOO (критерием сравнения является тест-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? Спасибо вам всем!

1 ответ

Я думаю, что это возможно с пакетом 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.

Другие вопросы по тегам