Wat is het verschil tussen SGD-classificator en de Logisitc-regressie?

Naar mijn mening lijken de SGD-classificator en Logistische regressie op elkaar. Een SGD-classifier met loss = “log” implementeert Logistische regressie en loss = “hinge” implementeert Lineaire SVM. Ik begrijp ook dat logistische regressie gradiëntafdaling gebruikt als de optimalisatiefunctie en SGD gebruikt stochastische gradiëntafdaling die veel sneller convergeert. Maar welke van de twee algoritmen moeten in welke scenarios worden gebruikt? En hoe zijn SGD en logistieke regressie vergelijkbaar en hoe verschillen ze?

Reacties

Antwoord

Welkom bij SE: Data Science.

SGD is een optimalisatiemethode, terwijl Logistic Regression (LR) een algoritme / model voor machine learning is. U kunt zich voorstellen dat een machine learning-model een verliesfunctie definieert en dat de optimalisatiemethode deze minimaliseert / maximaliseert.

Sommige machine learning-bibliotheken kunnen gebruikers in verwarring brengen over de twee concepten. In scikit-learn is er bijvoorbeeld een model genaamd SGDClassifier dat sommige gebruikers zou kunnen misleiden door te denken dat SGD een classificator is. Maar nee, dat is een lineaire classificator die is geoptimaliseerd door de SGD.

In het algemeen kan SGD worden gebruikt voor een breed scala aan algoritmen voor machine learning, niet alleen voor LR of lineaire modellen. En LR kan andere optimizers gebruiken, zoals L-BFGS, geconjugeerde gradiënt of Newton-achtige methoden.

Opmerkingen

  • Dus, als ik clf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='hinge', random_state=42) het is een implementatie van Linear SVM en als ik schrijf clf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='log', random_state=42). Het is een implementatie van Logisitische regressie. Heb ik gelijk?
  • @AkashDubey Ja

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *