Was ist der Unterschied zwischen Entscheidungsfunktion, Vorhersagefunktion und Vorhersagefunktion für das logistische Regressionsproblem?


10

Ich habe die sklearn-Dokumentation durchgearbeitet, kann jedoch den Zweck dieser Funktionen im Kontext der logistischen Regression nicht verstehen. Denn decision_functiones heißt, dass es der Abstand zwischen der Hyperebene und der Testinstanz ist. Wie sind diese speziellen Informationen nützlich? und wie hängt das mit predictund predict-probamethoden zusammen?

Antworten:


26

Denken Sie daran, dass die funktionale Form der logistischen Regression ist

f(x)=11+e(β0+β1x1++βkxk)

Dies ist, was von zurückgegeben wird predict_proba.

Der Begriff innerhalb des Exponentials

d(x)=β0+β1x1++βkxk

ist das, was von zurückgegeben wird decision_function. Die "Hyperebene", auf die in der Dokumentation Bezug genommen wird, ist

β0+β1x1++βkxk=0

Diese Terminologie ist ein Überbleibsel von Support-Vektor-Maschinen, die eine trennende Hyperebene buchstäblich schätzen. Für die logistische Regression ist diese Hyperebene ein künstliches Konstrukt, es ist die Ebene gleicher Wahrscheinlichkeit, bei der das Modell festgestellt hat, dass beide Zielklassen gleich wahrscheinlich sind.

Die predictFunktion gibt mithilfe der Regel eine Klassenentscheidung zurück

f(x)>0.5

Aufgrund des Risikos von Seifenkisten hat die predictFunktion nur sehr wenige legitime Verwendungszwecke, und ich betrachte die Verwendung als Zeichen eines Fehlers bei der Überprüfung anderer Arbeiten. Ich würde weit genug gehen, um es als Designfehler in sklearn selbst zu bezeichnen (die predict_probaFunktion hätte aufgerufen werden predictmüssen und predicthätte aufgerufen werden müssen predict_class, wenn überhaupt).


Vielen Dank für die Antwort @Matthew, aber können Sie diesen Punkt etwas genauer erläutern? "Für die logistische Regression ist diese Hyperebene ein künstliches Konstrukt, es ist die Ebene gleicher Wahrscheinlichkeit, bei der das Modell festgestellt hat, dass beide Zielklassen gleich wahrscheinlich sind . " ?
Sameed

Diese Erklärung ist interessant und hilfreich. Ich wünschte, sklearn hätte es besser erklärt. Was ich nicht verstehe, ist, was es nützt, den Wert von x in der logistischen Funktion 1 / (1 + e ^ -x) zu kennen? Ich kann mir nur vorstellen, möglicherweise eine andere Sigmoidfunktion wie x / (1+ | x |) zu verwenden. Ist da mehr? Vielen Dank!
ldmtwo

Grundsätzlich sollte die Entscheidungsfunktion das Sigmoid in der logistischen Regression gewesen sein. Richtig?
3nomis

2
Ich denke, der Grund dafür, dass @Matthew auf einer Seifenkiste ist, ist, dass die Verwendung von 0,5 als Schwellenwert für die Vorhersage naiv ist. Das erste, was man tun sollte, ist zu lernen, Kreuzvalidierung, ROC-Kurven und AUC zu verwenden, um einen geeigneten Schwellenwert c auszuwählen, und als Entscheidungsfunktion f (x)> c zu verwenden.
4.
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.