Programowanie kwadratowe i Lasso


11

Próbuję wykonać regresję lasso, która ma następującą postać:

Minimalizuj w( Y - X w ) ′ ( Y - X w ) + λw(Y−Xw)′(Y−Xw)+λ|w|1

Biorąc pod uwagę , doradzono mi, aby znaleźć optymalne za pomocą programowania kwadratowego, które przyjmuje następującą postać:wλw

Minimalizuj w , z zastrzeżeniem1xAx≤b.12x′Qx+c′xAx≤b.

Teraz zdaję sobie sprawę, że termin należy przekształcić w termin , co jest dość proste. Jednak jakoś nie rozumiem, jak mógłbym przenieść pierwszy człon pierwszego równania do pierwszego członu drugiego. Nie mogłem znaleźć dużo na ten temat w sieci, więc postanowiłem zapytać tutaj.A x ≤ bλAx≤b

Odpowiedzi:


10

Pamiętając, że pracujemy z jako zmienną „ ” w standardowej formie, rozwiń i zbieraj terminy w i i , a stałymi.x ( Y - X w ) ′ ( Y - X w ) w ′wx(Y−Xw)′(Y−Xw)w ′ ww′[something]ww′w

Wyjaśnij, dlaczego możesz zignorować stałe.

Wyjaśnić, dlaczego można połączyć oraz kategoriach. ww′w


Jak BananaCode został już zorientowali się, ze niektórzy wiodący wzdłuż ścieżki, można napisać i lub prościej, można po prostu napisać i (ponieważ i mają ten sam argmin dla dowolnego ).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


Stałe można zignorować, ponieważ jeśli x_ jest minimum do f (x), to x_ + c jest minimum f (x) + c, stąd możemy zignorować stałą c. Przeredaguję moje pytanie, aby pokazać, gdzie utknąłem.
— spurra

Banana Kod wyjaśnienia ma kilka wad. Jeśli przez „jest minimalna do ” masz na myśli „jest argument, w którym f ( x ) jest zminimalizowane”, można powiedzieć coś w stylu „ x * jest argmin od f ”. Ale twój wniosek jest błędny. Jeśli dodasz c do f , nie dodasz c do argmin. f(x)f(x)x∗argminfcfc
— Glen_b

Zobacz gdzie napisałem moim odpowiedź? Jakie jestcoś,co teraz masz między w ' i w na dole pytania? w′[something]ww′w
— Glen_b

Tak, przeznaczona IS R G dla M i n w f . Czy możesz podać przykład, w którym mój wniosek jest błędny? [ E o m e t H i n g ] jest P matrycy mi próby formy. Jeśli rozwinę w ′ ( X ′ X w - X ′ Y ) , otrzymam w ′ X ′ X w - w ′ X ′x∗argminf[something]Qw′(X′Xw−X′Y) . Pierwsza część stanowiłaby formę Q matrycy, jednak nie można się pozbyć drugi składnik - w ' X ' Y . w′X′Xw−w′X′YQ−w′X′Y
— spurra

1
@ AD.Net Ograniczenia są w większości ujęte w drugiej odpowiedzi.
— Glen_b

11

Chciałem dodać, jak rozwiązać transformację ograniczeń w użyteczną formę do programowania kwadratowego, ponieważ nie jest to tak proste, jak myślałem. Nie można znaleźć prawdziwej macierzy A takiej, że A w ≤ s ↔ ∑ | w i | ≤ s .∑|wi|≤sAAw≤s↔∑|wi|≤s

Metoda I zastosowano do dzielenia elementów wektora W w W + I i W - I tak, w I = W + I - W - I . Jeśli w i ≥ 0 , masz w + i = w i oraz w - i = 0 , w przeciwnym razie masz w - i = | w i | i wwiwwi+wi−wi=wi+−wi−wi≥0wi+=wiwi−=0wi−=|wi|. Lub bardziej matematycznie,w + i =| wi| +wiwi+=0 orazw - i =| wi| -wiwi+=|wi|+wi2Zarównow - i, jak iw + i są liczbami nieujemnymi. Pomysł dzielenia liczb jest taki, że masz| wi| =w + i +w - i , skutecznie pozbywając się wartości bezwzględnych.wi−=|wi|−wi2.wi−wi+|wi|=wi++wi−

Funkcja optymalizacji zmienia się w: , z zastrzeżeniem w + i +w - i ≤s,12(w+−w−)TQ(w+−w−)+cT(w+−w−)wi++wi−≤s,wi+,wi−≥0

Gdzie i c podano jak podano powyżej przez Glen_bQc

To musi zostać przekształcone w użyteczną formę, tzn. Potrzebujemy jednego wektora. Odbywa się to w następujący sposób:

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

z zastrzeżeniem

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

Gdzie jest macierzą D- wymiarowej jednostki, s D jest wektorem D- wymiarowym składającym się tylko z wartości s, a 0 D jest w wymiarze wektora zerowego 2 ∗ D. Pierwsza połowa zapewnia | w i | = w + i + w - i ≤ s , drugie w + i , w - i ≥ 0 Teraz w użytecznej formie można użyć programowania kwadratowego do wyszukiwaniaIDDsDDs0D2∗D|wi|=wi++wi−≤swi+,wi−≥0 i w - , biorąc pod uwagę s . Po wykonaniu tego optymalnym parametrem w odniesieniu do s jest w = w + - w - .w+w−ssw=w+−w−

Źródło i dalsze czytanie: Rozwiązywanie problemu programowania kwadratowego z ograniczeniami liniowymi zawierającymi wartości bezwzględne


Załóżmy, że znaleźliśmy optymalny -wymiarową wektor ( w + , w - ) . Co zapewnia, że w + i w - są w rzeczywistości dodatnimi i ujemnymi częściami niektórych wektorów w , tzn. Że ich pozycje wejścia 0 pasują do siebie? 2D(w+,w−)w+w−w0
— Myath

Macierz i wektor w ostatecznym wyrażeniu mogą być prostsze, a właściwie bardziej poprawne. Zamiast [Id Id] [w + w-] '≤ Sd można po prostu umieścić [1 1 .... 1] [w + w-]' ≤ s. Jest to dosłownie równoważne z ∑ | wi | = ∑ (wi + + wi−) ≤ s.
— Marko,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.