Campionamento per dati squilibrati nella regressione


22

Ci sono state buone domande sulla gestione dei dati squilibrati nel contesto della classificazione , ma mi chiedo cosa facciano le persone per campionare per la regressione.

Supponiamo che il dominio problematico sia molto sensibile al segno ma solo in qualche modo sensibile alla grandezza del bersaglio. Tuttavia la grandezza è abbastanza importante che il modello dovrebbe essere la regressione (obiettivo continuo) e non la classificazione (classi positive vs. negative). E dire in questo ambito problematico che qualsiasi set di dati di allenamento avrà 10 volte più obiettivi negativi che positivi.

In questo scenario, potrei sovrastampare gli esempi di target positivi per abbinare il conteggio degli esempi di target negativi e quindi formare un modello per differenziare i due casi. Ovviamente l'approccio alla formazione influisce negativamente sui dati sbilanciati, quindi devo fare un campionamento di qualche tipo. Quale sarebbe un modo decente per "annullare" questo sovracampionamento quando si fanno previsioni? Forse traducendo con la media (negativa) o la mediana del target dei dati di allenamento naturali?

Risposte:


15

Lo squilibrio non è necessariamente un problema, ma può esserlo come ci si arriva. Non è corretto basare la propria strategia di campionamento sulla variabile target. Poiché questa variabile incorpora la casualità nel modello di regressione, se si campiona in base a questo, si avranno grossi problemi a fare qualsiasi tipo di inferenza. Dubito che sia possibile "annullare" questi problemi.

È possibile legittimamente sovrastampare o sottocampionare in base alle variabili predittive . In questo caso, purché tu controlli attentamente che le assunzioni del modello sembrino valide (ad esempio l'omoscedasticità che viene in mente importante in questa situazione, se hai una regressione "ordinaria" con le solite assunzioni), non penso che tu debba annulla il sovracampionamento durante la previsione. Il tuo caso ora sarebbe simile a un analista che ha progettato un esperimento in modo esplicito per avere un intervallo bilanciato delle variabili predittive.

Modifica - aggiunta - espansione sul perché è male campionare in base a Y

Nel montaggio del modello standard di regressione l' dovrebbe essere distribuito normalmente, hanno media zero, e di essere indipendenti e identicamente distribuite. Se scegli il tuo campione in base al valore di y (che include un contributo di di ), l'e non avrà più una media di zero o sarà distribuita in modo identico. Ad esempio, è possibile che vengano selezionati meno valori bassi di y che potrebbero includere valori molto bassi di e. Ciò rovina qualsiasi inferenza basata sui soliti mezzi di adattamento di tali modelli. Le correzioni possono essere rese simili a quelle apportate in econometria per il montaggio di modelli troncati, ma sono una seccatura e richiedono ipotesi aggiuntive e dovrebbero essere impiegate solo quando non c'è alternativa.y=XB+eeeXB

Considera l'illustrazione estrema di seguito. Se si troncano i dati a un valore arbitrario per la variabile di risposta, si introducono errori molto significativi. Se lo tronchi per una variabile esplicativa, non c'è necessariamente un problema. Vedete che la linea verde, basata su un sottoinsieme scelto per i loro valori predittivi, è molto vicina alla vera linea adattata; questo non si può dire della linea blu, basata solo sui punti blu.

Ciò si estende al caso meno grave di sottocampionamento o sovracampionamento (poiché il troncamento può essere visto come sottocampionamento portato al suo estremo logico).

inserisci qui la descrizione dell'immagine

# generate data
x <- rnorm(100)
y <- 3 + 2*x + rnorm(100)

# demonstrate
plot(x,y, bty="l")
abline(v=0, col="grey70")
abline(h=4, col="grey70")
abline(3,2, col=1)
abline(lm(y~x), col=2)
abline(lm(y[x>0] ~ x[x>0]), col=3)
abline(lm(y[y>4] ~ x[y>4]), col=4)
points(x[y>4], y[y>4], pch=19, col=4)
points(x[x>0], y[x>0], pch=1, cex=1.5, col=3)
legend(-2.5,8, legend=c("True line", "Fitted - all data", "Fitted - subset based on x",
    "Fitted - subset based on y"), lty=1, col=1:4, bty="n")

Grazie per la risposta, Peter. Potresti approfondire cosa intendi con "Perché questa variabile incorpora la casualità nel tuo modello di regressione"? L'obiettivo è osservabile nell'ambiente, quindi vuoi dire errore di misurazione?
Someben,

1
Ecco un articolo di un prof della NYU di nome Foster Provost sulla questione: pages.stern.nyu.edu/~fprovost/Papers/skew.PDF Nel mio caso, sto facendo regressione con dati squilibrati e non classificazione. Da qui la mia domanda.
Someben,

1
@someben - Ho elaborato e aggiunto un esempio. È ben descritto nella letteratura sulla regressione che non è possibile campionare in base alla variabile dipendente. Questo dovrebbe applicarsi anche ad altri modelli. Un campione "sbilanciato" è un diverso tipo di cosa e non costituisce un problema; a meno che tu non l'abbia creato deliberatamente con una strategia di campionamento ingiustificabile. Non è l'equilibrio o la mancanza di ciò che è il problema, ma come ottieni i tuoi dati.
Peter Ellis,

2
@someben, no non penso che faccia alcuna differenza. Il problema è più fondamentale di così.
Peter Ellis,

1
Bell'esempio! Il tuo grafico mi ricorda un articolo di Richard Berk (1983) sull'errore di selezione dei campioni . Inoltre, è possibile "annullare" tali problemi se si conosce esplicitamente il meccanismo di selezione del campione e esistono una serie di modelli econometrici costruiti attorno a tale nozione (come il modello tobit o il lavoro di James Heckman).
Andy W,

2

È una questione se stai facendo analisi causale o previsione. Leggi http://m.statisticalhorizons.com/?ref=http%3A%2F%2Ft.co%2F54MWZrVAyX&url=http%3A%2F%2Fstatisticalhorizons.com%2Fprediction-vs-causation-in-regression-analysis&width=640

Il ricampionamento sulla variabile target per l'allenamento ai fini della previsione funziona fintanto che si effettuano test su un campione di campionamento non ricampionato. Il grafico delle prestazioni finali deve basarsi esclusivamente sull'attesa. Per la massima precisione nella determinazione della prevedibilità del modello, è necessario utilizzare tecniche di convalida incrociata.

Si "annulla" dall'analisi finale del modello di regressione e dal set di dati sbilanciato.


2

Questo non è un tentativo di fornire una soluzione pratica al tuo problema, ma ho appena fatto un po 'di ricerca sulla gestione di set di dati sbilanciati in problemi di regressione e volevo condividere i miei risultati:

  • In sostanza, questo sembra essere un problema più o meno aperto, con pochissimi tentativi di soluzione pubblicati (vedi Krawczyk 2016, "Imparare da dati squilibrati: sfide aperte e direzioni future" ).
  • Le strategie di campionamento sembrano essere l'approccio di soluzione perseguito (solo?) Più popolare, ovvero il sovracampionamento della classe sottorappresentata o il sottocampionamento della classe sovrarappresentata. Vedi ad esempio "SMOTE for Regression" di Torgo, Ribeiro et al., 2013 .
  • Tutti i metodi descritti sembrano funzionare eseguendo una classificazione dei dati (distribuiti in modo continuo) in classi discrete mediante un metodo e utilizzando un metodo di bilanciamento delle classi standard.

1

prima di tutto, la razione 1:10 non è affatto male. ci sono modi semplici per annullare il campionamento-

1) per il problema di classificazione, se hai sottocampionato una classe negativa per 10. la probabilità risultante è 10 volte di più di ciò che dovrebbe essere. puoi semplicemente dividere la probabilità risultante per 10. (nota come ri-calibrazione del modello)

2) Facebook esegue anche un sottocampionamento (per la previsione dei clic nella regressione logistica) ed esegue un campionamento negativo verso il basso. la ritaratura viene effettuata con la semplice formula p / (p + (1-p) / w); dove p è la previsione nel downsampling, nw è negativa nella frequenza di campionamento.


Non penso che sia così semplice, Arpit. Molti alghe non lineari non vedono abbastanza esempi di classe sottocampionata e si inclinano verso una classe sottocampionata, e a causa della loro non linearità non avrai i mezzi per risolverlo.
Anatoly Alekseev il

1

Penso che ciò che potrebbe aiutarti a dare il tuo problema è la tecnica di campionamento eccessivo di minoranza sintetica per la regressione (SMOTER). C'è qualche ricerca su questo argomento. Tuttavia, rimane meno esplorato rispetto alla sua controparte di classificazione, come probabilmente hai riscontrato.

Potrei suggerire il documento citato di seguito (e la conferenza che è stata presentata su http://proceedings.mlr.press/v74/ ) a seconda di quanto sei interessato a capirlo dal punto di vista della ricerca. Ho davvero apprezzato l'introduzione del rumore gaussiano nel generare le osservazioni sintetiche.

Se sei più interessato a una soluzione pratica, il primo autore ha un'implementazione R disponibile sulla sua pagina Github. https://github.com/paobranco/SMOGN-LIDTA17

Se Python è più della tua persuasione, di recente ho distribuito un'implementazione interamente Pythonic dell'algoritmo SMOGN che è ora disponibile e attualmente in fase di test unitario. https://github.com/nickkunz/smogn

Spero che questo abbia aiutato!

Branco, P., Torgo, L., Ribeiro, R. (2017). "SMOGN: un approccio pre-elaborazione per la regressione squilibrata". Atti della ricerca sull'apprendimento automatico, 74: 36-50. http://proceedings.mlr.press/v74/branco17a/branco17a.pdf .

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.