Ho programmato una regressione logistica usando l' algoritmo IRLS . Vorrei applicare una penalità LASSO per selezionare automaticamente le funzionalità giuste. Ad ogni iterazione, viene risolto quanto segue:
Sia un numero reale non negativo. Non sto penalizzando l'intercettazione come suggerito in The Elements of. Apprendimento statistico . Idem per i coefficienti già zero. Altrimenti, sottraggo un termine dal lato destro:
Tuttavia, non sono sicuro della modifica dell'algoritmo IRLS. È il modo giusto di fare?
Modifica: anche se non ero fiducioso, ecco una delle soluzioni che ho finalmente trovato. La cosa interessante è che questa soluzione corrisponde a ciò che ora capisco di LASSO. Ci sono infatti due passaggi per ogni iterazione anziché solo uno:
- il primo passo è lo stesso di prima: facciamo un'iterazione dell'algoritmo (come se nella formula per il gradiente sopra),
- il secondo passo è quello nuovo: applichiamo una soglia minima a ciascun componente (ad eccezione del componente , che corrisponde all'intercettazione) del vettore ottenuto al primo passo. Questo è chiamato algoritmo iterativo a soglia moderata . β