¿Cuál es la diferencia entre el clasificador SGD y la regresión logística?

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

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 escribo clf = 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í

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *