Skip to main content

Lineær regression

Senest opdateret June 19, 20244 minutters læsning


Introduktion

Givet et datasæt D={(X1,Y2),,(XN,YN)}D = \{(X_{1}, Y_{2}), \dots,(X_{N}, Y_{N})\} såsom XiX_{i} og YiY_{i } er kontinuerlige. Målet med "Lineær regression" er at finde den bedste linje, der passer til disse data.

Vi ønsker med andre ord at skabe modellen:

y^=a0+a1.x1++ap.x_p\hat{y} = a*{0} + a*{1}.x*{1} + \dots + a*{p}.x\_{p}

hvor pp er antallet af dimensioner af variablen XX.

I denne artikel vil vi se, hvordan du løser dette problem i tre scenarier:

  • Når X er endimensional, dvs. p=1p=1.

  • Når X er flerdimensional, dvs. p>1p>1.

  • Brug af gradientnedstigning.

XX er endimensionel (almindelig mindste kvadrat)

Den model, vi ønsker at skabe, er af form:

y^=a0+a1.x\hat{y} = a*{0} + a*{1}.x

Husk, at målet med lineær regression er at finde den linje, der passer bedst til dataene. Med andre ord skal vi minimere afstanden mellem datapunkterne og linjen.

(a0^,a1^)=argmin(a0,a1)i=1N(yiyi^)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

=argmin(a0,a1)i=1N(yi(a0+a1.xi))2= \underset{(a*{0}, a*{1})}{\operatorname{argmin}} \sum\limits*{i=1}^{N} (y*{i} - (a*{0} + a*{1}.x*{i}))^2

Lad os sætte:

L=i=1N(yi(a0+a1.x_i))2L = \sum\limits*{i=1}^{N} (y*{i} - (a*{0} + a*{1}.x\_{i}))^2

For at finde minimum skal vi løse følgende ligninger:

{La0=0La1=0\begin{cases} \frac{\partial L}{\partial a_{0}} = 0\\ \frac{\partial L}{\partial a_{1}} = 0 \end{cases} {i=1N2(yi(a0+a1.xi))=0i=1N2xi(yi(a0+a1.xi))=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}

Vi starter med at udvikle den første ligning:

i=1Nyii=1Na0+i=1Na1.xi=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=1NyiNa0+i=1Na1.xi=0\sum\limits_{i=1}^{N} y_{i} - Na_{0} + \sum\limits_{i=1}^{N} a_{1}.x_{i} = 0\\ a0=i=1NyiNi=1NxiNa1a_{0} = \frac{\sum\limits_{i=1}^{N} y_{i}}{N} - \frac{\sum\limits_{i=1}^{N} x_{i}}{N}a_{1} a0=YXa1a_{0} = Y - Xa_{1}

Vi erstatter i den anden ligning:

i=1Nxi(yiY+Xa1a1xi)=0\sum\limits_{i=1}^{N} x_{i}(y_{i} - Y + Xa_{1} - a_{1}x_{i}) = 0 i=1N(yiY)+a1(Xxi)=0\sum\limits_{i=1}^{N} (y_{i} - Y) + a_{1}(X - x_{i}) = 0 i=1N(yiY)i=1Na1(xiX)=0\sum\limits_{i=1}^{N} (y_{i} - Y) - \sum\limits_{i=1}^{N}a_{1}(x_{i} - X) = 0 a1=i=1N(yiY)i=1N(xiX)=i=1N(yiY)(xiX)i=1N(xiX)2=COV(X,Y)VAR(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)}

Vi erstatter tilbage i a0a_{0}:

{a0=YXCOV(X,Y)VAR(X)a1=COV(X,Y)VAR(X)\begin{cases} a_{0} = Y - X\frac{COV(X, Y)}{VAR(X)}\\ a_{1} = \frac{COV(X, Y)}{VAR(X)} \end{cases}

XX er multidimensionel (almindelig mindste kvadrat)

I dette tilfælde er XiX_{i} ikke længere et reelt tal, men i stedet er det en vektor af størrelsen pp:

Xi=(Xi1,Xi2,,Xip)X*{i} = (X*{i1},X*{i2},\dots,X*{ip})

Så modellen er skrevet som følger:

y^=a0+a1x1+a2x2++apx_p\hat{y} = a*{0} + a*{1}x*{1} + a*{2}x*{2} + \dots + a*{p}x\_{p}

eller det kan skrives i et matrixformat:

Y^=X.W\hat{Y} = X.W

hvor:

  • YY har formen (N,1)(N, 1).

  • XX har formen (N,p)(N, p).

  • WW har formen (p,1)(p, 1): dette er parametrene vektor (w1,w2,,wp)(w_{1}, w_{2}, \dots, w_{p}).

På samme måde som i det første tilfælde tilstræber vi at minimere følgende mængde:

W^=argminWi=1N(yiy_i^)2\hat{W} = \underset{W}{\operatorname{argmin}} \sum\limits*{i=1}^{N} (y*{i} - \hat{y\_{i}})^2

Lad os igen sige:

L=i=1N(yiy_i^)2L = \sum\limits*{i=1}^{N} (y*{i} - \hat{y\_{i}})^2

=(YXW)T(YXW)= (Y-XW)^{T}(Y-XW) =YTYYTXWWTXTY+WTXTXW= Y^TY-Y^TXW-W^TX^TY+W^TX^TXW =YTY2WTXTY+WTXTXW= Y^TY-2W^TX^TY+W^TX^TXW

Da vi ønsker at minimere LL med hensyn til WW, så kan vi ignorere det første udtryk "YTYY^TY", fordi det er uafhængigt af WW, og lad os løse følgende ligning:

(2WTXTY+WTXTXW)W=0\frac{\partial (-2W^TX^TY+W^TX^TXW)}{\partial W} = 0 2XTY+2XTXW^=0-2X^TY+2X^TX\hat{W} = 0 W^=(XTX)1XTY\hat{W} = (X^TX)^{-1}X^TY

Bruger gradientnedstigning

Her er formuleringen af ​​gradient descent-algoritmen:

wn+1=wnlr×fw_nw*{n+1} = w*{n} - lr \times \frac{\partial f}{\partial w\_{n}}

Nu skal vi bare anvende det på de to parametre a0a_{0} og a1a_{1} (i tilfælde af én variabel XX):

{a0(n+1)=a0(n)lr×La0a1(n+1)=a1(n)lr×La1\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}

og vi ved at:

{La0=i=1N2(yi(a0+a1.xi))La1=i=1N2xi(yi(a0+a1.xi))\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}

Ved substitution:

{a0(n+1)=a0(n)+2×lr×i=1N(yi(a0(n)+a1(n).xi))a1(n+1)=a1(n)+2×lr×i=1Nxi(yi(a0(n)+a1(n).xi))\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}

Quiz

  • Hvad er formlen for den optimale parametervektor i tilfælde af multidimensionel lineær regression:

  • COV(X,Y)VAR(Y)\frac{COV(X, Y)}{VAR(Y)}

  • COV(X,Y)VAR(X)\frac{COV(X, Y)}{VAR(X)}

  • (XTX)1XTY(X^TX)^{-1}X^TY "korrekt"

  • Hvorfor sætter vi den afledede til 0?

  • At finde ekstremum. "korrekt"

  • For at minimere derivatet.

  • Kun at beholde den reelle del af derivatet.

  • Hvad er formålet med lineær regression?

  • At finde den linje, der går forbi alle punkterne.

  • For at finde den linje, der bedst beskriver dataene."korrekt"

  • At finde den linje, der bedst adskiller dataene.

Lær tekniske færdigheder online hos Code Labs Academy

Lær tekniske færdigheder online hos Code Labs Academy

Bliv en del af vores støttende fællesskab, frigør dit potentiale, og påbegynd en givende karrierevej.