Opinioni sul sovracampionamento in generale e l'algoritmo SMOTE in particolare [chiuso]


18

Qual è la tua opinione sul sovracampionamento della classificazione in generale e dell'algoritmo SMOTE in particolare? Perché non dovremmo semplicemente applicare un costo / penalità per correggere lo squilibrio nei dati di classe e qualsiasi costo sbilanciato degli errori? Per i miei scopi, l'accuratezza della predizione a una serie futura di unità sperimentali è la misura definitiva.

Per riferimento, il documento SMOTE: http://www.jair.org/papers/paper953.html


1
Un problema con il sovracampionamento di una classe di minoranza in un set di dati squilibrato è che finiresti per imparare troppo dello specifico dei pochi esempi e questo non si generalizzerebbe bene. SMOTE dovrebbe apprendere le proprietà topologiche del vicinato di quei punti nella classe di minoranza, quindi è meno probabile che ti alleni.
Orazio

2
Questo è un ottimo argomento per una domanda, ma potresti renderlo un po 'più concentrato? "Qual è la tua opinione?" invita a discussioni infinite ma tendiamo a focalizzarci maggiormente su un formato domanda / risposta.
Sycorax dice di ripristinare Monica

Risposte:


19

{1} fornisce un elenco di vantaggi e svantaggi dell'apprendimento sensibile ai costi rispetto al campionamento:

2.2 Campionamento

Il sovracampionamento e il sottocampionamento possono essere usati per alterare la distribuzione di classe dei dati di addestramento ed entrambi i metodi sono stati usati per affrontare lo squilibrio di classe [1, 2, 3, 6, 10, 11]. Il motivo per cui l'alterazione della distribuzione di classe dei dati di formazione aiuta l'apprendimento con set di dati molto distorti è che impone effettivamente costi di classificazione errata non uniformi. Ad esempio, se si modifica la distribuzione di classe dell'insieme di addestramento in modo che il rapporto tra esempi positivi e negativi vada da 1: 1 a 2: 1, si è effettivamente assegnato un rapporto di costo di classificazione errata di 2: 1. Questa equivalenza tra l'alterazione della distribuzione di classe dei dati di addestramento e l'alterazione del rapporto dei costi di classificazione errata è ben nota ed è stata formalmente descritta da Elkan [9].

Vi sono noti svantaggi associati all'uso del campionamento per implementare l'apprendimento sensibile ai costi. Lo svantaggio del sottocampionamento è che elimina i dati potenzialmente utili . Il principale svantaggio del sovracampionamento , dal nostro punto di vista, è che, facendo copie esatte di esempi esistenti, è probabile che si verifichi un overfitting . In effetti, con il sovracampionamento è abbastanza comune per uno studente generare una regola di classificazione per coprire un singolo esempio replicato. Un secondo svantaggio del sovracampionamento è che aumenta il numero di esempi di allenamento, aumentando così il tempo di apprendimento .

2.3 Perché usare il campionamento?

Dati gli svantaggi del campionamento, vale la pena chiedersi perché qualcuno dovrebbe usarlo piuttosto che un algoritmo di apprendimento sensibile ai costi per gestire i dati con una distribuzione distorta della classe e costi di classificazione errati non uniformi. Ci sono diverse ragioni per questo. Il motivo più ovvio è che non ci sono implementazioni sensibili in termini di costi di tutti gli algoritmi di apprendimento e quindi un approccio basato su wrapper che utilizza il campionamento è l'unica opzione. Sebbene questo sia certamente meno vero oggi che in passato, molti algoritmi di apprendimento (ad esempio, C4.5) non gestiscono ancora direttamente i costi nel processo di apprendimento.

Un secondo motivo per l'utilizzo del campionamento è che molti set di dati altamente distorti sono enormi e le dimensioni del set di addestramento devono essere ridotte affinché l'apprendimento sia fattibile. In questo caso, il sottocampionamento sembra essere una strategia ragionevole e valida. In questo documento non consideriamo la necessità di ridurre le dimensioni del set di addestramento. Vorremmo sottolineare, tuttavia, che se uno ha bisogno di scartare alcuni dati di addestramento, potrebbe comunque essere utile scartare alcuni degli esempi di classe di maggioranza al fine di ridurre la dimensione del set di addestramento alla dimensione richiesta e quindi impiegare anche un costo- algoritmo di apprendimento sensibile, in modo da ridurre al minimo la quantità di dati di allenamento scartati.

Un'ultima ragione che potrebbe aver contribuito all'uso del campionamento piuttosto che a un algoritmo di apprendimento sensibile ai costi è che i costi di errata classificazione sono spesso sconosciuti. Tuttavia, questo non è un motivo valido per utilizzare il campionamento rispetto a un algoritmo di apprendimento sensibile ai costi, dal momento che il problema analogo sorge con il campionamento: quale dovrebbe essere la distribuzione in classe dei dati di addestramento finale? Se queste informazioni sui costi non sono note, una misura come l'area sotto la curva ROC potrebbe essere utilizzata per misurare le prestazioni del classificatore ed entrambi gli approcci potrebbero quindi determinare empiricamente il rapporto costo / distribuzione della classe adeguato.

Hanno anche fatto una serie di esperimenti, che era inconcludente:

Sulla base dei risultati di tutti i set di dati, non esiste un vincitore definitivo tra apprendimento sensibile ai costi, sovracampionamento e sottocampionamento

Quindi cercano di capire quali criteri nei set di dati possono suggerire quale tecnica è più adatta.

Osservano inoltre che SMOTE può apportare alcuni miglioramenti:

Esistono numerosi miglioramenti che le persone hanno apportato per migliorare l'efficacia del campionamento. Alcuni di questi miglioramenti includono l'introduzione di nuovi esempi "sintetici" durante il sovracampionamento [5 -> SMOTE], l'eliminazione di esempi di classe maggioritaria meno utili durante il sottocampionamento [11] e l'utilizzo di più sottocampioni quando il sottocampionamento come quello di ciascun esempio viene utilizzato in almeno uno sottocampione [3]. Sebbene queste tecniche siano state confrontate con il sovracampionamento e il sottocampionamento, in genere non sono state confrontate con algoritmi di apprendimento sensibili ai costi. Vale la pena studiare in futuro.


{1} Weiss, Gary M., Kate McCarthy e Bibi Zabar. "Apprendimento sensibile ai costi rispetto al campionamento: qual è la soluzione migliore per gestire classi sbilanciate con costi di errore diseguali?" DMIN 7 (2007): 35-41. https://scholar.google.com/scholar?cluster=10779872536070567255&hl=en&as_sdt=0,22 ; https://pdfs.semanticscholar.org/9908/404807bf6b63e05e5345f02bcb23cc739ebd.pdf


2
Quando dici "algoritmo di apprendimento sensibile ai costi", il mio cervello dovrebbe pensare "penalizzare le classi con alte frequenze di occorrenza e possibilmente attribuire maggiore importanza alle classi con basse frequenze"? Questo concetto equivale ad assegnare pesi di classe?
Jarad,
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.