Сравнение разных моделей методом 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.