Ich habe Probleme, die logistische Regression für die Einteilung in drei Klassen zu verstehen (und umzusetzen)


7

(Als Referenz verwende ich Kevin P Murphys Buch "Maschinelles Lernen: Eine probabilistische Perspektive" und implementiere mit MATLAN - ohne Toolboxen)

Ich habe einen Datensatz mit 392 Stichproben (Zeilen), jede Stichprobe hat 8 Merkmale (Spalten), von denen eines die Klasse definiert (dh Spalte 1 der Merkmale ist in drei gleiche Klassen unterteilt, die die drei Klassen definieren - niedrig, mittel und hoch ).

Es fällt mir wirklich schwer zu verstehen, wie ein logistisches Regressionsmodell erstellt wird, um eine Stichprobe in eine dieser drei Klassen einzuteilen.

Ich habe gerade das Lernen und Erstellen eines linearen Regressionsmodells abgeschlossen, in dem ich sowohl die Lösung für gewöhnliche kleinste Quadrate (geschlossene Form) für den Gewichtsvektor als auch die Lösung für Gradientenabstieg (offene Form) kennengelernt habe. Aber ich habe nie einen Gradientenabstieg implementiert, weil meine Daten perfekt mit der OLS-Lösung für Gewichtsvektoren übereinstimmen.

Ich bin äußerst verwirrt darüber, wie ein Gewichtsvektor für die logistische Regression erstellt wird. Ich verstehe, dass die Verwendung des Gradientenabstiegs erforderlich ist, da es keine geschlossene Lösung gibt. Ich habe auch über die Newton-Methode zur Berechnung der Gewichte gelesen, aber ich verstehe sie überhaupt nicht.

Und nachdem Sie diese Methoden zur Berechnung von Gewichten verwendet haben, wie wenden Sie die Gewichte auf die Probendaten an? Bei der linearen Regression lag dies einfach daran, dass Sie die Gewichte einfach mit den Merkmalen (und Merkmalen höherer Ordnung für die lineare Regression höherer Ordnung) multipliziert haben. Ist dies bei der logistischen Regression jedoch dasselbe?

Mein bisheriges Verständnis ist außerdem, dass dieses Modell nur für die binäre Klassifizierung funktioniert. Wie würde ich es also für drei Klassen tun?

Grundsätzlich läuft meine Frage darauf hinaus:

Wie genau finden Sie den Gewichtsvektor für die logistische Regression (entweder mit Gradientenabstieg oder mit der Newton-Methode, je nachdem, was einfacher ist) und wie wenden Sie den Gewichtsvektor auf die Stichprobe an, um daraus eine Klassifizierung für 3 Klassen (nicht nur zwei) zu erhalten. .


Es gibt einen Coursera-Kurs zum maschinellen Lernen , der dieses Material viel besser behandelt als hier.
Kyle Jones

Antworten:


7

Wie wenden Sie den Gewichtsvektor auf die Stichprobe an, um daraus eine Klassifizierung für 3 Klassen (nicht nur für zwei) zu erhalten?

Wenn Sie haben n mögliche Klassen dann müssen Sie trainieren nLogistische Klassifizierer für Ihre Trainingsdaten, wobei jeder Klassifizierer als Ausgabe die Wahrscheinlichkeit erzeugt, dass eine bestimmte Stichprobe ein Mitglied der Klasse ist, für deren Erkennung der Klassifizierer trainiert ist. Sobald das Training abgeschlossen ist, lassen Sie alle trainierten Klassifikatoren versuchen, eine neue Stichprobe zu klassifizieren, und versuchen, das Urteil des Klassifikators zu akzeptieren, der den höchsten Wahrscheinlichkeitswert erzeugt. Dies wird als One-vs- All- oder One-vs-Rest- Klassifizierung bezeichnet und ist eine Standardmethode zur Verwendung von Binärklassifizierern für die Klassifizierung mehrerer Klassen.

Die Gewichte werden beim Klassifizieren neuer Daten genauso angewendet wie beim Trainieren des Klassifikators. Sie haben einen Gewichtsvektorθ enthält Koeffizienten, die in Kombination mit dem Merkmalsvektor einer Stichprobe vorliegen xeinen Hypothesenwert ergeben. Für die lineare RegressionθT.x (erweitert: θ0+θ1x1+θ2x2+...) ergibt den Hypothesenwert. Zur logistischen RegressionθT.x wird als Exponent in der logistischen Funktion verwendet, um den Hypothesenwert zu erzeugen:

hθ(x)=11+e- -θT.x
e ist die übliche natürliche logarithmische Konstante 2,71828.

hθ(x) ist die Wahrscheinlichkeit, dass die Stichprobe xist ein Mitglied der Klasse, das der Klassifizierer erkennt. Berechnenhθ(x) für jeden Klassifikator und akzeptieren Sie das Urteil des Klassifikators, der den größten Wahrscheinlichkeitswert erzeugt.

Wie genau finden Sie den Gewichtsvektor für die logistische Regression (entweder mit Gradientenabstieg oder mit der Newton-Methode, je nachdem, was einfacher ist)?

Der Gradientenabstieg funktioniert für die logistische Regression genauso wie für die lineare Regression. Sie versuchen immer noch, die Kostenfunktion zu minimieren, indem Sie die Gewichte mithilfe partieller Ableitungen der Kostenfunktion iterativ auf bessere Werte verschieben. Die Hypothesenfunktion ist für die logistische Regression unterschiedlich, aber die Art und Weise, wie sie beim Gradientenabstieg verwendet wird, ist dieselbe. Sobald Sie Code geschrieben haben, um den Gradientenabstieg für die lineare Regression durchzuführen, sollten Sie in der Lage sein, einfach eine andere Hypothesenfunktion anzuschließen und sie für die logistische Regression verwenden zu lassen.

Pseudocode für eine Iteration des Gradientenabfalls:

newtheta := theta;
learning_rate := 0.01;                                                        
for k := 1 to n
   sum := 0
   for i := 1 to m
      sum := sum + (hypothesis(x[i], theta) - y[i]) * x[i][k];              
   end
   nudge := sum * learning_rate;                                            
   newtheta[k] := newtheta[k] - nudge;                                      
end
theta := newtheta;                                                          

x ist eine Matrix mit Ihren Trainingsdaten, eine Stichprobe pro Zeile.

y ist ein Vektor, der die korrekte Klassifizierungsvorhersage für jede Stichprobe enthält, 1, wenn die Stichprobe in der Klasse ist, andernfalls 0.

m ist die Anzahl der Proben.

n ist die Anzahl der Merkmale.

Die Idee ist, dass Sie diesen Vorgang wiederholen, bis Sie über den Trainingssatz hinweg minimale und akzeptable Kosten (Fehler) erreicht haben.


Man könnte die logistische Regression auf die multinomiale logistische Regression ausweiten und dennoch die Konvexität für den Gradientenabstieg beibehalten. Dies kann jedoch etwas außerhalb des Verständnisses von OP liegen, wenn der Gradientenabstieg für Binärdateien schwierig ist.
Nicholas Mancuso
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.