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 .



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow