scikit-learn
Regresión
Buscar..
Mínimos cuadrados ordinarios
Ordinary Least Squares es un método para encontrar la combinación lineal de características que mejor se ajuste al resultado observado en el siguiente sentido.
Si el vector de resultados a predecir es y , y las variables explicativas forman la matriz X , entonces OLS encontrará el vector β resolviendo
min β | y ^ - y | 2 2 ,
donde y ^ = X β es la predicción lineal.
En sklearn, esto se hace usando sklearn.linear_model.LinearRegression
.
Contexto de aplicación
OLS solo debe aplicarse a problemas de regresión, generalmente no es adecuado para problemas de clasificación: Contraste
- ¿Es un correo electrónico spam? (Clasificación)
- ¿Cuál es la relación lineal entre upvotes depende de la longitud de la respuesta? (Regresión)
Ejemplo
LinearRegression
un modelo lineal con algo de ruido, luego veamos si LinearRegression
arregla para reconstruir el modelo lineal.
Primero generamos la matriz X
:
import numpy as np
X = np.random.randn(100, 3)
Ahora generaremos la y
como una combinación lineal de X
con algo de ruido:
beta = np.array([[1, 1, 0]])
y = (np.dot(x, beta.T) + 0.01 * np.random.randn(100, 1))[:, 0]
Tenga en cuenta que la verdadera combinación lineal que genera y
está dada por `beta.
Para tratar de reconstruir esto a partir de X
e y
solo, hagamos:
>>> linear_model.LinearRegression().fit(x, y).coef_
array([ 9.97768469e-01, 9.98237634e-01, 7.55016533e-04])
Tenga en cuenta que este vector es muy similar a la beta
.