Ich versuche, ein binäres Klassifizierungsproblem zu lösen, wo 80% der Daten zur Klasse x gehören und 20% der Daten zur Klasse y gehören. Alle meine Modelle (AdaBoost, Neural Networks und SVC) sagen nur voraus, dass alle Daten Teil der Klasse x sind, da dies die höchste Genauigkeit ist, die sie erreichen können.Maschinelles Lernen: Move Treshhold
Mein Ziel ist es, eine höhere Genauigkeit für alle Einträge der Klasse x zu erreichen, und es ist mir egal, wie viele Einträge fälschlicherweise als Teil der Klasse y klassifiziert werden.
Meine Idee wäre, nur Einträge in Klasse x zu setzen, wenn das Modell über sie sicher ist und sie sonst in Klasse y setzen.
Wie würde ich das erreichen? Gibt es eine Möglichkeit, den Schwellenwert zu verschieben, so dass nur sehr offensichtliche Einträge als Klasse x klassifiziert werden?
Ich verwende Python und sklearn
Beispielcode:
adaboost = AdaBoostClassifier(random_state=1)
adaboost.fit(X_train, y_train)
adaboost_prediction = adaboost.predict(X_test)
confusion_matrix(adaboost_prediction,y_test) outputs:
array([[ 0, 0],
[10845, 51591]])