Ich versuche, ein Vorhersagemodell mit SVMs auf ziemlich unausgeglichenen Daten aufzubauen. Meine Labels / Outputs haben drei Klassen: positiv, neutral und negativ. Ich würde sagen, das positive Beispiel macht ungefähr 10 - 20% meiner Daten aus, neutral ungefähr 50 - 60% und negativ ungefähr 30 - 40%. Ich versuche, die Klassen auszugleichen, da die Kosten, die mit falschen Vorhersagen zwischen den Klassen verbunden sind, nicht gleich sind. Eine Methode bestand darin, die Trainingsdaten erneut abzutasten und einen gleich ausgewogenen Datensatz zu erstellen, der größer als das Original war. Interessanterweise bekomme ich dabei tendenziell bessere Vorhersagen für die andere Klasse (z. B. wenn ich die Daten ausgewogen habe, habe ich die Anzahl der Beispiele für die positive Klasse erhöht, aber bei den Stichprobenvorhersagen hat die negative Klasse besser abgeschnitten). Kann jemand allgemein erklären, warum dies geschieht? Wenn ich die Anzahl der Beispiele für die negative Klasse erhöhe, würde ich aus Stichprobenvorhersagen (z. B. bessere Vorhersagen) etwas Ähnliches für die positive Klasse erhalten?
Sehr offen für andere Gedanken darüber, wie ich die unausgeglichenen Daten beheben kann, indem ich entweder unterschiedliche Kosten für die Fehlklassifizierung auferlege oder die Klassengewichte in LibSVM verwende (ich bin mir jedoch nicht sicher, wie ich diese richtig auswählen / einstellen soll).