Die vorhergesagten Klassen aus der (binären) logistischen Regression werden unter Verwendung eines Schwellenwerts für die Wahrscheinlichkeiten der Klassenmitgliedschaft bestimmt, die vom Modell generiert werden. Soweit ich weiß, wird standardmäßig 0,5 verwendet.
Das Variieren des Schwellenwerts ändert jedoch die vorhergesagten Klassifizierungen. Bedeutet dies, dass die Schwelle ein Hyperparameter ist? Wenn ja, warum ist es (zum Beispiel) nicht möglich, mit der GridSearchCV
Methode von scikit-learn (wie für den Regularisierungsparameter C
) einfach über ein Gitter von Schwellenwerten zu suchen .
Antworten:
Durch den Entscheidungsschwellenwert wird ein Kompromiss zwischen der Anzahl der von Ihnen vorhergesagten Positiven und der Anzahl der von Ihnen vorhergesagten Negativen hergestellt, da durch tautologisches Erhöhen des Entscheidungsschwellenwerts die Anzahl der von Ihnen vorhergesagten Positiven verringert und die Anzahl der von Ihnen vorhergesagten Negativen erhöht wird Sie sagen voraus.
Die Entscheidungsschwelle ist kein Hyperparameter im Sinne der Modelloptimierung, da sie die Flexibilität des Modells nicht verändert .
Die Art und Weise, wie Sie über das Wort "Melodie" im Kontext der Entscheidungsschwelle nachdenken, unterscheidet sich von der Art und Weise, wie Hyperparameter abgestimmt werden. Durch Ändern vonC und anderen Modell-Hyperparametern wird das Modell geändert(z. B. sind die logistischen Regressionskoeffizienten unterschiedlich), während das Anpassen des Schwellenwerts nur zwei Dinge bewirken kann: TP gegen FN und FP gegen TN tauschen. Das Modell bleibt jedoch dasselbe, da dies die Koeffizienten nicht verändert. (Dasselbe gilt für Modelle ohne Koeffizienten, z. B. zufällige Wälder: Wenn Sie den Schwellenwert ändern, ändert sich nichts an den Bäumen.) Im engeren Sinne ist es also richtig, dass Sie den besten Kompromiss zwischen Fehlern finden ist "stimmen", aber Sie denken zu Unrecht, dass das Ändern des Schwellenwerts mit anderen Modell-Hyperparametern auf eine Weise verknüpft ist, die durch optimiert wird
GridSearchCV
.Anders ausgedrückt: Wenn Sie den Entscheidungsschwellenwert ändern, haben Sie die Wahl, wie viele False Positives und False Negatives Sie haben möchten. Betrachten Sie die Hypothese, dass Sie den Entscheidungsschwellenwert auf einen völlig unplausiblen Wert wie -1 setzen. Alle Wahrscheinlichkeiten sind nicht negativ, sodass Sie mit dieser Schwelle für jede Beobachtung "positiv" vorhersagen. Aus einer bestimmten Perspektive ist dies großartig, da Ihre falsch negative Rate 0,0 beträgt. Ihre False-Positive-Rate liegt jedoch auch im Extremfall bei 1,0. In diesem Sinne ist Ihre Wahl des Schwellenwerts bei -1 schrecklich.
Das Ideal ist natürlich, einen TPR von 1,0 und einen FPR von 0,0 und einen FNR von 0,0 zu haben. In realen Anwendungen ist dies jedoch normalerweise nicht möglich. Die Frage lautet dann: "Wie viel FPR bin ich bereit, für wie viel TPR zu akzeptieren?" Und das ist die Motivation von ROC- Kurven.
quelle
GridSearchCV
Ja, das tut es, irgendwie. Es ist ein Hyperparameter Ihrer Entscheidungsregel , aber nicht die zugrunde liegende Regression.
Dies ist ein Entwurfsfehler in sklearn. Die beste Vorgehensweise für die meisten Klassifizierungsszenarien besteht darin, das zugrunde liegende Modell (das Wahrscheinlichkeiten vorhersagt) unter Verwendung eines Maßes für die Qualität dieser Wahrscheinlichkeiten anzupassen (wie den logarithmischen Verlust in einer logistischen Regression). Anschließend sollte ein Entscheidungsschwellenwert für diese Wahrscheinlichkeiten angepasst werden, um einige Geschäftsziele Ihrer Klassifizierungsregel zu optimieren. Die Bibliothek sollte es einfach machen, die Entscheidungsschwelle basierend auf einem Qualitätsmaßstab zu optimieren, aber ich glaube nicht, dass dies gut funktioniert.
Ich denke, dies ist einer der Orte, an denen sklearn es falsch verstanden hat. Die Bibliothek enthält eine Methode
predict
für alle Klassifizierungsmodelle, die Schwellenwerte bei0.5
. Diese Methode ist nutzlos, und ich empfehle nachdrücklich, sie niemals aufzurufen. Es ist bedauerlich, dass sklearn keinen besseren Workflow fördert.quelle
predict
Standardauswahl der Methode von 0,5 als Grenzwert,GridSearchCV
akzeptiere jedochscorer
Objekte, die Modelle hinsichtlich des Cross-Entropie-Verlusts außerhalb der Stichprobe optimieren können. Vermisse ich deinen Standpunkt?