Ein beliebter Ansatz zur Lösung von Problemen mit dem Klassenungleichgewicht besteht darin, den Klassifizierer so zu beeinflussen, dass er den positiven Instanzen mehr Aufmerksamkeit schenkt. Dies kann zum Beispiel erreicht werden, indem die Strafe erhöht wird, die mit einer Fehlklassifizierung der positiven Klasse relativ zur negativen Klasse verbunden ist. Ein anderer Ansatz besteht darin, die Daten durch Überabtastung der Mehrheitsklasse oder Unterabtastung der Minderheitsklasse vorzuverarbeiten, um einen ausgeglichenen Datensatz zu erstellen.
In Ihrem Fall scheint das Klassenungleichgewicht jedoch kein Problem zu sein. Möglicherweise handelt es sich um eine Parametereinstellung, da das Finden der optimalen Parameter für einen SVM-Klassifizierer ein ziemlich langwieriger Prozess sein kann. Es gibt zwei Parameter für z. B. in einem RBF-Kernel: und . Es ist vorher nicht bekannt, welches und für ein gegebenes Problem am besten sind; Folglich muss eine Art Modellauswahl (Parametersuche) durchgeführt werden.γ C.CγCγ
Denken Sie in der Datenvorverarbeitungsphase daran, dass SVM erfordert, dass jede Dateninstanz als Vektor reeller Zahlen dargestellt wird. Wenn es kategoriale Attribute gibt, wird empfohlen, diese in numerische Daten umzuwandeln und m Zahlen zu verwenden, um ein m-Kategorie-Attribut darzustellen (oder es durch m neue binäre Variablen zu ersetzen).
Außerdem ist die Skalierung der Variablen vor dem Anwenden von SVM von entscheidender Bedeutung, um zu vermeiden, dass Attribute in größeren numerischen Bereichen diejenigen in kleineren numerischen Bereichen dominieren.
Schauen Sie sich dieses Papier an .
Wenn Sie in R arbeiten, überprüfen Sie die Optimierungsfunktion (Paket e1071), um Hyperparameter mithilfe einer Rastersuche über die angegebenen Parameterbereiche abzustimmen. Mit plot.tune können Sie dann visuell sehen, welcher Wertesatz die geringere Fehlerrate ergibt.
Es gibt eine Verknüpfung zur zeitaufwändigen Parametersuche. Es gibt ein R-Paket namens "svmpath", das den gesamten Regularisierungspfad für einen SVM-Klassifizierer mit zwei Klassen auf einmal berechnet. Hier ist ein Link zu dem Artikel, der beschreibt, was es tut.
PS Möglicherweise finden Sie dieses Dokument auch interessant: Abrufen kalibrierter Wahrscheinlichkeitsschätzungen