A mi entender, el clasificador SGD y la regresión logística parecen similares. Un clasificador SGD con loss = «log» implementa la regresión logística y loss = «bisagra» implementa la SVM lineal. También entiendo que la regresión logística usa el descenso de gradiente como función de optimización y SGD usa el descenso de gradiente estocástico que converge mucho más rápido. Pero, ¿cuál de los dos algoritmos usar en qué escenarios? Además, ¿en qué se parecen y en qué se diferencian SGD y la regresión logística?
Comentarios
- scikit-learn.org/stable/modules/generated/…
Respuesta
Bienvenido a SE: Data Science.
SGD es un método de optimización, mientras que Logistic Regression (LR) es un algoritmo / modelo de aprendizaje automático. Puede pensar en que un modelo de aprendizaje automático define una función de pérdida y el método de optimización la minimiza / maximiza.
Algunas bibliotecas de aprendizaje automático pueden confundir a los usuarios acerca de los dos conceptos. Por ejemplo, en scikit-learn hay un modelo llamado SGDClassifier
que puede inducir a error a algún usuario a pensar que SGD es un clasificador. Pero no, ese es un clasificador lineal optimizado por SGD.
En general, SGD se puede utilizar para una amplia gama de algoritmos de aprendizaje automático, no solo LR o modelos lineales. Y LR puede utilizar otros optimizadores como L-BFGS, gradiente conjugado o métodos similares a Newton.
Comentarios
- Entonces, si escribo
clf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='hinge', random_state=42)
es una implementación de Linear SVM y si escriboclf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='log', random_state=42)
. Es una implementación de regresión logística. ¿Estoy en lo cierto? - @AkashDubey Sí