Ich arbeite an einem Problem der binären Klassifizierung, bei dem es viel wichtiger ist, keine falsch positiven Ergebnisse zu erzielen. ziemlich viele falsche Negative sind in Ordnung. Ich habe zum Beispiel eine Reihe von Klassifikatoren in sklearn verwendet, aber ich denke, keiner von ihnen hat die Möglichkeit, den Kompromiss zwischen Präzisionsrückruf explizit anzupassen (sie liefern ziemlich gute Ergebnisse, sind aber nicht einstellbar).
Welche Klassifikatoren haben eine einstellbare Präzision / Rückruf? Gibt es eine Möglichkeit, den Präzisions- / Rückruf-Kompromiss bei Standardklassifizierern wie Random Forest oder AdaBoost zu beeinflussen?
quelle
precision_recall_curve
die gesamte F1 berechnen. Wie berechnet man nur die negativen?Ich habe dies gerade für mich selbst gelöst, bevor ich auf dieses Q gestoßen bin, also habe ich beschlossen, meine Lösung zu teilen.
Es verwendet den gleichen Ansatz, den Marc Claesen vorgeschlagen hat, beantwortet jedoch die eigentliche Frage, wie der Klassifikator so angepasst werden kann, dass er sich auf der Präzisionsachse höher bewegt, wenn der Rückruf abgewickelt wird.
X_test sind die Daten und y_test sind die wahren Bezeichnungen. Der Klassifikator sollte bereits montiert sein.
Und auf diese Weise würden Sie den neu erlernten Mindestschwellenwert verwenden, um Ihre Vorhersage anzupassen (die Sie sonst nur als Vorhersage (X_test) bezeichnen würden).
Würde mich freuen, Ihr Feedback zu diesem Anpassungsrezept zu hören.
quelle
Hier ist die Funktion
http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html#sklearn.ensemble.RandomForestClassifier.predict_proba
was Klassenwahrscheinlichkeiten erzeugt. Verwenden Sie dann verschiedene Metriken, um den Schwellenwert P anzupassen, den Sie bei der Entscheidung verwenden, indem Sie dem Pseudocode folgen
wenn p (y)> P ist, dann ist y = 1, sonst ist y = 0 endif
quelle