Zaprogramowałem regresję logistyczną przy użyciu algorytmu IRLS . Chciałbym zastosować karę LASSO , aby automatycznie wybrać odpowiednie funkcje. Przy każdej iteracji rozwiązuje się następujące kwestie:
Niech będzie nieujemną liczbą rzeczywistą. Nie penalizuję przechwytywania, jak sugerowano w The Elements of. Nauka statystyczna . To samo dotyczy już zerowych współczynników. W przeciwnym razie odejmuję termin z prawej strony:
Jednak nie jestem pewien co do modyfikacji algorytmu IRLS. Czy to właściwy sposób?
Edycja: Chociaż nie byłem tego pewien, oto jedno z rozwiązań, które w końcu wymyśliłem. Co ciekawe, to rozwiązanie odpowiada temu, co teraz rozumiem na temat LASSO. W każdej iteracji istnieją rzeczywiście dwa kroki zamiast tylko jednego:
- pierwszy krok jest taki sam jak poprzednio: wykonujemy iterację algorytmu (tak jakby we wzorze na gradient powyżej),
- drugi krok jest nowy: stosujemy miękki próg dla każdego komponentu (z wyjątkiem komponentu , który odpowiada przecięcia) wektora uzyskanego w pierwszym kroku. Nazywa się to iteracyjnym algorytmem miękkiego progowania . β