Как указать выбранную лямбду для соответствия лассо в R

Я нашел свою лучшую лямбду (для лассо) через 10-кратную перекрестную проверку в моем наборе данных тренировки и подтвержден тестовым набором данных. Теперь я хотел бы использовать свою лучшую лямбду для подгонки модели ко всему набору данных (используя как обучение, так и тестирование). Как мне указать выбранную лямбду, чтобы она подходила для моей финальной модели. Могу ли я использовать приведенный ниже код?

Final_model<-glmnet(x,y,family = "binomial",alpha = 1,lambda=lambda.min)

Пожалуйста, помогите, спасибо заранее.

1 ответ

Да, ты можешь. Вот пример этого кода, работающего с lambda.min установить в 1:

library(glmnet)
x=matrix(rnorm(100*20),100,20)
y=rep(0:1,50)
lambda.min=1
Final_model<-glmnet(x,y, family="binomial",alpha = 1,lambda=lambda.min)
Final_model

Call:  glmnet(x = x, y = y, family = "binomial", alpha = 1, lambda = lambda.min) 

     Df       %Dev Lambda
[1,]  0 -1.121e-15      1

Обновить

Если у вас есть предупреждающие сообщения во время выполнения, это может быть связано с использованием единственного лямбда-значения, это не рекомендуется в документации ?glmnet:

лямбда: предоставленная пользователем лямбда-последовательность. Типичное использование состоит в том, чтобы программа вычисляла собственную лямбда-последовательность на основе nlambda и lambda.min.ratio. Предоставление значения лямбда отменяет это. ВНИМАНИЕ: используйте с осторожностью. Старайтесь не указывать одно значение для лямбды (для прогнозов после CV используйте вместо него предикат ()). Вместо этого поставьте убывающую последовательность лямбда-значений. glmnet полагается на скорость запуска прогрева и часто быстрее подходит для всего пути, чем для вычисления одной подгонки.

Связанные вопросы здесь и здесь

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