No meu entendimento, o classificador SGD e a regressão logística parecem semelhantes. Um classificador SGD com loss = “log” implementa regressão logística e loss = “hinge” implementa Linear SVM. Eu também entendo que a regressão logística usa gradiente descendente como função de otimização e SGD usa descida gradiente estocástica que converge muito mais rápido. Mas qual dos dois algoritmos usar em quais cenários? Além disso, como o SGD e a regressão logística são semelhantes e como são diferentes?
Comentários
- scikit-learn.org/stable/modules/generated/…
Resposta
Bem-vindo ao SE: Data Science.
SGD é um método de otimização, enquanto a regressão logística (LR) é um algoritmo / modelo de aprendizado de máquina. Você pode pensar que um modelo de aprendizado de máquina define uma função de perda e o método de otimização a minimiza / maximiza.
Algumas bibliotecas de aprendizado de máquina podem confundir os usuários sobre os dois conceitos. Por exemplo, em scikit-learn , há um modelo chamado SGDClassifier
que pode enganar alguns usuários a pensar que SGD é um classificador. Mas não, esse é um classificador linear otimizado pelo SGD.
Em geral, o SGD pode ser usado para uma ampla gama de algoritmos de aprendizado de máquina, não apenas LR ou modelos lineares. E o LR pode usar outros otimizadores como L-BFGS, gradiente conjugado ou métodos semelhantes a Newton.
Comentários
- Portanto, se eu escrever
clf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='hinge', random_state=42)
é uma implementação de Linear SVM e se eu escreverclf = SGDClassifier( class_weight='balanced', alpha=i, penalty='l2', loss='log', random_state=42)
. É uma implementação de regressão logística. Estou certo? - @AkashDubey Sim