perché dobbiamo gestire lo squilibrio dei dati?


12

Devo sapere perché dobbiamo affrontare lo squilibrio dei dati. So come affrontarlo e diversi metodi per risolvere il problema che consiste nel campionare in alto o in basso o usando Smote.

Ad esempio, se ho una malattia rara dell'1 percento su 100, e diciamo che ho deciso di avere un set di dati bilanciato per il mio set di allenamento che è: 50/50 campioni Non farò pensare alla macchina che il 50% dei pazienti avrà malattia? anche se il rapporto è 1 su 100. Quindi

  1. Perché dobbiamo affrontare lo squilibrio dei dati?
  2. Qual è il rapporto raccomandato per impostare l'equilibrio

Mi piace questa domanda. Comprendere perché è molto importante.
DaL,

Vedi una domanda relativa in stats.stackexchange.com/questions/312780/…
DaL

Risposte:


8

Devi avere a che fare con un set di dati sbilanciato quando il valore di trovare la classe di minoranza è molto più alto di quello di trovare la maggioranza.

Supponiamo che l'1% della popolazione abbia questa malattia rara. Supponiamo di assegnare lo stesso costo a dire che un uomo sano è malato o che un uomo malato è sano. Fornire un modello che dica che tutti sono sani, ottenere una precisione del 99% e tornare a casa presto. Il problema con un modello del genere è che sebbene abbia un'alta precisione, probabilmente non sarà quello che stai cercando. Il più delle volte vuoi trovare le persone con la malattia (dando un peso elevato ai falsi negativi) molto più di quanto tu abbia paura di inviare una persona sana a test non necessari (basso peso a falsi positivi). In un problema di salute nel mondo reale il rapporto tra il peso può essere facilmente compreso tra 1 e 1.000.

Lo squilibrio nella distribuzione non riesce a trovare una soluzione adeguata alla maggior parte degli algoritmi.

Hai ragione nel dire che il solo bilanciamento della distribuzione non è la soluzione ottimale. In effetti, un algoritmo che viene addestrato su una distribuzione bilanciata non è adattato alla distribuzione naturale su cui verrà valutato. Il mio metodo preferito è adattarlo indietro, come puoi vedere qui . Per una discussione, vedi qui .

Basta impostare il rapporto su qualche altro problema non funzionerà poiché avrai lo stesso problema.

Smote funziona in un modo diverso, che non ha funzionato altrettanto bene quando l'ho provato, ma potrebbe adattarsi al tuo problema.


Quindi, ho capito che è meglio bilanciare i dati perché la maggior parte dell'algoritmo funziona bene sui dati bilanciati anche se non si adatta alla distribuzione naturale?
Sara,

Puoi approfondire ulteriormente questa frase "quando il costo dell'errore non si adatta alla distribuzione dei campioni". Non l'ho capito molto bene
sara l'

1
Rispondere al primo commento: un set di dati sbilanciato porterà gli algoritmi a ottenere buoni risultati restituendo la maggioranza. Questo sarà un problema se ti interessa di più la minoranza. Quindi, il bilanciamento è un modo per forzare l'algoritmo a dare più peso alla minoranza. Tuttavia, una volta equilibrato, la distribuzione del treno e la distribuzione di prova sono diverse, quindi è necessario adattare il modello alla distribuzione di prova (come nel metodo che ho proposto).
DaL,

Rispondere al secondo commento: in effetti, quel punto era un po 'poco chiaro. Ho modificato la risposta. È chiaro adesso?
DaL

sì, per quanto ho capito che la distribuzione dei test e degli allenamenti dovrebbe essere la stessa, quindi non sarà una soluzione che dopo aver bilanciato il mio allenamento impostato sul rapporto 50 50, vado e imposto anche il mio set di test su 50 50?
Sara,

3
  • Risposta breve:

devi affrontare lo squilibrio di classe se / perché migliora il tuo modello (su dati invisibili). "Meglio" è qualcosa che devi definire te stesso. Potrebbe essere precisione, potrebbe essere un costo, potrebbe essere il vero tasso positivo ecc.

  • Risposta lunga:

C'è una sottile sfumatura che è importante cogliere quando si parla di squilibrio di classe. Vale a dire, i tuoi dati sono sbilanciati perché:

  1. la distribuzione dei dati è essa stessa sbilanciata

In alcuni casi, una classe si presenta molto più di un'altra. E va bene In questo caso, devi verificare se alcuni errori sono più costosi di altri. Questo è l'esempio tipico di rilevare malattie mortali nei pazienti, capire se qualcuno è un terrorista, ecc. Torna alla breve risposta. Se alcuni errori sono più costosi di altri, ti consigliamo di "punirli" dando loro un costo più elevato. Pertanto, un modello migliore avrà un costo inferiore. Se tutti gli errori sono così gravi, non esiste un vero motivo per cui dovresti usare modelli sensibili ai costi.

È anche importante notare che l'utilizzo di modelli sensibili ai costi non è specifico per i set di dati non bilanciati. Puoi utilizzare tali modelli anche se i tuoi dati sono perfettamente bilanciati.

  1. non rappresenta la vera distribuzione dei dati

A volte i tuoi dati sono "sbilanciati" perché non rappresentano la vera distribuzione dei dati. In questo caso, devi stare attento, perché hai "troppi" esempi di una classe e "troppo pochi" dell'altra, quindi devi assicurarti che il tuo modello non si esageri troppo di queste classi.

Ciò è diverso dall'uso dei costi perché potrebbe non essere il caso che un errore sia peggiore di un altro. Ciò che accadrebbe è che verrai influenzato e non sarebbe vantaggioso per il tuo modello se i dati invisibili non avessero la stessa distribuzione dei dati su cui ti sei allenato.

Diciamo che ti do dati di allenamento e il tuo obiettivo è indovinare se qualcosa è rosso o blu. Sia che tu confonda blu con rosso o rosso con blu non fa molta differenza. I tuoi dati di allenamento hanno il 90% di casi rossi in cui nella vita reale accadono solo il 10% delle volte. Dovresti occupartene per migliorare il tuo modello.


Risposta molto elaborativa. Puoi spiegarci di più con un esempio di cosa intendi con "Se il tuo modello è migliore perché ha un costo basso, allora affronta lo squilibrio". Perché dovrei affrontare lo squilibrio se il modello ha un basso costo?
Sara

Ho modificato la mia risposta un po 'così, si spera, è più chiaro. Quello che intendevo era il seguente: "se il tuo modello è considerato migliore quando ha un basso costo e gestire lo squilibrio riduce il costo, allora fallo".
Valentin Calomme,
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.