Nach meinem Verständnis scheinen der SGD-Klassifikator und die logistische Regression ähnlich zu sein. Ein SGD-Klassifikator mit loss = „log“ implementiert die logistische Regression und loss = „hing“ implementiert die lineare SVM. Ich verstehe auch, dass die logistische Regression den Gradientenabstieg als Optimierungsfunktion verwendet und SGD den stochastischen Gradientenabstieg verwendet, der viel schneller konvergiert. Aber welcher der beiden Algorithmen soll in welchen Szenarien verwendet werden? Wie ähneln sich SGD und logistische Regression und wie unterscheiden sie sich?
Kommentare
Antwort
Willkommen bei SE: Data Science.
SGD ist eine Optimierungsmethode, während Logistic Regression (LR) ein Algorithmus / Modell für maschinelles Lernen ist. Sie können sich vorstellen, dass ein Modell für maschinelles Lernen eine Verlustfunktion definiert und durch die Optimierungsmethode minimiert / maximiert wird.
Einige Bibliotheken für maschinelles Lernen können Benutzer über die beiden Konzepte verwirren. Zum Beispiel gibt es in scikit-learn ein Modell namens SGDClassifier
, das einige Benutzer irreführen könnte, SGD als Klassifikator zu betrachten. Aber nein, das ist ein linearer Klassifikator, der von der SGD optimiert wurde.
Im Allgemeinen kann SGD für eine Vielzahl von Algorithmen für maschinelles Lernen verwendet werden, nicht nur für LR- oder lineare Modelle. Und LR kann andere Optimierer wie verwenden L-BFGS, konjugierter Gradient oder Newton-ähnliche Methoden.
Kommentare
- Wenn ich also
clf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='hinge', random_state=42)
es ist eine Implementierung von linearer SVM und wenn ichclf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='log', random_state=42)
schreibe. Es ist eine Implementierung der logistischen Regression. Habe ich recht? - @AkashDubey Ja