Dati non bilanciati

Un set di dati di classificazione con proporzioni di classe alterate è chiamato sbilanciato. I corsi che costituiscono un'ampia parte del set di dati sono chiamati classi di maggioranza. Quelli che compongono una percentuale minore sono le classi di minoranza.

Cosa viene considerato squilibrato? La risposta potrebbe variare da blanda a estrema, come mostra la tabella seguente.

Grado di squilibrio Proporzione di classe di minoranza
Moderato 20-40% del set di dati
Moderato 1-20% del set di dati
Estremo < 1% del set di dati

Perché prestare attenzione ai dati non bilanciati? Se hai un'attività di classificazione con un set di dati sbilanciato, potresti dover applicare una particolare tecnica di campionamento.

Considera l'esempio seguente di un modello che rileva attività fraudolenta. Istanze di attività fraudolenta si verificano una volta ogni 200 transazioni in questo set di dati, quindi nella vera distribuzione, circa lo 0,5% dei dati è positivo.

Grafico a barre con due barre. Una barra mostra circa 200 transazioni negative, mentre l&#39;altra mostra 1 transazione positiva.

Perché potrebbe essere problematico? Con pochissimi positivi rispetto a quelli negativi, il modello di addestramento trascorre la maggior parte del suo tempo su esempi negativi e non impara abbastanza da quelli positivi. Ad esempio, se la dimensione del batch è 128, molti batch non avranno esempi positivi, quindi i gradienti saranno meno informativi.

Se hai un set di dati sbilanciato, prova innanzitutto a eseguire l'addestramento sulla distribuzione effettiva. Se il modello funziona bene e generalizza, hai finito. In caso contrario, prova la seguente tecnica di sottocampionamento e pesatura.

Downsampling e upweighting

Un modo efficace per gestire i dati non bilanciati consiste nel sottocampionare e sovradimensionare la classe principale. Iniziamo definendo i due nuovi termini:

  • Il campionamento in discesa (in questo contesto) significa addestramento su un sottoinsieme sproporzionatamente basso degli esempi di maggioranza.
  • L'assegnazione di ponderazioni indica l'aggiunta di un peso di esempio alla classe sottocampionata uguale al fattore in base al quale è stato sottocampionato.

Passaggio 1: sottocampiona la classe di maggioranza. Considera ancora il nostro esempio del set di dati sulle attività fraudolente, con 1 negativo su 200 negativi. Il campionamento in base a un fattore 10 migliora il saldo a 1 positivo e a 20 negativi (5%). Sebbene l'insieme di addestramento risultante sia ancora moderatomente sbilanciato, la proporzione di positivi a negativi è molto migliore della proporzione originale estremamente sbilanciata (0,5%).

Grafico a barre con due barre. Una barra mostra 20 transazioni negative, mentre l&#39;altra mostra 1 transazione positiva.

Passaggio 2: pondera il valore della classe sottocampionata. L'ultimo passaggio consiste nell'aggiungere le ponderazioni di esempio alla classe sottocampionata. Poiché abbiamo eseguito un sottocampionamento di 10, la ponderazione di esempio dovrebbe essere 10.

Diagramma concettuale di abbassamento e pesatura verso il basso. Il passaggio 1, il sottocampionamento, estrae un esempio selezionato casualmente da un blocco che rappresenta il set di dati della classe di maggioranza. Nel passaggio 2, la ponderazione viene aggiunta a ogni esempio selezionato casualmente.

Probabilmente potresti sentire il termine weight quando si fa riferimento ai parametri del modello, ad esempio connessioni in una rete neurale. Qui parliamo di ponderazioni di esempio, il che significa conteggiare un singolo esempio più importante durante l'addestramento. Un esempio di ponderazione pari a 10 indica che il modello considera l'esempio 10 volte più importante (quando si calcola la perdita di dati) di un esempio di ponderazione 1.

La ponderazione deve essere uguale al fattore utilizzato per il sottocampionamento:

\[\text{ \{example weight\} = \{original example weight\} × \{downsampling factor\} }\]

Perché sottocampionare e pesare?

Può sembrare strano aggiungere ponderazioni di esempio dopo il sottocampionamento. Stavamo cercando di migliorare il nostro modello rispetto alla classe delle minoranze: perché dovremmo pesare la maggior parte? Ecco le modifiche che vengono apportate:

  • Convergenza più rapida: durante l'addestramento, vediamo apparire la classe di minoranza più spesso, che aiuterà il modello a convergere più velocemente.
  • Spazio su disco: consolidando la classe di maggioranza in un numero inferiore di esempi con ponderazioni maggiori, viene utilizzata meno spazio su disco. Questo risparmio di spazio consente di avere più spazio su disco per la classe di minoranza, così possiamo raccogliere un numero maggiore e una gamma più ampia di esempi per quella classe.
  • Calibrazione: la ponderazione garantisce che il nostro modello sia ancora calibrato; gli output possono comunque essere interpretati come probabilità.