Квадратичне програмування та Лассо


11

Я намагаюся виконати регресію ласо, яка має таку форму:

Мінімізуйте вw(Y−Xw)′(Y−Xw)+λ|w|1

З огляду на , мені порадили знайти оптимальне за допомогою квадратичного програмування, яке приймає таку форму:λw

Мінімізуйте in , відповідно доx12x′Qx+c′xAx≤b.

Тепер я усвідомлюю, що термін повинен бути перетворений в обмежувальний термін , який досить прямолінійний. Однак я якось просто не бачу, як я міг би перенести перший додаток першого рівняння в перший додаток другого. Я не зміг знайти багато про це в мережі, тому вирішив попросити тут.λAx≤b

Відповіді:


10

Маючи на увазі, що ми працюємо зі як змінною ' ' у стандартній формі, розгорніть і збирайте терміни в і в і , і константи.x ( Y - X w ) ′ ( Y - X w ) w ′wx(Y−Xw)′(Y−Xw)w ′ ww′[something]ww′w

Поясніть, чому ви можете ігнорувати константи.

Поясніть, чому ви можете комбінувати терміни і . ww′w


Оскільки BananaCode вже розібрався з деякими ведучими по шляху, ви можете написати і або простіше, ви можете просто написати і (оскільки і мають однаковий аргмін для будь-якого ).c = - 2 X ′ Y Q = X ′ X c = - X ′ Y f ( x ) k f ( x ) k > 0Q=2X′Xc=−2X′Y Q=X′Xc=−X′Yf(x)kf(x)k>0


Константи можна ігнорувати, тому що якщо x_ є мінімальним f (x), то x_ + c - мінімум f (x) + c, отже, ми можемо ігнорувати постійну c. Я відредагую своє запитання, щоб показати, де я застряг.
— шпора

BananaCode ваше пояснення має кілька недоліків. Якщо під "є мінімум до " ви маєте на увазі "аргумент, при якому мінімізований", ви говорите щось на кшталт " є of ". Але ваш висновок там неправильний. Якщо ви додасте до , ви не додасте до аргміна. f ( x ) x ∗ argmin f c f cf(x)f(x)x∗argminfcfc
— Glen_b -Встановити Моніку

Подивіться, де я написав у своїй відповіді? Що - то тепер у вас є між а в нижній частині вашого питання ?? w ′ ww′[something]ww′w
— Glen_b -Встановити Моніку

Так, я мав в виду є з . Чи можете ви навести приклад, коли мій висновок невірний? є матриці Я намагаюся сформувати. Якщо я я отримую . Перша частина буде представляти собою форму матриці , проте я не можу позбутися другого члена . x∗argminf[something]Qw′(X′Xw−X′Y)w′X′Xw−w′X′YQ−w′X′Y
— шпора

1
@ AD.Net Обмеження в основному охоплені в іншій відповіді.
— Glen_b -Встановіть Моніку

11

Я хотів додати, як вирішити перетворення обмежень у використаній формі для квадратичного програмування, оскільки це не так просто, як я думав. Неможливо знайти справжню матрицю таку, що .∑|wi|≤sAAw≤s↔∑|wi|≤s

Я використовував підхід, щоб розділити елементи вектора на і , так що . Якщо , у вас є і , інакше у васі . Або, більш математично, іІ і - це негативні числа. Ідея розподілу чисел вгору полягає в тому, що тепер у вас єwiwwi+wi−wi=wi+−wi−wi≥0wi+=wiwi−=0wi−=|wi|wi+=0wi+=|wi|+wi2wi−=|wi|−wi2.wi−wi+|wi|=wi++wi−, ефективно позбувшись абсолютних значень.

Функція оптимізації перетворюється на: , предмет до 12(w+−w−)TQ(w+−w−)+cT(w+−w−)wi++wi−≤s,wi+,wi−≥0

Де і задані, як зазначено вище Glen_bQc

Це потрібно перетворити на зручну форму, тобто нам потрібен один вектор. Це робиться наступним чином:

12[w+w−]T[Q−Q−QQ][w+w−]+[cT−cT][w+w−]

на тему

[IDID−I2D][w+w−]≤[sD02D]

Де - одинична матриця, - -вимірний вектор, що складається лише зі значення і a -вимірний нульовий вектор. Перша половина забезпечує , другий Тепер це у використаній формі використовувати квадратичне програмування для пошуку і , заданих . Після цього ваш оптимальний параметр відносно - . D s D D s 0 D 2 ∗ D | w i | = w + i + w - i ≤ s w + i , w - i ≥ 0 w + w - s s w = w + - w -IDDsDDs0D2∗D|wi|=wi++wi−≤swi+,wi−≥0w+w−ssw=w+−w−

Джерело та подальше читання: Розв’язування задачі квадратичного програмування лінійними обмеженнями, що містять абсолютні значення


Припустимо, що ми знайшли оптимальний розмірний вектор . Що забезпечує, що і насправді позитивні частини та негативні частини деякого вектора , тобто їх вхідних позицій збігаються? ( w + , w - ) w + w - w 02D(w+,w−)w+w−w0
— Myath

Матриця і вектор в остаточному вираженні можуть бути більш простими, а насправді більш правильними. Замість [Id Id] [w + w−] '≤ Sd ви можете просто поставити [1 1 .... 1] [w + w-]' ≤ s. Це буквально еквівалентно ∑ | wi | = ∑ (wi + + wi−) ≤ s.
— Марко
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.