Support Vector Machine gestisce set di dati non bilanciati?


14

SVM gestisce un set di dati non bilanciato? Esistono parametri (come C o costo di classificazione errata) che gestiscono il set di dati sbilanciato?


1
Cosa rende un set di dati "sbilanciato"?
whuber

1
@whuber un set di dati di classificazione con una prevalenza di classe ampiamente variabile viene spesso definito sbilanciato.
Marc Claesen,

1
@Marc Questo può essere vero in generale ma è un concetto vago. Quanto è "ampiamente variabile"? Perché dovrebbe importare anche se non in determinate circostanze speciali? Credo che sia importante per noi imparare cosa intende il proponente di questa domanda "sbilanciato" piuttosto che accettare le congetture intelligenti di chiunque riguardo al significato previsto.
whuber

I set di dati non bilanciati di @whuber sono un concetto comune nell'apprendimento automatico. In termini di applicazioni a causa, ad esempio, del rilevamento di spam, ecc. Forse a causa della preponderanza di algoritmi che mirano all'errore di classificazione errata anziché alla probabilità. Questo a sua volta rende problematica la ponderazione dell'errore.
seanv507,

2
Grazie, @seanv, per il chiarimento. Il problema terminologico sembra davvero che "handle" non si riferisca a "può essere applicato", ma implica piuttosto un'impostazione in cui (1) esiste una classe che è in una minoranza tale che le sue prestazioni di previsione potrebbero essere fortemente influenzate da la presenza delle altre classi, mentre (2) la previsione accurata per la classe di minoranza è di interesse. In questo senso "set di dati sbilanciato" è una descrizione piuttosto incompleta del problema, ma poiché il termine sembra aver acquisito una certa valuta, sembra inutile lamentarsi.
whuber

Risposte:


18

Per i set di dati non bilanciati, in genere viene modificata la penalità di classificazione errata per classe. Questo si chiama SVM ponderato per classe, che minimizza quanto segue:

minw,b,ξi=1Nj=1Nαiαjyiyjκ(xi,xj)+CposiPξi+CnegiNξi,s.t.yi(j=1Nαjyjκ(xi,xj)+b)1ξi,i=1Nξi0,i=1N

dove e rappresentano le istanze di allenamento positive / negative. Nella SVM standard abbiamo un solo valore , mentre ora abbiamo 2. La penalità di errata classificazione per la classe di minoranza è scelta per essere maggiore di quella della classe di maggioranza.PNC

Questo approccio è stato introdotto abbastanza presto, è menzionato ad esempio in un documento del 1997:

Edgar Osuna, Robert Freund e Federico Girosi. Support Vector Machines: formazione e applicazioni. Relazione tecnica AIM-1602, 1997. ( pdf )

Fondamentalmente questo equivale a sovracampionare la classe di minoranza: ad esempio se questo è del tutto equivalente all'addestramento di un SVM standard con dopo aver incluso ogni due volte positivo nel set di addestramento.Cpos=2CnegC=Cneg


Figo, grazie! Oltre a ciò, la regressione logistica, le baie della marina, l'albero decisionale gestiscono questo problema di squilibrio?
RockTheStar,

la regressione logistica sicuramente lo fa, si valuta semplicemente la probabilità di modelli positivi e modelli negativi in ​​modo diverso.
Dikran Marsupial,

La regressione logistica e SVM forniscono modalità intrinseche. Non lo so a memoria per tutti questi altri metodi, ma il sovracampionamento della classe di minoranza funziona praticamente per tutti i metodi (anche se non è esattamente matematicamente elegante).
Marc Claesen,

1
Bene, grazie @Dikran. Marc: sì, semplici sovracampionamenti in generale. Tuttavia, questo dipende dalla situazione. Quello che succede è che stai aggiungendo "pesi" ai dati di minoranza quando stai sovracampionando la minoranza (replicando ripetutamente i punti di minoranza nelle stesse posizioni). Ciò aiuta essenzialmente a migliorare la "considerazione" dell'esempio di minoranza. Tuttavia, il limite decisionale della classificazione diventerà piuttosto teso (non abbastanza generale), ovvero potrebbe verificarsi un eccesso di adattamento). Pertanto, potremmo dover considerare alcune tecniche di campionamento probablistic, come SMOTE.
RockTheStar,

10

Le SVM sono in grado di gestire set di dati con frequenze di classe sbilanciate. Molte implementazioni consentono di avere un valore diverso per la penalità di gioco (C) per le classi positive e negative (che è asintoticamente equivalente alla modifica delle frequenze delle classi). Consiglierei di impostare i valori di questi parametri per massimizzare le prestazioni di generalizzazione su un set di test in cui le frequenze di classe sono quelle che ci si aspetta di vedere nell'uso operativo.

Ero una delle tante persone che hanno scritto articoli su questo, ecco il mio , vedrò se riesco a trovare qualcosa di più recente / migliore. Prova Veropoulos, Campbell e Cristianini (1999).


Dikran perché è solo asintoticamente equivalente ... sicuramente è esattamente equivalente a ponderare i diversi errori di classe in modo diverso?
seanv507,

È esattamente equivalente alla ponderazione degli errori di classe, ma non è la stessa cosa del ricampionamento dei dati (per cominciare i pesi sono continuamente variabili, ma i dati sono discreti). È uno dei risultati delle aspettative asintotiche (che non sembrano particolarmente utili nella maggior parte dei casi).
Dikran Marsupial,
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.