GLMNET або LARS для обчислення рішень LASSO?


13

Я хотів би отримати коефіцієнти для проблеми LASSO

||YXβ||+λ||β||1.

Проблема полягає в тому, що функції glmnet та lars дають різні відповіді. Для функції glmnet я запитую коефіцієнтизамість просто , але я все одно отримую різні відповіді.λλ/||Y||λ

Це очікується? Який взаємозв'язок між lars та glmnet ? Я розумію, що glmnet швидше вирішує проблеми LASSO, але я хотів би знати, який метод є більш потужним?λλλ


deps_stats Я боюся, що розмір мого набору даних настільки великий, що LARS не може впоратися з ним, тоді як, з іншого боку, glmnet може обробляти мій великий набір даних.

mpiktas Я хочу знайти рішення (Y-Xb) ^ 2 + L \ sum | b_j | але коли я запитую у двох алгоритмів (lars & glmnet) про їх обчислені коефіцієнти для конкретного L, я отримую різні відповіді ... і мені цікаво, чи правильно / очікується? або я просто використовую неправильну лямбда для двох функцій.


1
наведіть приклад, що ілюструє вашу проблему. Також як ви визначаєте потужність алгоритму?
mpiktas

1
Я використовував пакети glmnet та lars у кількох проектах. У моєму обмеженому досвіді у мене було багато проблем з реалізацією glmnet. Я думаю, що glmnet потребує певних виправлень помилок щодо типу змінних, що використовуються в кадрі даних. Крім того, у glmnet є заплутана документація. Я закінчила використання ларів, і я була дуже задоволена результатами. Не забувайте про розмір вашої проблеми, я думаю, що ліри можуть впоратися.
deps_stats

"Проблема полягає в тому, що функції glmnet та lars дають різні відповіді." у мене така ж проблема. Будь-які відповіді?
грант

Принципово різні відповіді на коефіцієнти? І тільки читаючи оригінальний пост, ви дійсно не повинні просити єдиного лямбда-рішення glmnetі, швидше за все, також не від реалізації LARS. Вони пропонують цілий спектр рішень за спектром зміщення та дисперсії. Що ускладнює порівняння фактичних коефіцієнтів. Але все-таки ті самі змінні, ймовірно, повинні стати ненульовими в аналогічному порядку.
Ши Паркес

Відповіді:


14

На мій досвід, LARS швидше для невеликих проблем, дуже рідкісних проблем або дуже "широких" проблем (набагато більше функцій, ніж зразки). Дійсно, його обчислювальна вартість обмежена кількістю вибраних функцій, якщо не обчислити повний шлях регуляризації. З іншого боку, для великих проблем glmnet (оптимізація спуску координат) відбувається швидше. Крім усього іншого, координатний спуск має гарну схему доступу до даних (зручна для пам'яті), і він може отримати вигоду від надмірності даних у дуже великих наборах даних, оскільки він зближується з частковими наближеннями. Зокрема, він не страждає від сильно корельованих наборів даних.

Висновок, що ми (основні розробники scikit-learn ) теж прийшли, що якщо у вас немає сильних апріорних знань про ваші дані, вам слід скористатися glmnet (або координувати оптимізацію спуску, щоб поговорити про алгоритм, а не ніж реалізація).

Цікаві орієнтири можна порівняти в тезі Жюльєна Майрала:

http://www.di.ens.fr/~mairal/resources/pdf/phd_thesis.pdf

Розділ 1.4, зокрема 1.4.5 (стор. 22)

Жульєн приходить до дещо інших висновків, хоча його аналіз проблеми подібний. Я підозрюю, що це тому, що його дуже цікавили дуже широкі проблеми.


Більшість ваших відповідей зроблені на CW (тут, але також на metaoptimize.com/qa) ... Будь-яка причина чому?
chl

1
Тому що я думаю, що добре, якщо люди можуть виправити помилки, неправильні висловлювання ... Мені подобається ідея постійного вдосконалення відповідей. Це проти кращої практики?
Gael Varoquaux

2
Я зафіксував два-три друкарські помилки. Нічого не пов’язаного з CW per se, якщо ви не думаєте про нижню репліку, необхідну для редагування своєї публікації! Однак користувачі можуть запропонувати будь-які зміни; але, якщо відповідь CW не дозволить вам заробити реп. Напевно, ти не після реп, але як завжди були відповіді на твої відповіді, мені було просто цікаво ... Ура.
chl

1

LASSO не унікальний у випадку, коли кілька функцій мають ідеальну колінеарність. Ось простий мислительний експеримент, щоб довести це.

yx1x2yx1x2yx1x2β1=1Pβ2=0Pβ1=0β21P


2
@dsmcha, вибачте, що це сказати, але я не думаю, що мені дуже подобається цей приклад. Відповідь ідентична двом із прогнозів? На мій погляд, це поза патологічним.
кардинал

1

Ларс і Glmnet дають різні рішення проблеми Лассо, оскільки вони використовують дещо різні об'єктивні функції та різні стандартизації даних. Ви можете знайти детальний код для відтворення у відповідному питанні Чому Ларс та Глмнет дають різні рішення для проблеми Лассо?

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