Johdanto
Annettu tietojoukko D = { ( X 1 , Y 2 ) , … , ( X N , Y N ) } D = \{(X_{1}, Y_{2}), \dots,(X_{N}, Y_{N})\} D = {( X 1 , Y 2 ) , … , ( X N , Y N )} , kuten X i X_{i} X i ja Y i Y_{i } Y i ovat jatkuvia, "Lineaarisen regression" tavoitteena on löytää paras viiva, joka sopii tähän dataan.
Toisin sanoen haluamme luoda mallin:
y ^ = a ∗ 0 + a ∗ 1. x ∗ 1 + ⋯ + a ∗ p . x _ p \hat{y} = a*{0} + a*{1}.x*{1} + \dots + a*{p}.x\_{p} y ^ = a ∗ 0 + a ∗ 1 . x ∗ 1 + ⋯ + a ∗ p . x _ p
jossa p p p on muuttujan X X X dimensioiden lukumäärä.
Tässä artikkelissa näemme, kuinka tämä ongelma ratkaistaan kolmessa skenaariossa:
X X X on yksiulotteinen (tavallinen pienin neliö)
Malli, jonka haluamme luoda, on muotoinen:
y ^ = a ∗ 0 + a ∗ 1. x \hat{y} = a*{0} + a*{1}.x y ^ = a ∗ 0 + a ∗ 1 . x
Muista, että lineaarisen regression tavoitteena on löytää dataan parhaiten sopiva viiva. Toisin sanoen meidän on minimoitava datapisteiden ja viivan välinen etäisyys.
( a ∗ 0 ^ , a ∗ 1 ^ ) = argmin ( a ∗ 0 , a ∗ 1 ) ∑ ∗ i = 1 N ( y ∗ i − y ∗ i ^ ) 2 (\hat{a*{0}}, \hat{a*{1}}) = \underset{(a*{0}, a*{1})}{\operatorname{argmin}} \sum\limits*{i=1}^{N} (y*{i} - \hat{y*{i}})^2 ( a ∗ 0 ^ , a ∗ 1 ^ ) = ( a ∗ 0 , a ∗ 1 ) argmin ∑ ∗ i = 1 N ( y ∗ i − y ∗ i ^ ) 2
= argmin ( a ∗ 0 , a ∗ 1 ) ∑ ∗ i = 1 N ( y ∗ i − ( a ∗ 0 + a ∗ 1. x ∗ i ) ) 2 = \underset{(a*{0}, a*{1})}{\operatorname{argmin}} \sum\limits*{i=1}^{N} (y*{i} - (a*{0} + a*{1}.x*{i}))^2 = ( a ∗ 0 , a ∗ 1 ) argmin ∑ ∗ i = 1 N ( y ∗ i − ( a ∗ 0 + a ∗ 1 . x ∗ i ) ) 2
Laitetaan:
L = ∑ ∗ i = 1 N ( y ∗ i − ( a ∗ 0 + a ∗ 1. x _ i ) ) 2 L = \sum\limits*{i=1}^{N} (y*{i} - (a*{0} + a*{1}.x\_{i}))^2 L = ∑ ∗ i = 1 N ( y ∗ i − ( a ∗ 0 + a ∗ 1 . x _ i ) ) 2
Minimimäärän löytämiseksi meidän on ratkaistava seuraavat yhtälöt:
{ ∂ L ∂ a 0 = 0 ∂ L ∂ a 1 = 0 \begin{cases}
\frac{\partial L}{\partial a_{0}} = 0\\
\frac{\partial L}{\partial a_{1}} = 0
\end{cases} { ∂ a 0 ∂ L = 0 ∂ a 1 ∂ L = 0
{ ∑ i = 1 N − 2 ( y i − ( a 0 + a 1 . x i ) ) = 0 ∑ i = 1 N − 2 x i ( y i − ( a 0 + a 1 . x i ) ) = 0 \begin{cases}
\sum\limits_{i=1}^{N} -2(y_{i} - (a_{0} + a_{1}.x_{i})) = 0\\
\sum\limits_{i=1}^{N} -2x_{i}(y_{i} - (a_{0} + a_{1}.x_{i})) = 0
\end{cases} ⎩ ⎨ ⎧ i = 1 ∑ N − 2 ( y i − ( a 0 + a 1 . x i )) = 0 i = 1 ∑ N − 2 x i ( y i − ( a 0 + a 1 . x i )) = 0
Aloitamme kehittämällä ensimmäisen yhtälön:
∑ i = 1 N y i − ∑ i = 1 N a 0 + ∑ i = 1 N a 1 . x i = 0 \sum\limits_{i=1}^{N} y_{i} - \sum\limits_{i=1}^{N}a_{0} + \sum\limits_{i=1}^{N} a_{1}.x_{i} = 0\\ i = 1 ∑ N y i − i = 1 ∑ N a 0 + i = 1 ∑ N a 1 . x i = 0
∑ i = 1 N y i − N a 0 + ∑ i = 1 N a 1 . x i = 0 \sum\limits_{i=1}^{N} y_{i} - Na_{0} + \sum\limits_{i=1}^{N} a_{1}.x_{i} = 0\\ i = 1 ∑ N y i − N a 0 + i = 1 ∑ N a 1 . x i = 0
a 0 = ∑ i = 1 N y i N − ∑ i = 1 N x i N a 1 a_{0} = \frac{\sum\limits_{i=1}^{N} y_{i}}{N} - \frac{\sum\limits_{i=1}^{N} x_{i}}{N}a_{1} a 0 = N i = 1 ∑ N y i − N i = 1 ∑ N x i a 1
a 0 = Y − X a 1 a_{0} = Y - Xa_{1} a 0 = Y − X a 1
Korvaamme toisessa yhtälössä:
∑ i = 1 N x i ( y i − Y + X a 1 − a 1 x i ) = 0 \sum\limits_{i=1}^{N} x_{i}(y_{i} - Y + Xa_{1} - a_{1}x_{i}) = 0 i = 1 ∑ N x i ( y i − Y + X a 1 − a 1 x i ) = 0
∑ i = 1 N ( y i − Y ) + a 1 ( X − x i ) = 0 \sum\limits_{i=1}^{N} (y_{i} - Y) + a_{1}(X - x_{i}) = 0 i = 1 ∑ N ( y i − Y ) + a 1 ( X − x i ) = 0
∑ i = 1 N ( y i − Y ) − ∑ i = 1 N a 1 ( x i − X ) = 0 \sum\limits_{i=1}^{N} (y_{i} - Y) - \sum\limits_{i=1}^{N}a_{1}(x_{i} - X) = 0 i = 1 ∑ N ( y i − Y ) − i = 1 ∑ N a 1 ( x i − X ) = 0
a 1 = ∑ i = 1 N ( y i − Y ) ∑ i = 1 N ( x i − X ) = ∑ i = 1 N ( y i − Y ) ( x i − X ) ∑ i = 1 N ( x i − X ) 2 = C O V ( X , Y ) V A R ( X ) a_{1} = \frac{\sum\limits_{i=1}^{N} (y_{i} - Y)}{\sum\limits_{i=1}^{N}(x_{i} - X)} =
\frac{\sum\limits_{i=1}^{N} (y_{i} - Y)(x_{i} - X)}{\sum\limits_{i=1}^{N}(x_{i} - X)^2} =
\frac{COV(X, Y)}{VAR(X)} a 1 = i = 1 ∑ N ( x i − X ) i = 1 ∑ N ( y i − Y ) = i = 1 ∑ N ( x i − X ) 2 i = 1 ∑ N ( y i − Y ) ( x i − X ) = V A R ( X ) CO V ( X , Y )
Korvaamme takaisin a 0 a_{0} a 0 :ssa:
{ a 0 = Y − X C O V ( X , Y ) V A R ( X ) a 1 = C O V ( X , Y ) V A R ( X ) \begin{cases}
a_{0} = Y - X\frac{COV(X, Y)}{VAR(X)}\\
a_{1} = \frac{COV(X, Y)}{VAR(X)}
\end{cases} { a 0 = Y − X V A R ( X ) CO V ( X , Y ) a 1 = V A R ( X ) CO V ( X , Y )
X X X on moniulotteinen (tavallinen pienin neliö)
Tässä tapauksessa X i X_{i} X i ei ole enää reaaliluku, vaan se on vektori , jonka koko on p p p :
X ∗ i = ( X ∗ i 1 , X ∗ i 2 , … , X ∗ i p ) X*{i} = (X*{i1},X*{i2},\dots,X*{ip}) X ∗ i = ( X ∗ i 1 , X ∗ i 2 , … , X ∗ i p )
Joten malli on kirjoitettu seuraavasti:
y ^ = a ∗ 0 + a ∗ 1 x ∗ 1 + a ∗ 2 x ∗ 2 + ⋯ + a ∗ p x _ p \hat{y} = a*{0} + a*{1}x*{1} + a*{2}x*{2} + \dots + a*{p}x\_{p} y ^ = a ∗ 0 + a ∗ 1 x ∗ 1 + a ∗ 2 x ∗ 2 + ⋯ + a ∗ p x _ p
tai se voidaan kirjoittaa matriisimuodossa:
Y ^ = X . W \hat{Y} = X.W Y ^ = X . W
missä:
Y Y Y on muotoa ( N , 1 ) (N, 1) ( N , 1 ) .
X X X on muotoa ( N , p ) (N, p) ( N , p ) .
W W W on muotoa ( p , 1 ) (p, 1) ( p , 1 ) : tämä on parametrivektori ( w 1 , w 2 , … , w p ) (w_{1}, w_{2}, \dots, w_{p}) ( w 1 , w 2 , … , w p ) .
Kuten ensimmäisessä tapauksessa, pyrimme minimoimaan seuraavan määrän:
W ^ = argmin W ∑ ∗ i = 1 N ( y ∗ i − y _ i ^ ) 2 \hat{W} = \underset{W}{\operatorname{argmin}} \sum\limits*{i=1}^{N} (y*{i} - \hat{y\_{i}})^2 W ^ = W argmin ∑ ∗ i = 1 N ( y ∗ i − y _ i ^ ) 2
Laitetaanpa vielä:
L = ∑ ∗ i = 1 N ( y ∗ i − y _ i ^ ) 2 L = \sum\limits*{i=1}^{N} (y*{i} - \hat{y\_{i}})^2 L = ∑ ∗ i = 1 N ( y ∗ i − y _ i ^ ) 2
= ( Y − X W ) T ( Y − X W ) = (Y-XW)^{T}(Y-XW) = ( Y − X W ) T ( Y − X W )
= Y T Y − Y T X W − W T X T Y + W T X T X W = Y^TY-Y^TXW-W^TX^TY+W^TX^TXW = Y T Y − Y T X W − W T X T Y + W T X T X W
= Y T Y − 2 W T X T Y + W T X T X W = Y^TY-2W^TX^TY+W^TX^TXW = Y T Y − 2 W T X T Y + W T X T X W
Koska haluamme minimoida L L L suhteessa W W W , voimme jättää huomioimatta ensimmäisen termin "Y T Y Y^TY Y T Y ", koska se on riippumaton W W W :sta ja ratkaistaan seuraava yhtälö:
∂ ( − 2 W T X T Y + W T X T X W ) ∂ W = 0 \frac{\partial (-2W^TX^TY+W^TX^TXW)}{\partial W} = 0 ∂ W ∂ ( − 2 W T X T Y + W T X T X W ) = 0
− 2 X T Y + 2 X T X W ^ = 0 -2X^TY+2X^TX\hat{W} = 0 − 2 X T Y + 2 X T X W ^ = 0
W ^ = ( X T X ) − 1 X T Y \hat{W} = (X^TX)^{-1}X^TY W ^ = ( X T X ) − 1 X T Y
Käyttämällä gradienttilaskua
Tässä on gradientin laskeutumisalgoritmin muotoilu:
w ∗ n + 1 = w ∗ n − l r × ∂ f ∂ w _ n w*{n+1} = w*{n} - lr \times \frac{\partial f}{\partial w\_{n}} w ∗ n + 1 = w ∗ n − l r × ∂ w _ n ∂ f
Nyt meidän tarvitsee vain käyttää sitä kahdessa parametrissa a 0 a_{0} a 0 ja a 1 a_{1} a 1 (jos kyseessä on yksi muuttuja X X X ):
{ a 0 ( n + 1 ) = a 0 ( n ) − l r × ∂ L ∂ a 0 a 1 ( n + 1 ) = a 1 ( n ) − l r × ∂ L ∂ a 1 \begin{cases}
a_{0}^{(n+1)} = a_{0}^{(n)} - lr \times \frac{\partial L}{\partial a_{0}}\\
a_{1}^{(n+1)} = a_{1}^{(n)} - lr \times \frac{\partial L}{\partial a_{1}}
\end{cases} { a 0 ( n + 1 ) = a 0 ( n ) − l r × ∂ a 0 ∂ L a 1 ( n + 1 ) = a 1 ( n ) − l r × ∂ a 1 ∂ L
ja tiedämme sen:
{ ∂ L ∂ a 0 = ∑ i = 1 N − 2 ( y i − ( a 0 + a 1 . x i ) ) ∂ L ∂ a 1 = ∑ i = 1 N − 2 x i ( y i − ( a 0 + a 1 . x i ) ) \begin{cases}
\frac{\partial L}{\partial a_{0}} = \sum\limits_{i=1}^{N} -2(y_{i} - (a_{0} + a_{1}.x_{i}))\\
\frac{\partial L}{\partial a_{1}} = \sum\limits_{i=1}^{N} -2x_{i}(y_{i} - (a_{0} + a_{1}.x_{i}))
\end{cases} ⎩ ⎨ ⎧ ∂ a 0 ∂ L = i = 1 ∑ N − 2 ( y i − ( a 0 + a 1 . x i )) ∂ a 1 ∂ L = i = 1 ∑ N − 2 x i ( y i − ( a 0 + a 1 . x i ))
Korvaamalla:
{ a 0 ( n + 1 ) = a 0 ( n ) + 2 × l r × ∑ i = 1 N ( y i − ( a 0 ( n ) + a 1 ( n ) . x i ) ) a 1 ( n + 1 ) = a 1 ( n ) + 2 × l r × ∑ i = 1 N x i ( y i − ( a 0 ( n ) + a 1 ( n ) . x i ) ) \begin{cases}
a_{0}^{(n+1)} = a_{0}^{(n)} + 2 \times lr \times \sum\limits_{i=1}^{N} (y_{i} - (a_{0}^{(n)} + a_{1}^{(n)}.x_{i}))\\
a_{1}^{(n+1)} = a_{1}^{(n)} + 2 \times lr \times \sum\limits_{i=1}^{N} x_{i}(y_{i} - (a_{0}^{(n)} + a_{1}^{(n)}.x_{i}))
\end{cases} ⎩ ⎨ ⎧ a 0 ( n + 1 ) = a 0 ( n ) + 2 × l r × i = 1 ∑ N ( y i − ( a 0 ( n ) + a 1 ( n ) . x i )) a 1 ( n + 1 ) = a 1 ( n ) + 2 × l r × i = 1 ∑ N x i ( y i − ( a 0 ( n ) + a 1 ( n ) . x i ))
Tietovisa
Mikä on optimiparametrivektorin kaava moniulotteisen lineaarisen regression tapauksessa:
C O V ( X , Y ) V A R ( Y ) \frac{COV(X, Y)}{VAR(Y)} V A R ( Y ) CO V ( X , Y )
C O V ( X , Y ) V A R ( X ) \frac{COV(X, Y)}{VAR(X)} V A R ( X ) CO V ( X , Y )
( X T X ) − 1 X T Y (X^TX)^{-1}X^TY ( X T X ) − 1 X T Y "oikea"
Miksi asetamme derivaatan arvoksi 0?
Löytää ääripää. "oikea"
Johdannaisen minimoimiseksi.
Säilytä vain johdannaisen reaaliosa.
Mikä on lineaarisen regression tavoite?
Löytää viiva, joka kulkee kaikkien pisteiden ohi.
Löytääksesi rivin, joka kuvaa parhaiten tietoja."oikea"
Löytää rivi, joka parhaiten erottaa tiedot.