Шляхи коефіцієнтів - порівняння регресії хребта, ласо та пружної сітки


13

Мені хотілося б порівняти вибрані моделі з хребтом, ласо і еластичною сіткою. На рис. Нижче показані коефіцієнти шляхів з використанням усіх 3-х методів: конь (рис. А, альфа = 0), ласо (фіг. В; альфа = 1) і еластична сітка (фіг С; альфа = 0,5). Оптимальне рішення залежить від обраного значення лямбда, яке вибирається на основі перехресної перевірки.

Профілі коефіцієнтів для регресії хребта (А, альфа = 0), ласо (В, альфа = 1) та еластичної сітки (С, альфа = 0,5).  Цифри у верхній частині ділянки представляють розмір моделей. Оптимальне рішення залежить від обраного значення лямбда.  Вибір лямбда заснований на перехресній валідації.

Дивлячись на ці ділянки, я б очікував, що еластична сітка (рис. С) виявить ефект групування. Однак у цій справі це не зрозуміло. Шлях коефіцієнтів для ласо і пружної сітки дуже схожий. Що може бути причиною цього? Це просто помилка кодування? Я використав такий код у R:

library(glmnet)
X<- as.matrix(mydata[,2:22])
Y<- mydata[,23]
par(mfrow=c(1,3))
ans1<-cv.glmnet(X, Y, alpha=0) # ridge
plot(ans1$glmnet.fit, "lambda", label=FALSE)
text (6, 0.4, "A", cex=1.8, font=1)
ans2<-cv.glmnet(X, Y, alpha=1) # lasso
plot(ans2$glmnet.fit, "lambda", label=FALSE)
text (-0.8, 0.48, "B", cex=1.8, font=1)
ans3<-cv.glmnet(X, Y, alpha=0.5) # elastic net 
plot(ans3$glmnet.fit, "lambda", label=FALSE)
text (0, 0.62, "C", cex=1.8, font=1)

Код, який використовується для побудови контурів еластичних чистих коефіцієнтів, точно такий же, як для хребта та ласо. Єдина різниця - у значенні альфа. Альфа-параметр для еластичної регресії сітки був обраний на основі найнижчого значення MSE (середня квадратична помилка) для відповідних значень лямбда.

Дякую за твою допомогу !

Відповіді:


5

У випадку ( кількість коефіцієнтів, кількість вибірок, що за кількістю коефіцієнтів, які ви показуєте на графіках, я думаю, що це так), єдиною реальною "проблемою" для моделі Лассо є те, що коли декілька особливостей співвіднесені, вона схильна вибирати одну, а потім дещо випадково.p np<npn

Якщо оригінальні особливості не дуже співвіднесені, я б сказав, що розумно, що Лассо виконує аналогічну еластичній мережі в плані коефіцієнтів. Переглядаючи документацію для пакету glmnet , я також не бачу жодної помилки у вашому коді.


Дуже дякую за ваш коментар. Я почав думати про підхід до регуляризації для вибору найкращої моделі, тому що я спостерігав сувору мультиколінеарність між своїми змінними (VIF >> 10). Багато з них були співвіднесеними на рівні> 0,8. Тому я очікував, що еластична сітка по-різному виконає ласо і проявить ефект групування (у випадку корельованих змінних).
початківець

Можливо, вам доведеться просто застосувати більш сильний пенальті?
dcl

ви перевіряли df, налаштовану мультиколінеарність? Факторні змінні зазвичай мають мультиколінеарність, оскільки взаємовиключні. Я не знаю, чи створює такий тип мультиколінеарності проблеми з ласо.
Бакабург
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.