Megértésem szerint az SGD osztályozó és a logisztikai regresszió hasonlónak tűnik. A veszteség = “log” típusú SGD osztályozó végrehajtja a logisztikai regressziót és a veszteség = “csukló” a lineáris SVM-et. Azt is megértem, hogy a logisztikai regresszió gradiens süllyedést használ optimalizálási funkcióként, az SGD pedig sztochasztikus gradiens süllyedést használ, amely sokkal gyorsabban konvergál. De a két algoritmus közül melyiket mely forgatókönyveknél kell használni? Továbbá, hogy az SGD és a Logistic regresszió hasonló és miben különböznek egymástól?
Megjegyzések
- scikit-learn.org/stable/modules/generated/…
Válasz
Üdvözli az SE: Data Science.
Az SGD egy optimalizálási módszer, míg a Logistic Regression (LR) egy gépi tanulási algoritmus / modell. Gondolhat arra, hogy a gépi tanulási modell meghatározza a veszteségfüggvényt, és az optimalizálási módszer minimalizálja / maximalizálja azt.
Egyes gépi tanulási könyvtárak összezavarhatják a felhasználókat a két fogalomban. Például a scikit-learn ban található egy SGDClassifier
nevű modell, amely félrevezethet egyes felhasználókat, ha azt gondolják, hogy az SGD osztályozó. De nem, ez az SGD által optimalizált lineáris osztályozó.
Általában az SGD sokféle gépi tanulási algoritmushoz használható, nemcsak LR vagy lineáris modellekhez. És az LR más optimalizálókat is használhat, mint pl. L-BFGS, konjugált gradiens vagy Newton-szerű módszerek.
Megjegyzések
- Tehát, ha írok
clf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='hinge', random_state=42)
a Linear SVM implementációja, és ha írokclf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='log', random_state=42)
. Ez a Logisitic regresszió megvalósítása. Jól gondolom? - @AkashDubey Igen