Definition: Logistisches Modell

Sei ein Datenpunkt.
Sei die Sigmoid-Funktion.

Als logistisches Modell definieren wir die Funktion mit

wobei die Parameter von seien.

Das Klassifikationsmodell erhalten wir abschließend durch .

Definition: Logistische Regression

Sei ein gelabelter Datensatz.
Sei ein logistisches Modell.
Sei der logistische Fehler des Modells.

Die optimalen Parameter der logistischen Regression erhalten wir durch

Das Optimierungsproblem ist konvex, kann aber auch mithilfe numerischer Methoden (bspw. Gradient Descent) effizient gelöst werden.

Anmerkung

Und wenn wir mehrere Klassen haben?

Für den Fall, dass wir mehr als zwei Klassen klassifizieren müssen, teilen wir das Problem in mehrere binäre Klassifikationsprobleme auf.

Für Klassen lernen wir also und bilden den (one-vs-rest) Mehrklassenklassifikator durch

Achtung: Polynomielle Logistische Regression (nichtlineare Klassen)

Da der Kern des logistischen Modells (nämlich ) im Grunde nur eine lineare Regression ist, kann auch die logistische Regression nur linear separierbare Klassen voneinander trennen.

Heißt: die Grenzen sind stets Linien:

Müssen wir Klassen trennen, die nicht linear sind, funktioniert auch die logistische Regression nicht, wie man an dem folgenden Beispiel gut sehen kann:

Um nicht-lineare Klassen zu trennen, können wir jedoch einfach die polynomielle Regression nutzen und erhalten damit in dem Beispiel die folgenden Klassengrenzen:

Logistische Regression mit scikit-learn

In Python erhalten wir ein logistisches Modell durch

X=((16,22), (43,70), (135,50), (42,46), (60,59), (105,140))
y=(1,1,0,0,0,1)
 
from sklearn.linear_model import LogisticRegression
reg = LogisticRegression().fit(X,y)
 
reg.predict([(5,10)])

Die Gewichte erhalten wir wie folgt:

  • reg.intercept_
  • reg.coef_[0][0]
  • reg.coef_[0][1]