Ho già un'idea dei pro e dei contro della regressione della cresta e del LASSO.
Per LASSO, il termine di penalità L1 produrrà un vettore di coefficienti sparsi, che può essere visto come un metodo di selezione delle caratteristiche. Tuttavia, ci sono alcune limitazioni per LASSO. Se le funzionalità hanno un'alta correlazione, LASSO selezionerà solo una di esse. Inoltre, per problemi in cui > , LASSO selezionerà al massimo parametri ( e sono rispettivamente il numero di osservazioni e parametri). Questi rendono empiricamente LASSO un metodo non ottimale in termini di prevedibilità rispetto alla regressione della cresta.
Per la regressione della cresta, offre una migliore prevedibilità in generale. Tuttavia, la sua interpretabilità non è piacevole come il LASSO.
La spiegazione sopra può essere trovata spesso nei libri di testo in machine learning / data mining. Tuttavia, sono ancora confuso su due cose:
Se normalizziamo l'intervallo di feature (diciamo tra 0 e 1, o con media zero e varianza unitaria) ed eseguiamo la regressione della cresta, possiamo ancora avere un'idea dell'importanza della feature ordinando i valori assoluti dei coefficienti (la caratteristica più importante ha il massimo valore assoluto di coefficienti). Sebbene non stiamo selezionando esplicitamente le funzionalità, l'interpretazione non viene persa utilizzando la regressione della cresta. Allo stesso tempo, possiamo ancora ottenere un elevato potere di predizione. Allora perché abbiamo bisogno di LASSO? Mi sto perdendo qualcosa qui?
LASSO è preferito per la sua natura di selezione delle caratteristiche? A mio avviso, i motivi per cui abbiamo bisogno della selezione delle funzionalità sono la capacità di generalizzare e la facilità di calcolo.
Per facilità di calcolo, non vogliamo inserire nel nostro modello tutte le 1 milione di funzioni se stiamo eseguendo alcune attività di PNL, quindi per prima cosa eliminiamo alcune funzioni ovviamente inutili per ridurre i costi di calcolo. Tuttavia, per LASSO, possiamo conoscere il risultato della selezione delle caratteristiche (il vettore sparse) solo dopo aver inserito tutti i dati nel nostro modello, quindi non beneficiamo di LASSO in termini di riduzione dei costi di calcolo. Possiamo solo fare previsioni un po 'più velocemente poiché ora inseriamo solo il sottoinsieme di funzionalità (diciamo 500 su 1 milione) nel nostro modello per generare risultati previsti.
Se LASSO è preferito per la sua capacità di generalizzazione, allora possiamo anche raggiungere lo stesso obiettivo usando la regressione della cresta (o qualsiasi altro tipo di regolarizzazione). Perché abbiamo ancora bisogno di LASSO (o reti elastiche)? Perché non possiamo semplicemente attenerci alla cresta della regressione?
Qualcuno potrebbe accendere alcune luci su questo? Grazie!