2017-12-29 15 views
-2

Ich trainiere einen BinaryClassifier auf Daten, die 100 Attribute hat, wo das positive Szenario nur 3% von 800k Elemente auftritt. Müssen wir während des Trainings sowohl die positiven als auch die negativen Instanzen einbeziehen? Ich nehme an, dass wir nicht sollten, da das Ergebnis nur binär wäre, d.h. wenn das Modell auf Positive trainiert wird, dann würde eine schwache Übereinstimmung bedeuten, dass es negativ ist.Scikit BinaryClassification Trainingsdaten Auswahl

Falls für den Fall, dass ich beide enthalten muss dann wäre die Sample-Methode des Pandas DataFrame zuverlässig?

Vielen Dank!

Antwort

-1

Wenn Sie einen binären Klassifikator trainieren, benötigen Sie zwei Ausgaben in Ihrem Trainingsdatensatz.

Zumindest wenn Sie möchten, dass Ihr Klassifikator funktioniert.

Was Sie haben, ist eine unausgewogene Dataset, sind hier einige Möglichkeiten, dieses Problem zu beheben:

https://machinelearningmastery.com/tactics-to-combat-imbalanced-classes-in-your-machine-learning-dataset/

+0

"Wenn Sie einen binären Klassifikator trainieren, benötigen Sie zwei Ausgaben in Ihrem Trainingsdatensatz." ist nicht wirklich wahr, und auch nicht das, worauf sich die Frage bezieht, denke ich. Es ist üblich, nur die Wahrscheinlichkeit der positiven Klasse auszugeben. – nnnmmm

0

Wenn Sie sich fragen, wie ein unausgeglichenen-Datensatz zu handhaben, gibt es viele Blog-Posts online auf, dass Thema, z here. Ein möglicher Weg zur Verwendung des Pandas-Abtastverfahrens wäre es, den Parameter weights auf die Frequenz der anderen Klasse zu setzen, d. H. 0,97 für positive und 0,03 für negative, wodurch das Ungleichgewicht durch Überabtastung korrigiert wird.

Aber wenn Sie sagen, dass Sie ein Modell theoretisch an die Verteilung der positiven Instanzen anpassen und während des Testens alle Ausreißer als negative Instanzen bezeichnen könnten - das ist möglich, obwohl nicht ratsam. Dieser Ansatz würde sicherlich schlechter abschneiden als einer, der von beiden Klassen lernt. Darüber hinaus nehmen binäre Klassifikationsalgorithmen wie scikit-learn immer Instanzen beider Klassen an.

Verwandte Themen