Dlaczego glmnet używa „naiwnej” elastycznej siatki z oryginalnego papieru Zou & Hastie?


27

Oryginalny papier elastycznej siatki Zou & Hastie (2005) Regularyzacja i wybór zmiennych za pomocą elastycznej siatki wprowadzono funkcję elastycznej utraty siatki dla regresji liniowej (tutaj zakładam, że wszystkie zmienne są wyśrodkowane i skalowane do wariancji jednostkowej): ale nazwał to „naiwną elastyczną siecią”. Twierdzili, że wykonuje podwójny skurcz (lasso i grzbiet), ma tendencję do nadmiernego kurczenia się i można go poprawić, przeskalowując otrzymane rozwiązanie w następujący sposób: \ hat \ beta ^ * = (1+ \ lambda_2) \ hat \ beta. Podali kilka teoretycznych argumentów i eksperymentalnych dowodów, że prowadzi to do lepszej wydajności.

L=1nyXβ2+λ1β1+λ2β22,
β^=(1+λ2)β^.

Jednak w kolejnym glmnetartykule Friedman, Hastie i Tibshirani (2010) Ścieżki regularyzacji dla uogólnionych modeli liniowych poprzez zejście współrzędnych nie wykorzystały tego przeskalowania i miały tylko krótki przypis

Zou i Hastie (2005) nazwali tę karę naiwną elastyczną siatką i woleli przeskalowaną wersję, którą nazwali elastyczną siatką. Porzucamy tutaj to rozróżnienie.

Nie podano tam żadnych dalszych wyjaśnień (ani w żadnym podręczniku Hastie i in.). Uważam to za nieco zagadkowe. Czy autorzy pominęli przeskalowanie, ponieważ uważali, że jest to zbyt ad hoc ? ponieważ działał gorzej w niektórych dalszych eksperymentach? ponieważ nie było jasne, jak uogólnić to na przypadek GLM? Nie mam pojęcia. Ale w każdym razie glmnetpakiet stał się bardzo popularny od tego czasu i mam wrażenie, że w dzisiejszych czasach nikt nie używa przeskalowywania od Zou i Hastie, a większość ludzi prawdopodobnie nawet nie jest świadoma tej możliwości.

Pytanie: czy przeskalowanie to był dobry, czy zły pomysł?

Przy glmnetparametryzacji przeskalowanie Zou i Hastie powinno być

β^=(1+λ(1α))β^.

1
Ponieważ w artykule wstępnym celem jest dopasowanie całej ścieżki regularyzacji, być może chodzi o to, że przeskalowanie byłoby po prostu monotoniczną transformacją ścieżki?
Matthew Drury

1
@MatthewDrury To prawda, ale mimo to Friedman i in. uważali, że przeskalowanie jest dobrym pomysłem, nie zostawiliby go poza dokumentem, a w szczególności poza glmnetkodem. Nie jest tam dostępny nawet jako funkcja opcjonalna (ich wcześniejszy kod, który towarzyszył artykułowi z 2005 r., Oczywiście obsługuje przeskalowanie).
ameba mówi Przywróć Monikę

4
Niestety, publiczny kod glmnet jest całkowicie nieczytelny ...
Matthew Drury

Odpowiedzi:


25

Wysłałem to pytanie do Zou i Hastie i otrzymałem następującą odpowiedź od Hastie (mam nadzieję, że nie miałby nic przeciwko, żebym to tutaj zacytował):

Myślę, że w Zou i wsp. Martwiliśmy się o dodatkowe odchylenie, ale oczywiście przeskalowanie zwiększa wariancję. Więc po prostu przesuwa jeden wzdłuż krzywej kompromisowej wariancji. Wkrótce dołączymy wersję zrelaksowanego lasso, która jest lepszą formą przeskalowania.

Interpretuję te słowa jako poparcie dla jakiejś formy „przeskalowania” waniliowej elastycznej siatki, ale Hastie nie wydaje się już stać przy szczególnym podejściu przedstawionym w Zou i Hastie 2005.


Poniżej krótko przejrzę i porównam kilka opcji przeskalowania.

Będę używał glmnetparametryzacji straty z rozwiązaniem oznaczonym jako .

L=12nyβ0Xβ2+λ(αβ1+(1α)β22/2),
β^
  1. Podejście Zou & Hastie polega na użyciuZauważ, że daje to trochę nietrywialnego przeskalowania dla czystego grzbietu, gdy co prawdopodobnie nie ma większego sensu. Z drugiej strony nie daje to żadnego przeskalowania dla czystego lasso, gdy , pomimo różnych twierdzeń w literaturze, że estymator lasso mógłby skorzystać z pewnego przeskalowania (patrz poniżej).

    β^rescaled=(1+λ(1α))β^.
    α=0α=1
  2. W przypadku czystego lasso Tibshirani zasugerował użycie hybrydy lasso-OLS, tj. Zastosowanie estymatora OLS z wykorzystaniem podzbioru predyktorów wybranych przez lasso. Dzięki temu estymator jest spójny (ale cofa skurcz, co może zwiększyć oczekiwany błąd). To samo podejście można zastosować do elastycznej siatki ale potencjalnym problemem jest to, że elastyczna siatka może wybrać rozpadnie się więcej niż predyktorów i OLS (dla kontrastu, czysty lasso nigdy nie wybiera więcej niż predyktorów).

    β^elastic-OLS-hybrid=OLS(Xiβ^i0)
    nn
  3. Zrelaksowane lasso wspomniane w cytowanym powyżej e-mailu Hastie jest propozycją uruchomienia innego lasso na podzbiorze predyktorów wybranych przez pierwsze lasso. Chodzi o to, aby zastosować dwie różne kary i wybrać obie poprzez walidację krzyżową. Ten sam pomysł można zastosować do elastycznej siatki, ale wydaje się, że wymaga to czterech różnych parametrów regularyzacji, a ich dostrojenie jest koszmarem.

    Proponuję prostszy zrelaksowany schemat elastycznej siatki : po uzyskaniu wykonaj regresję grzbietu za pomocą i tej samej na wybranym podzbiorze predyktorów:To (a) nie wymaga żadnych dodatkowych parametrów regularyzacji, (b) działa na dowolną liczbę wybranych predyktorów, i (c) nie robi nic, jeśli zaczyna się od czystego grzbietu. Brzmi dobrze jak dla mnie.β^α=0λ

    β^relaxed-elastic-net=Ridge(Xiβ^i0).

Obecnie pracy z małym zbioru danych z oraz , w której jest dobrze przewidywane przez parę czołowych PCS . Porównuję wydajność powyższych estymatorów za pomocą 100-krotnego powtórzenia 11-krotnej walidacji krzyżowej. Jako miernik wydajności używam błędu testu, znormalizowanego, aby uzyskać coś w rodzaju R-kwadrat:Na poniższym rysunku linie przerywane odpowiadają waniliowej elastycznej estymatorze netto a trzy wykresy odpowiadają trzem podejściom przeskalowania:npn=44p=3000yX

Rtest2=1ytestβ^0Xtestβ^2ytestβ^02.
β^

wprowadź opis zdjęcia tutaj

Zatem przynajmniej w tych danych wszystkie trzy podejścia przewyższają estymator waniliowej elastycznej siatki, a „zrelaksowana elastyczna siatka” działa najlepiej.

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.