Qual è la differenza tra il classificatore SGD e la regressione Logisitc?

A quanto mi risulta, il classificatore SGD e la regressione logistica sembrano simili. Un classificatore SGD con loss = “log” implementa la regressione logistica e loss = “hinge” implementa Linear SVM. Capisco anche che la regressione logistica utilizza la discesa del gradiente come funzione di ottimizzazione e SGD utilizza la discesa del gradiente stocastico che converge molto più velocemente. Ma quale dei due algoritmi utilizzare in quali scenari? Inoltre, in che modo SGD e la regressione logistica sono simili e in che modo sono diversi?

Commenti

Risposta

Benvenuto in SE: Data Science.

SGD è un metodo di ottimizzazione, mentre Logistic Regression (LR) è un algoritmo / modello di apprendimento automatico. Puoi pensare che un modello di apprendimento automatico definisce una funzione di perdita e il metodo di ottimizzazione la minimizza / massimizza.

Alcune librerie di machine learning potrebbero confondere gli utenti sui due concetti. Ad esempio, in scikit-learn cè un modello chiamato SGDClassifier che potrebbe indurre in errore alcuni utenti a pensare che SGD sia un classificatore. Ma no, quello “è un classificatore lineare ottimizzato da SGD.

In generale, SGD può essere utilizzato per unampia gamma di algoritmi di apprendimento automatico, non solo LR o modelli lineari. E LR può utilizzare altri ottimizzatori come L-BFGS, coniugato gradiente o metodi simili a Newton.

Commenti

  • Quindi, se scrivo clf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='hinge', random_state=42) è unimplementazione di Linear SVM e se scrivo clf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='log', random_state=42). È unimplementazione della regressione Logisitic. Ho ragione?
  • @AkashDubey Sì

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *