Как указать выбранную лямбду для соответствия лассо в R - PullRequest
0 голосов
/ 22 мая 2018

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

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

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

1 Ответ

0 голосов
/ 22 мая 2018

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

Смежные вопросы здесь и здесь

...