Set di dati: set di dati sbilanciati

Considera un set di dati contenente un'etichetta categorica il cui valore è Positivo o Negativo. In un set di dati bilanciato, il numero di valori positive a quelle Negative è più o meno uguale. Tuttavia, se un'etichetta è più comune dell'altra etichetta, il set di dati è sbilanciato. L'etichetta predominante in un set di dati sbilanciato è chiamata classe di maggioranza; l'etichetta meno comune è chiamata classe delle minoranze.

La seguente tabella fornisce nomi e intervalli generalmente accettati per diversi gradi di squilibrio:

Percentuale di dati appartenenti alla classe di minoranze Grado di squilibrio
20-40% del set di dati Moderato
1-20% del set di dati Moderata
<1% del set di dati Estremo

Considera ad esempio un set di dati per il rilevamento di virus in cui la classe di minoranza rappresenta lo 0,5% del set di dati e la classe di maggioranza rappresenta il 99,5%. Set di dati estremamente sbilanciati come questo sono comuni in medicina poiché la maggior parte dei soggetti non ha il virus.

Figura 5. Grafico a barre con due barre. Una barra mostra circa 200
            classi negative; l&#39;altra barra mostra 1 classe positiva.
Figura 5. Set di dati estremamente sbilanciato.

 

I set di dati sbilanciati a volte non contengono abbastanza classi di minoranza per addestrare correttamente un modello. Questo significa che con così poche etichette positive, il modello si addestra quasi esclusivamente sulle etichette negative e non possiamo imparare abbastanza. Ad esempio: se la dimensione del batch è 50, molti batch non conterrebbero etichette positive.

Spesso, in particolare per quelli leggermente sbilanciati e quelli moderatamente sbilanciati gli squilibri non sono un problema. La prima cosa da fare è provare addestramento sul set di dati originale. Se il modello funziona bene, hai finito. In caso contrario, almeno il modello non ottimale fornisce una buona base di riferimento per esperimenti futuri. In seguito, puoi provare le seguenti tecniche per risolvere i problemi causata da set di dati sbilanciati.

Sottocampionamento e ponderazione

Un modo per gestire un set di dati sbilanciato è eseguire il sottocampionamento e l'upscaling del della maggioranza. Di seguito sono riportate le definizioni di questi due nuovi termini:

  • Sottocampionamento (in questo contesto) prevede l'addestramento in un sottoinsieme sproporzionatamente basso della classe maggioritaria esempi.
  • Per ponderazione superiore si intende l'aggiunta di il peso di esempio alla classe del sottocampionamento uguale al fattore in base al quale sottocampionato.

Passaggio 1: scegli un campione per la classe di maggioranza. Tieni presente che set di dati sui virus con un rapporto di 1 etichetta positiva ogni 200 negativi etichette. Sottocampionamento di un fattore 20 migliora il saldo da 1 positivo a 10 negativi (10%). Sebbene set di addestramento risultante è ancora parzialmente sbilanciato, la proporzione da positivi a negativi è molto meglio dell'originale molto sbilanciato percentuale (0,5%).

Immagine 6. Grafico a barre con due barre. Una barra mostra 20 negativi
            classi; l&#39;altra barra mostra 1 classe positiva.
Figura 6. Sottocampionamento.

 

Passaggio 2: aumenta il peso della classe downsampled: aggiungi un esempio i pesi alla classe sottoposta a sottocampionamento. Dopo il downsampling di un fattore di 20, il peso dell'esempio dovrebbe essere 20. (Sì, potrebbe sembrare controintuitivo, ma vedremo spiegarne il motivo in seguito.

Immagine 7. Un diagramma in due fasi di downsampling e upweighting.
            Passaggio 1: il downsampling estrae esempi casuali dalla maggior parte
            . Passaggio 2: l&#39;upweighting aggiunge peso al campione
            esempi.
Figura 7. Sovrappeso.

 

Il termine ponderazione non si riferisce ai parametri del modello (come w1 o w2). In questo caso, weight si riferisce ponderazioni dell'esempio, che aumenta l'importanza di un singolo esempio durante l'addestramento. Con peso di esempio pari a 10, il modello tratta l'esempio come 10 volte più importante (nel calcolo della perdita) rispetto a un esempio di peso 1.

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

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

Può sembrare strano aggiungere ponderazioni di esempio dopo il downgrade. Dopotutto cercare di migliorare il modello rispetto alla classe di minoranza, quindi perché della maggioranza? Infatti, l'upweighting della classe di maggioranza tende a ridurre bias di previsione. Vale a dire che l'upweighting dopo il downsampling tende a ridurre il delta tra la media delle previsioni del modello e della media delle etichette del set di dati.

Rapporti di ribilanciamento

Quanto dovresti sottocampionare e aumentare il peso per ribilanciare il set di dati? Per determinare la risposta, devi sperimentare il rapporto di ribilanciamento, proprio come faresti con altre iperparametri: Detto questo, la risposta dipende in ultima analisi dai seguenti fattori:

  • La dimensione del batch
  • Il rapporto di squilibrio
  • Il numero di esempi nel set di addestramento

Idealmente, ogni batch dovrebbe contenere più esempi di classi minoritarie. I batch che non contengono un numero sufficiente di classi di minoranza verranno addestrate molto male. La dimensione del batch dovrebbe essere di diverse volte superiore al rapporto di squilibrio. Ad esempio, se il rapporto di squilibrio è 100:1, la dimensione del batch essere almeno 500.

Allenamento: verifica le tue conoscenze

Considera la seguente situazione:

  • La dimensione del batch è 128.
  • Il rapporto di squilibrio è 100:1.
  • Il set di addestramento contiene un miliardo di esempi.
Quali delle seguenti affermazioni sono vere?
L'aumento della dimensione del batch a 1024 migliorerà il risultato un modello di machine learning.
Con una dimensione del batch di 1.024, ogni batch avrà in media circa 10 di esempi di classi appartenenti a minoranze, che dovrebbero essere sufficienti per la formazione. Senza il sottocampionamento, il set di addestramento continua a contenere miliardi di esempi.
Sottocampionamento (e ponderazione) a 20:1 mantenendo la dimensione del batch a 128 migliorerà il modello risultante.
Ogni batch calcola una media di circa 9 esempi di classi minoritarie, che dovrebbero sia sufficiente per l'addestramento. Il sottocampionamento riduce in modo efficace il numero di esempi nel set di addestramento da un miliardo a 40 milioni.
La situazione attuale va bene.
La maggior parte dei batch non conterrà abbastanza classi di minoranza per addestrare un modello di machine learning.