Metodi di regolarizzazione per la regressione logistica


42

La regolarizzazione usando metodi come Ridge, Lasso, ElasticNet è abbastanza comune per la regressione lineare. Volevo sapere quanto segue: questi metodi sono applicabili per la regressione logistica? In tal caso, esistono differenze nel modo in cui devono essere utilizzate per la regressione logistica? Se questi metodi non sono applicabili, come si fa a regolarizzare una regressione logistica?


Stai osservando un determinato set di dati e quindi devi considerare di rendere i dati trattabili per il calcolo, ad esempio selezionando, ridimensionando e scostando i dati in modo che il calcolo iniziale tenda ad avere successo. Oppure si tratta di uno sguardo più generale su come e perché (senza un set di dati specifico per calcolare contro0?
Philip Oakley

1
Questo è uno sguardo più generale su come e perché della regolarizzazione. Testi introduttivi per i metodi di regolarizzazione (cresta, Lazo, Elasticnet ecc.) Che mi sono imbattuto in esempi di regressione lineare specificamente menzionati. Nessuno ha menzionato specificamente la logistica, quindi la domanda.
PRENDI l'

1
La regressione logistica è una forma di GLM che utilizza una funzione di collegamento non identitario, quasi tutto si applica.
Firebug

1
Ti sei imbattuto nel video di Andrew Ng sull'argomento?
Antoni Parellada,

La regressione della cresta, del lazo e della rete elastica sono opzioni popolari, ma non sono le uniche opzioni di regolarizzazione. Ad esempio, le matrici di smoothing penalizzano le funzioni con seconde derivate grandi, in modo che il parametro di regolarizzazione ti consenta di "comporre" una regressione che è un buon compromesso tra sovra e sottoadattamento dei dati. Come per la regressione della cresta / lazo / rete elastica, questi possono anche essere usati con la regressione logistica.
Ripristina Monica il

Risposte:


49

Sì, la regolarizzazione può essere utilizzata in tutti i metodi lineari, inclusi regressione e classificazione. Vorrei mostrarvi che non ci sono troppe differenze tra regressione e classificazione: l'unica differenza è la funzione di perdita.

In particolare, ci sono tre componenti principali del metodo lineare, funzione di perdita, regolarizzazione, algoritmi . Laddove la funzione di perdita più la regolarizzazione è la funzione obiettivo nel problema in forma di ottimizzazione e l'algoritmo è il modo di risolverlo (la funzione obiettivo è convessa, non discuteremo in questo post).

L(y^,y)=(y^y)2L(y^,y)=|y^y|L()yy^

L(y^,y)=log(1+exp(y^y))L(y^,y)=(1y^y)+y{1,1}y^y^

Nell'impostazione di regolarizzazione, hai menzionato la regolarizzazione L1 e L2, ci sono anche altri moduli, che non saranno discussi in questo post.

Pertanto, ad un livello elevato è un metodo lineare

minimizew   x,yL(wx,y)+λh(w)

Se si sostituisce la funzione Perdita dall'impostazione della regressione alla perdita logistica, si ottiene la regressione logistica con la regolarizzazione.

Ad esempio, nella regressione della cresta, il problema di ottimizzazione è

minimizew   x,y(wxy)2+λww

Se si sostituisce la funzione di perdita con la perdita logistica, il problema diventa

minimizew   x,ylog(1+exp(wxy))+λww

Qui hai la regressione logistica con la regolarizzazione L2.


Ecco come appare in un set di dati binari sintetizzato giocattolo. La figura a sinistra mostra i dati con il modello lineare (limite decisionale). La figura giusta è il contorno della funzione obiettivo (gli assi xey rappresentano i valori per 2 parametri). Il set di dati è stato generato da due gaussiani e adattiamo il modello di regressione logistica senza intercettazione, quindi ci sono solo due parametri che possiamo visualizzare nella figura secondaria giusta.

Le linee blu sono la regressione logistica senza regolarizzazione e le linee nere sono la regressione logistica con regolarizzazione L2. I punti blu e nero nella figura a destra sono parametri ottimali per la funzione obiettivo.

λ0

inserisci qui la descrizione dell'immagine

Ecco un altro esempio con la regolarizzazione L1.

inserisci qui la descrizione dell'immagine

Si noti che, lo scopo di questo esperimento è cercare di mostrare come funziona la regolarizzazione nella regressione logistica, ma non sostenere che il modello regolarizzato sia migliore.


λλ0

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine


wxyy^=f(x)=wx1

yy{1,1}

y^=wxy^yy^=wx{1,1}y^

y{0,1}

Il codice può essere trovato nella mia altra risposta qui.

Esiste una spiegazione intuitiva del perché la regressione logistica non funzionerà per un caso di separazione perfetta? E perché l'aggiunta di regolarizzazione lo risolverà?


4
wTxf(x)

Grazie per la risposta @ hxd1011, puoi spiegare cosa rappresentano le linee nere continue nel grafico di contorno? Per essere più precisi, so che (come hai spiegato) gli assi xey mostrano i 2 parametri che usiamo. Ma per quanto riguarda le linee continue e i loro numeri come 8000, 10000, 12000. Grazie!
Jespar,


12

l(β)=l(β)+12ln|i(β)|
i(β)=1nipi(1pi)xixi{(yi,xi)={(1,1),(0,0)}avrebbe nominalmente produrre stime infinite ML, ed glmin Rè ancora suscettibile al problema, credo.

1
Sì, puoi usare i pacchetti R logistf o brglm per questo! Forse vale la pena ricordare ...
Tom Wenseleers il

i(β)

È dolorosamente lento, infatti, @appletree
StasK

h/21/2

6

Sì, è applicabile alla regressione logistica. In R, usando glmnet, si specifica semplicemente la famiglia appropriata che è "binomiale" per la regressione logistica. Ce ne sono un paio di altri (veleno, multinomiale, ecc.) Che puoi specificare in base ai tuoi dati e al problema che stai affrontando.


Unico inconveniente dell'utilizzo di glmnet per questo è che questo approccio non ti darebbe livelli di significatività. Se sei interessato a questi, allora i pacchetti R logistf o brglm sarebbero un modo migliore per andare ...
Tom Wenseleers,

@TomWenseleers ci sono anche metodi per l'avvio di glmnet per ottenere valori p. Tuttavia, è un po 'complicato poiché il bootstrap "normale" non funziona per i coefficienti di lazo
godspeed

Grazie per avermelo fatto notare, ho visto anche altri menzionarlo, ad esempio qui: stats.stackexchange.com/questions/34859/… , ma non riesco a trovare nulla di standard implementato in alcuni pacchetti R. Avresti qualche puntatore? O buona letteratura primaria su questo? L'
aspetto negativo

Ti riferisci a metodi come quelli implementati nel pacchetto R hdi, cran.r-project.org/web/packages/hdi/index.html ?
Tom Wenseleers,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.