Considera un set di dati contenente un'etichetta categorica il cui valore è Positivo o Negativo. In un set di dati equilibrato, il numero di etichette Positive e Negative è approssimativamente uguale. Tuttavia, se un'etichetta è più comune dell'altra, il set di dati è sbilanciato. L'etichetta predominante in un set di dati sbilanciato è chiamata classe di maggioranza; l'etichetta meno comune è chiamata classe di minoranza.
La tabella seguente 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 avrà il virus.
A volte i set di dati sbilanciati non contengono esempi di classi minoritarie sufficienti per addestrare un modello correttamente. In altre parole, con così poche etichette positive, il modello viene addestrato quasi esclusivamente sulle etichette negative e non può apprendere abbastanza sulle etichette positive. Ad esempio: se la dimensione del batch è 50, molti batch non conterrebbero etichette positive.
Spesso, soprattutto per i set di dati leggermente sbilanciati e alcuni moderatamente sbilanciati, lo sbilanciamento non è un problema. Pertanto, prova prima a eseguire l'addestramento sul set di dati originale. Se il modello funziona bene, non devi fare altro. In caso contrario, almeno il modello non ottimale fornisce un buon valore di riferimento per esperimenti futuri. In seguito, puoi provare le seguenti tecniche per superare i problemi causati da set di dati sbilanciati.
Sottocampionamento e ponderazione
Un modo per gestire un set di dati sbilanciato è ridurre il campione e aumentare il peso della classe di 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 sovrap ponderazione si intende l'aggiunta di un peso dell'esempio alla classe sottocampionata uguale al fattore per cui è stato eseguito il sottocampionamento.
Passaggio 1: scegli un campione per la classe di maggioranza. Prendi in considerazione il set di dati sui virus mostrato nella Figura 5, che ha un rapporto di 1 etichetta positiva ogni 200 etichette negative. Il sottocampionamento di un fattore 10 migliora il rapporto a 1 positivo ogni 20 negativi (5%). Sebbene il set di addestramento risultante sia moderatamente sbilanciata, la proporzione tra positivi e negativi è molto migliore di la proporzione originale estremamente sbilanciata (0,5%).
Passaggio 2: aumenta il peso della classe downsampled: aggiungi un esempio i pesi alla classe sottoposta a sottocampionamento. Dopo il sottocampionamento per un fattore di 10, il peso dell'esempio deve essere 10. Sì, può sembrare controintuitivo, ma lo spiegheremo più avanti.
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. Un peso dell'esempio pari a 10 indica che il modello tratta l'esempio come 10 volte più importante (durante il calcolo della perdita) rispetto a un esempio di peso 1.
Il peso deve essere uguale al fattore utilizzato per il sottocampionamento:
\[\text{ \{example weight\} = \{original example weight\} × \{downsampling factor\} }\]
Potrebbe sembrare strano aggiungere pesi di esempio dopo il sottocampionamento. 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. In altre parole, l'aumento del peso dopo il sottocampionamento tende a ridurre il delta tra la media delle previsioni del modello e la 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 di minoranza. I batch che non contengono un numero sufficiente di classi di minoranza verranno addestrate molto male. La dimensione del batch deve essere molte volte maggiore del rapporto di sbilanciamento. Ad esempio, se il rapporto di sbilanciamento è 100:1, la dimensione del batch deve essere almeno 500.
Allenamento: verifica le tue conoscenze
Considera la seguente situazione:
- Il set di addestramento contiene oltre un miliardo di esempi.
- La dimensione del batch è 128.
- Il rapporto di squilibrio è 100:1, quindi il set di addestramento è suddiviso come segue:
- Circa 1 miliardo di esempi di classe di maggioranza.
- Circa 10 milioni di esempi di classi di minoranza.