Sök…


Vanliga minsta kvadrater

Ordinary Least Squares är en metod för att hitta den linjära kombinationen av funktioner som bäst passar det observerade resultatet i följande mening.

Om vektorn av utfall som ska förutsägas är y , och de förklarande variablerna bildar matrisen X , kommer OLS att hitta vektorn β- lösning

min β | y ^ - y | 2 2 ,

där y ^ = X β är den linjära förutsägelsen.

I sklearn görs detta med sklearn.linear_model.LinearRegression .

Applikationskontekst

OLS bör endast tillämpas på regressionsproblem, det är i allmänhet olämpligt för klassificeringsproblem: Kontrast

  • Är e-post skräppost? (Klassificering)
  • Vilket är det linjära förhållandet mellan kommentarer beror på svarets längd? (Regression)

Exempel

Låt oss generera en linjär modell med lite brus, och se sedan om LinearRegression lyckas rekonstruera den linjära modellen.

Först genererar vi X matrisen:

import numpy as np

X = np.random.randn(100, 3)

Nu kommer vi att generera y som en linjär kombination av X med lite brus:

beta = np.array([[1, 1, 0]])
y = (np.dot(x, beta.T) + 0.01 * np.random.randn(100, 1))[:, 0]

Observera att den verkliga linjära kombinationen som genererar y ges av `beta.

För att försöka rekonstruera detta från X och y , låt oss göra:

>>> linear_model.LinearRegression().fit(x, y).coef_
array([  9.97768469e-01,   9.98237634e-01,   7.55016533e-04])

Observera att denna vektor liknar beta .



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow