Frage

Ich habe SMOTE verwendet, um ein Vorhersagemodell zu machen, wobei Klasse 1 1800 Proben und 35000+ der Proben der Klasse 0 enthält. Daher wurden nach Smote synthetische Proben erzeugt und der zufällige Wald geschult.

Ich bekomme jetzt die meisten Ergebnisse als Klasse 1, wenn ich mein Modell teste. Ich habe gerade versucht, es am Trainingset zu testen, und das habe ich bekommen:

Ohne Smote

Without SMOTE

Mit Smote

With SMOTE

Ich habe auch die Hyperparameteroptimierung ausprobiert, aber das hat nicht funktioniert

Vielen Dank

PS: Verwendete SMOTE -Implementierung in pandas mit UnbalancedDataset Bibliothek

War es hilfreich?

Lösung

Der Smote -Algorithmus hängt von dem Datensatz ab, den Sie haben. Wenn Sie ein schwerwiegendes Datenungleichgewicht haben, können Sie wie das in Ihrem Fall SMOTE -Algorithmus möglicherweise nicht helfen, wenn die Variationen innerhalb der Minderheitenklasse sehr hoch sind und die Ähnlichkeiten zwischen den beiden Klassen sehr hoch sind. Aber wie man weiß, ob dies der Fall ist. Versuchen Sie, Proben aus der Minderheitenklasse zu duplizieren, ein nicht lineares SVM, und überprüfen Sie die Ergebnisse, wenn die Klassifizierungsgenauigkeit sehr niedrig ist, dann ist dies der Fall.

SMOTE verwenden KNN, um neue Proben zu erstellen, aber wenn die Variation innerhalb der Minderheitenklasse sehr hoch ist, verwendet die Verwendung von SMOTE Proben, die nicht gerade echte Nachbarn sind. Um ehrlich zu sein, gibt es keine klare Lösung für dieses Problem, aber ich kann die folgenden Folgen vorschlagen: 1. Versuchen Sie es mit Borderline Smote: Es handelt sich um eine modifizierte Version des Smote -Algorithmus 2. Versuchen Der Algorithmus wird mit SMOTE 3 erweitert. Wenn Sie den SMOTE -Boost so ändern können

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top