Как указать выбранную лямбду для соответствия лассо в 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 полагается на скорость запуска прогрева и часто быстрее подходит для всего пути, чем для вычисления одной подгонки.