Читать книгу Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow - Aurélien Géron - Страница 153
Formel 4-23: Gradientenvektor der Kreuzentropie für Kategorie k
ОглавлениеNun können Sie den Gradientenvektor für jede Kategorie berechnen und über das Gradientenverfahren (oder einen anderen Optimierungsalgorithmus) die Parametermatrix Θ ermitteln, für die die Kostenfunktion minimal wird.
Verwenden wir die Softmax-Regression, um die Iris-Blüten in alle drei Kategorien einzuteilen. Die Scikit-Learn-Klasse LogisticRegression nutzt standardmäßig die One-versus-the-Rest-Strategie, wenn Sie diese mit mehr als zwei Kategorien trainieren. Sie können aber den Hyperparameter multi_class auf "multinomial" setzen, um stattdessen die Softmax-Regression zu verwenden. Sie müssen außerdem einen Solver angeben, der die Softmax-Regression unterstützt, beispielsweise den Solver "lbfgs" (Details dazu finden Sie in der Dokumentation von Scikit-Learn). Dieser verwendet automatisch eine ℓ2-Regularisierung, die Sie über den Hyperparameter C steuern können.
X = iris["data"][:, (2, 3)] # Länge und Breite der Kronblätter
y = iris["target"]
softmax_reg = LogisticRegression(multi_class="multinomial",solver="lbfgs", C=10)
softmax_reg.fit(X, y)
Das nächste Mal, wenn Sie eine Iris-Blüte mit 5 cm langen und 2 cm breiten Kronblättern finden, können Sie Ihr Modell fragen, welche Art Iris dies ist. Es sollte als Antwort Iris virginica (Kategorie 2) mit einer Wahrscheinlichkeit von 94,2% geben (oder Iris versicolor mit einer Wahrscheinlichkeit von 5,8%):
>>> softmax_reg.predict([[5, 2]])
array([2])
>>> softmax_reg.predict_proba([[5, 2]])
array([[6.38014896e-07, 5.74929995e-02, 9.42506362e-01]])
Abbildung 4-25 zeigt die sich dabei ergebenden Entscheidungsgrenzen als Hintergrundfarben. Die Entscheidungsgrenzen zwischen zwei Kategorien sind stets linear. Die Abbildung zeigt auch die Wahrscheinlichkeiten für die Kategorie Iris versicolor als geschwungene Linien (z.B. steht die mit 0,450 beschriftete Linie für eine Wahrscheinlichkeit von 45%). Das Modell kann eine Kategorie vorhersagen, die eine geschätzte Wahrscheinlichkeit unter 50% hat. Beispielsweise ist an dem Punkt, an dem sich alle drei Linien treffen, die Wahrscheinlichkeit für alle Kategorien die gleiche, nämlich 33%.
Abbildung 4-25: Entscheidungsgrenzen bei der Softmax-Regression