Ist die Entscheidungsschwelle ein Hyperparameter in der logistischen Regression?


13

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 GridSearchCVMethode von scikit-learn (wie für den Regularisierungsparameter C) einfach über ein Gitter von Schwellenwerten zu suchen .


1
"Soweit ich weiß, wird standardmäßig 0,5 verwendet." Kommt auf die Bedeutung des Wortes "typisch" an. In der Praxis sollte dies niemand tun.
Matthew Drury


Streng genommen ist damit keine logistische Regression gemeint, sondern die Verwendung eines logistischen Regressors mit einem Schwellenwert für die binäre Klassifizierung (Sie können auch einen Regressor für jede der beiden Klassen mit einer kleinen Zufälligkeit oder Gewichtung trainieren, um zu vermeiden, dass sie linear abhängig sind).
smci

Antworten:


12

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 von C 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 Kurven.


Danke für die Antwort @Sycorax. Sie haben mich fast überzeugt. Aber können wir nicht die Idee formalisieren, "wie viel FPR ich bereit bin, für wie viel TPR zu akzeptieren"? zB mit einer Kostenmatrix. Wenn wir eine Kostenmatrix haben, wäre es dann nicht wünschenswert, die optimale Schwelle durch Abstimmung zu finden, wie Sie einen Hyperparameter abstimmen würden? Oder gibt es einen besseren Weg, um die optimale Schwelle zu finden?
Nick

1
CGridSearchCV

@Sycorax Tun die Schwelle und der Intercept (Bias-Term) nicht im Grunde dasselbe? Das heißt, Sie können den Schwellenwert auf 0,5 festlegen, den Achsenabschnitt jedoch entsprechend ändern. Dies ändert das Modell (wie in Ihrem letzten Kommentar angegeben), hat jedoch den gleichen Effekt in Bezug auf binäre Vorhersagen. Ist das richtig? Wenn ja, bin ich mir nicht sicher, ob die strikte Unterscheidung zwischen "Ändern des Modells" und "Ändern der Entscheidungsregel" in diesem Fall so aussagekräftig ist.
Amöbe sagt Reinstate Monica

@amoeba Dies ist eine Bemerkung, die zum Nachdenken anregt. Ich werde darüber nachdenken müssen. Ich nehme an, Ihr Vorschlag lautet: "Halten Sie den Schwellenwert bei 0,5 und behandeln Sie den Achsenabschnitt als einen Hyperparameter, den Sie einstellen." Es gibt mathematisch nichts, was Sie davon abhält, außer der Beobachtung, dass das Modell seine Wahrscheinlichkeit nicht mehr maximiert. Das Erreichen des MLE ist jedoch in einem bestimmten Kontext möglicherweise keine Priorität.
Sycorax sagt Reinstate Monica

10

Das Variieren des Schwellenwerts ändert jedoch die vorhergesagten Klassifizierungen. Bedeutet dies, dass die Schwelle ein Hyperparameter ist?

Ja, das tut es, irgendwie. Es ist ein Hyperparameter Ihrer Entscheidungsregel , aber nicht die zugrunde liegende Regression.

Wenn ja, warum ist es (zum Beispiel) nicht möglich, mit der GridSearchCV-Methode von scikit-learn einfach über ein Gitter von Schwellenwerten zu suchen (wie Sie es für den Regularisierungsparameter C tun würden).

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 predictfür alle Klassifizierungsmodelle, die Schwellenwerte bei 0.5. Diese Methode ist nutzlos, und ich empfehle nachdrücklich, sie niemals aufzurufen. Es ist bedauerlich, dass sklearn keinen besseren Workflow fördert.


Ich teile auch Ihre Skepsis gegenüber der predictStandardauswahl der Methode von 0,5 als Grenzwert, GridSearchCVakzeptiere jedoch scorerObjekte, die Modelle hinsichtlich des Cross-Entropie-Verlusts außerhalb der Stichprobe optimieren können. Vermisse ich deinen Standpunkt?
Sycorax sagt Reinstate Monica

Richtig, wir sind uns einig, dass dies eine bewährte Methode ist, aber die Benutzer nicht dazu ermutigt, Entscheidungsschwellenwerte anzupassen.
Matthew Drury

Erwischt. Ich verstehe was du meinst!
Sycorax sagt Reinstate Monica

1
@Sycorax hat versucht, zu bearbeiten, um zu klären!
Matthew Drury
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.