Mitä eroa on SGD-luokittelijalla ja Logisitc-regressiolla?

Ymmärtääkseni SGD-luokittelija ja logistinen regressio näyttävät samanlaisilta. SGD-luokittelija, jolla loss = ”log”, toteuttaa logistisen regression ja loss = ”sarana” toteuttaa Linear SVM: n. Ymmärrän myös, että logistinen regressio käyttää gradienttia laskeutumista optimointitoimintona ja SGD käyttää stokastista gradientin laskeutumista, joka yhtyy paljon nopeammin. Mutta mitä kahdesta algoritmista käyttää missä skenaarioissa? Millä tavoin SGD ja logistinen regressio ovat samanlaisia ja miten ne eroavat toisistaan?

Kommentit

Vastaa

Tervetuloa SE: Data Science -ohjelmaan.

SGD on optimointimenetelmä, kun taas Logistic Regression (LR) on koneoppimisalgoritmi / -malli. Voit ajatella, että koneoppimismalli määrittelee häviöfunktion, ja optimointimenetelmä minimoi / maksimoi sen.

Jotkut koneoppimisen kirjastot saattavat aiheuttaa käyttäjille hämmennystä näistä kahdesta käsitteestä. Esimerkiksi scikit-learn -kohdassa on malli nimeltä SGDClassifier, joka saattaa johtaa jotakin käyttäjää harhaan ajattelemaan, että SGD on luokittelija. Mutta ei, se on SGD: n optimoima lineaarinen luokittelija.

Yleensä SGD: tä voidaan käyttää monille koneoppimisalgoritmeille, ei vain LR: lle tai lineaarisille malleille. Ja LR voi käyttää muita optimoijia, kuten L-BFGS, konjugaattigradientti tai Newtonin kaltaiset menetelmät.

Kommentit

  • Joten, jos kirjoitan clf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='hinge', random_state=42) se on lineaarisen SVM: n toteutus ja jos kirjoitan clf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='log', random_state=42). Se on logisitisen regression toteutus. Olenko oikeassa?
  • @AkashDubey Kyllä

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *