W moim rozumieniu klasyfikator SGD i regresja logistyczna wydają się podobne. Klasyfikator SGD z stratą = „log” implementuje regresję logistyczną, a strata = „zawias” implementuje liniową SVM. Rozumiem również, że regresja logistyczna używa gradientu zstępującego jako funkcji optymalizacji, a SGD wykorzystuje stochastyczne zejście gradientowe, które zbiegają się znacznie szybciej. Ale którego z dwóch algorytmów użyć w jakich scenariuszach? Ponadto, w jaki sposób SGD i regresja logistyczna są podobne i czym się różnią?
Komentarze
- scikit-learn.org/stable/modules/generated/…
Odpowiedz
Witamy w SE: Data Science.
SGD to metoda optymalizacji, podczas gdy regresja logistyczna (LR) to algorytm / model uczenia maszynowego. Możesz pomyśleć o tym, że model uczenia maszynowego definiuje funkcję straty, a metoda optymalizacji minimalizuje / maksymalizuje ją.
Niektóre biblioteki systemów uczących się mogą wprawiać użytkowników w zakłopotanie co do tych dwóch koncepcji. Na przykład w scikit-learn istnieje model o nazwie SGDClassifier
, który może wprowadzić niektórych użytkowników w błąd, sądząc, że SGD jest klasyfikatorem. Ale nie, to „klasyfikator liniowy zoptymalizowany przez SGD.
Ogólnie SGD może być używany w szerokim zakresie algorytmów uczenia maszynowego, nie tylko w modelach LR czy liniowych. LR może wykorzystywać inne optymalizatory, takie jak L-BFGS, sprzężone metody gradientowe lub metody podobne do Newtona.
Komentarze
- Jeśli napiszę
clf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='hinge', random_state=42)
jest implementacją Linear SVM i jeśli napiszęclf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='log', random_state=42)
. Jest to implementacja regresji logistycznej. Czy mam rację? - @AkashDubey Tak