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
- scikit-learn.org/stable/modules/generated/…
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 kirjoitanclf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='log', random_state=42)
. Se on logisitisen regression toteutus. Olenko oikeassa? - @AkashDubey Kyllä