Является ли caret
пакет R перекрестной проверки как для модели, так alpha
и lambda
для glmnet
нее? Запуск этого кода,
eGrid <- expand.grid(.alpha = (1:10) * 0.1,
.lambda = (1:10) * 0.1)
Control <- trainControl(method = "repeatedcv",repeats = 3,verboseIter =TRUE)
netFit <- train(x =train_features, y = y_train,
method = "glmnet",
tuneGrid = eGrid,
trControl = Control)
Журнал тренировок выглядит следующим образом.
Fold10.Rep3: alpha=1.0, lambda=NA
Что lambda=NA
значит?
r
machine-learning
cross-validation
caret
glmnet
mrquestion
источник
источник
Ответы:
train
настраивает на обоихПо сути, вам нужно только
alpha
при обучении и можете получать прогнозы по различным значениямlambda
использованияpredict.glmnet
. Может быть, значениеlambda = "all"
или что-то еще было бы более информативным.Максимум
источник
Старый вопрос, но мне недавно пришлось столкнуться с этой проблемой и нашел этот вопрос в качестве справочного.
Вот альтернативный подход:
Виньетка glmnet ( https://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html ) специально решает эту проблему, рекомендуя указывать сгибы перекрестной проверки с помощью аргумента foldids и проверять по сетке . При этом используются одинаковые cv-сгибы для проверки для каждого в вашей сетке.α λ αλ α λ α
Причина, по которой это может быть лучше одновременной проверки и заключается в том, что cv.glmnet проверяет используя «теплый старт» для выбора а не просто случайный выбор то есть ускорение проверки и повышение вероятности появления оптимальный в вашей сетке (так как мелкие сетки дороже в вычислительном отношении).λ λ λ λ > 0 λα λ λ λ λ>0 λ
источник