¿Cuál es la diferencia entre la regresión perceptrónica lineal y la regresión lineal LS?

8

Recientemente, un proyecto en el que estoy involucrado hizo uso de un perceptrón lineal para regresión múltiple (21 predictores). Utilizaba estocástico GD. ¿Cómo es esto diferente de la regresión lineal de OLS?

Simon Kuang
fuente
La Perceptronclase a la que se vincula es para un clasificador (salida binaria) en lugar de un regresor (salida continua). ¿Es ese el código real que usaste? Si es así, esa es la diferencia. :)
Dougal
@Dougal, todavía cuenta entre los GLM: scikit-learn.org/stable/…
Simon Kuang
@Dougal: suponga que tiene un (G) LM que optimizó para L2 usando SGDRegressor; ¿Sería esto equivalente a la regresión lineal?
Simon Kuang
Sí, algunos GLM son clasificadores. Si lo usaste SGDRegressor(loss='squared_loss', penalty='none'), eso es OLS.
Dougal

Respuestas:

5

La Perceptronclase de scikit-learn (equivalente a SGDClassifier(loss="perceptron", penalty=None, learning_rate="constant", eta0=1)) usa la siguiente función objetivo:

1Ni=1Nmax(0,yiwTxi).
En este caso, . Si tiene el signo correcto, no incurre en ninguna pérdida; de lo contrario, da pérdida lineal. El perceptrón en particular usa una tasa de aprendizaje fija que también puede generar cierta rareza de optimización.yi{1,1}wTxi

La regresión de mínimos cuadrados, por el contrario, usa Aquí puede ser real; puede darle objetivos de clasificación en si lo desea, pero no le dará un muy buen modelo. Puede optimizar esto si lo desea.

1Ni=1N(yiwTxi)2.
yi{1,1}SGDRegressor(loss="squared_loss", penalty=None)

Los dos definen modelos fundamentalmente diferentes: el perceptrón predice una etiqueta de clase binaria con , mientras que la regresión lineal predice un valor real con . Esta respuesta habla sobre por qué tratar de resolver un problema de clasificación con un algoritmo de regresión puede ser problemático.sign(wTxi)wTxi

Dougal
fuente