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à?


20

Abbiamo molte buone discussioni sulla separazione perfetta nella regressione logistica. Come ad esempio, la regressione logistica in R ha provocato una separazione perfetta (fenomeno di Hauck-Donner). E adesso? e il modello di regressione logistica non converge .

Personalmente ritengo ancora che non sia intuitivo il motivo per cui sarà un problema e perché l'aggiunta di regolarizzazione lo risolverà. Ho realizzato alcune animazioni e penso che sarà utile. Quindi pubblica la sua domanda e rispondi da solo per condividerla con la community.


Vedi questo vecchio post di Brian Ripley: math.yorku.ca/Who/Faculty/Monette/S-news/0027.html
kjetil b halvorsen

Risposte:


29

Una demo 2D con i dati dei giocattoli verrà utilizzata per spiegare cosa stava succedendo per una separazione perfetta sulla regressione logistica con e senza regolarizzazione. Gli esperimenti sono iniziati con un set di dati sovrapposti e gradualmente ci separiamo di due classi. Il contorno della funzione obiettivo e optima (perdita logistica) saranno mostrati nella figura secondaria destra. I dati e il limite di decisione lineare sono tracciati nella figura secondaria sinistra.

Innanzitutto proviamo la regressione logistica senza regolarizzazione.

  • Come possiamo vedere con i dati che si allontanano, la funzione oggettiva (perdita logistica) sta cambiando radicalmente e l' ottimizzazione si sta spostando su un valore più grande .
  • Quando avremo completato l'operazione, il contorno non sarà una "forma chiusa". In questo momento, la funzione obiettivo sarà sempre più piccola quando la soluzione si sposta in alto a destra.

inserisci qui la descrizione dell'immagine

Quindi proviamo la regressione logistica con la regolarizzazione L2 (L1 è simile).

  • Con la stessa configurazione, l'aggiunta di una piccolissima regolarizzazione L2 cambierà le modifiche alla funzione obiettivo rispetto alla separazione dei dati.

  • In questo caso, avremo sempre l'obiettivo "convesso". Non importa quanta separazione abbiano i dati.

inserisci qui la descrizione dell'immagine

codice (utilizzo anche lo stesso codice per questa risposta: metodi di regolarizzazione per la regressione logistica )

set.seed(0)  
d=mlbench::mlbench.2dnormals(100, 2, r=1)

x = d$x
y = ifelse(d$classes==1, 1, 0)

logistic_loss <- function(w){
  p    = plogis(x %*% w)
  L    = -y*log(p) - (1-y)*log(1-p)
  LwR2 = sum(L) + lambda*t(w) %*% w
  return(c(LwR2))
}

logistic_loss_gr <- function(w){
  p = plogis(x %*% w)
  v = t(x) %*% (p - y)
  return(c(v) + 2*lambda*w)
}

w_grid_v = seq(-10, 10, 0.1)
w_grid   = expand.grid(w_grid_v, w_grid_v)

lambda = 0
opt1   = optimx::optimx(c(1,1), fn=logistic_loss, gr=logistic_loss_gr, method="BFGS")
z1     = matrix(apply(w_grid,1,logistic_loss), ncol=length(w_grid_v))

lambda = 5
opt2   = optimx::optimx(c(1,1), fn=logistic_loss, method="BFGS")
z2     = matrix(apply(w_grid,1,logistic_loss), ncol=length(w_grid_v))

plot(d, xlim=c(-3,3), ylim=c(-3,3))
abline(0, -opt1$p2/opt1$p1, col='blue',  lwd=2)
abline(0, -opt2$p2/opt2$p1, col='black', lwd=2)
contour(w_grid_v, w_grid_v, z1, col='blue',  lwd=2, nlevels=8)
contour(w_grid_v, w_grid_v, z2, col='black', lwd=2, nlevels=8, add=T)
points(opt1$p1, opt1$p2, col='blue',  pch=19)
points(opt2$p1, opt2$p2, col='black', pch=19)

2
Questo ricorda molto le soluzioni di viscosità per PDE iperboliche. Mi chiedo se è possibile ottenere direttamente la soluzione limitante da senza dover approssimare , come è per alcuni PDE? λ0+λ=ε
GeoMatt22,

4
Queste visualizzazioni sono fantastiche.
Matthew Drury,
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.