Unterstützt Support Vector Machine einen unausgeglichenen Datensatz?

14

Bewältigt SVM einen unausgeglichenen Datensatz? Sind das irgendwelche Parameter (wie C oder Fehlklassifizierungskosten), die mit dem unausgeglichenen Datensatz umgehen?

RockTheStar
quelle
1
Was macht einen Datensatz "unausgeglichen"?
whuber
1
@wobei ein Klassifizierungsdatensatz mit stark variierender Klassenprävalenz häufig als unausgewogen bezeichnet wird.
Marc Claesen
1
@Marc Das mag im Allgemeinen stimmen, ist aber ein vages Konzept. Wie viel ist "stark variierend"? Warum sollte es überhaupt eine Rolle spielen, außer unter bestimmten Umständen? Ich glaube, es ist wichtig, dass wir lernen, was der Verfasser dieser Frage unter "unausgeglichen" versteht, anstatt die klugen Vermutungen von irgendjemandem über die beabsichtigte Bedeutung zu akzeptieren.
whuber
@whuber unausgeglichene Datensätze sind ein gängiges Konzept beim maschinellen Lernen. In Bezug auf Anwendungen, z. B. wegen Spam-Erkennung usw. Möglicherweise aufgrund der überwiegenden Anzahl von Algorithmen, die auf Fehlklassifizierungen anstelle von Wahrscheinlichkeiten abzielen. Dies macht wiederum die Gewichtung des Fehlers problematisch.
Seanv507
2
Vielen Dank, @seanv, für die Klarstellung. Das terminologische Problem scheint zu sein, dass "Handles" sich nicht auf "können angewendet werden" bezieht, sondern eine Einstellung impliziert, in der (1) es eine Klasse gibt, die in einer solchen Minderheit ist, von der ihre Prognoseleistung stark beeinflusst werden könnte das Vorhandensein der anderen Klassen, während (2) eine genaue Vorhersage für die Minderheitenklasse von Interesse ist. In diesem Sinne ist "unausgeglichener Datensatz" eine ziemlich unvollständige Beschreibung des Problems, aber da der Begriff eine gewisse Aktualität erlangt zu haben scheint, ist es sinnlos, sich darüber zu beschweren.
whuber

Antworten:

18

Bei unausgeglichenen Datensätzen ändern wir normalerweise die Fehlklassifizierungsstrafe pro Klasse. Dies wird als klassengewichteter SVM bezeichnet, der Folgendes minimiert:

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

wobei und N die positiven / negativen Trainingsinstanzen darstellen. In Standard-SVM haben wir nur einen einzelnen C- Wert, während wir jetzt 2 haben. Die Fehlklassifizierungsstrafe für die Minderheitsklasse wird größer gewählt als die für die Mehrheitsklasse.PNC

Dieser Ansatz wurde ziemlich früh eingeführt und wird beispielsweise in einem Papier von 1997 erwähnt:

Edgar Osuna, Robert Freund und Federico Girosi. Support Vector Machines: Schulungen und Anwendungen. Technischer Bericht AIM-1602, 1997. ( pdf )

Cpos=2CnegC=Cneg

Marc Claesen
quelle
Cool, danke! Geht die logistische Regression, die Navy Bayes und der Entscheidungsbaum mit einem solchen Ungleichgewichtsproblem um?
RockTheStar
Logistische Regression macht es sicher, Sie gewichten nur die Wahrscheinlichkeit für positive Muster und negative Muster unterschiedlich.
Dikran Beuteltier
Logistische Regression und SVM bieten wesentliche Möglichkeiten. Ich weiß auswendig nicht, was all diese anderen Methoden angeht, aber das Überabtasten der Minderheitsklasse funktioniert für so ziemlich jede Methode (obwohl es nicht gerade mathematisch elegant ist).
Marc Claesen
1
Cool, danke @Dikran. Marc: Ja, einfaches Oversampling funktioniert im Allgemeinen. Dies hängt jedoch von der jeweiligen Situation ab. Was passiert, ist, dass Sie den Minderheitendaten "Gewichte" hinzufügen, wenn Sie die Minderheit überabtasten (indem Sie die Minderheitspunkte immer wieder an denselben Stellen replizieren). Dies trägt wesentlich dazu bei, die "Berücksichtigung" von Minderheitenbeispielen zu verbessern. Die Entscheidungsgrenze der Klassifizierung wird dann jedoch ziemlich angespannt (nicht allgemein genug), dh es kann zu einer Überanpassung kommen. Daher müssen wir möglicherweise einige probablistische Stichprobenverfahren wie SMOTE in Betracht ziehen.
RockTheStar
10

SVMs sind in der Lage, Datensätze mit unausgeglichenen Klassenfrequenzen zu verarbeiten. Bei vielen Implementierungen können Sie für positive und negative Klassen einen unterschiedlichen Wert für die Durchhangstrafe (C) festlegen (was asymptotisch einer Änderung der Klassenhäufigkeiten entspricht). Ich würde empfehlen, die Werte dieser Parameter festzulegen, um die Generalisierungsleistung bei einem Testsatz zu maximieren, bei dem die Klassenfrequenzen denjenigen entsprechen, die Sie im operativen Betrieb erwarten.

Ich war einer von vielen Leuten, die Papiere darüber geschrieben haben. Hier ist meiner . Ich werde sehen, ob ich etwas Neueres / Besseres finden kann. Probieren Sie Veropoulos, Campbell und Cristianini (1999).

Dikran Beuteltier
quelle
Dikran, warum ist es nur asymptotisch äquivalent ... sicherlich ist es genau äquivalent, die verschiedenen Klassenfehler unterschiedlich zu gewichten?
Seanv507
Es ist genau gleichbedeutend mit dem Gewichten der Klassenfehler, aber das ist nicht dasselbe wie das erneute Abtasten der Daten (zu Beginn sind die Gewichte kontinuierlich variabel, aber die Daten sind diskret). Dies ist eines der Ergebnisse asymptotischer Erwartungen (die unter den meisten Umständen nicht besonders nützlich zu sein scheinen).
Dikran Beuteltier