Vad är skillnaden mellan SGD-klassificerare och Logisitc-regressionen?

Enligt min förståelse verkar SGD-klassificeraren och logistisk regression likna. En SGD-klassificering med förlust = ”log” implementerar logistisk regression och förlust = ”gångjärn” implementerar linjär SVM. Jag förstår också att logistisk regression använder gradientnedstigning som optimeringsfunktion och SGD använder stokastisk gradientnedstigning som konvergerar mycket snabbare. Men vilka av de två algoritmerna som ska användas i vilka scenarier? Hur liknar SGD och logistisk regression och hur skiljer de sig?

Kommentarer

Svar

Välkommen till SE: Data Science.

SGD är en optimeringsmetod, medan Logistic Regression (LR) är en algoritm / modell för maskininlärning. Du kan tänka dig att en maskininlärningsmodell definierar en förlustfunktion, och optimeringsmetoden minimerar / maximerar den.

Vissa maskininlärningsbibliotek kan göra användarna förvirrade över de två begreppen. Till exempel finns det i scikit-learn en modell som heter SGDClassifier som kan vilseleda vissa användare att tro att SGD är en klassificerare. Men nej, det är en linjär klassificering optimerad av SGD.

I allmänhet kan SGD användas för ett brett spektrum av maskininlärningsalgoritmer, inte bara LR eller linjära modeller. Och LR kan använda andra optimerare som L-BFGS, konjugerad gradient eller Newton-liknande metoder.

Kommentarer

  • Så om jag skriver clf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='hinge', random_state=42) det är en implementering av Linear SVM och om jag skriver clf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='log', random_state=42). Det är en implementering av logisitisk regression. Har jag rätt?
  • @AkashDubey Ja

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *