Skip to main content

Linear Regression

Nai -update sa September 05, 20244 minuto basahin


Panimula

Binigyan ng dataset na D={(X1,Y2),,(XN,YN)}D = \{(X_{1}, Y_{2}), \dots,(X_{N}, Y_{N})\} gaya ng XiX_{i} at YiY_{i } ay tuluy-tuloy, Ang layunin ng "Linear Regression" ay mahanap ang pinakamahusay na linya na akma sa data na ito.

Sa madaling salita, gusto naming lumikha ng modelo:

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

kung saan ang pp ay ang bilang ng mga sukat ng variable na XX.

Sa artikulong ito makikita natin kung paano lutasin ang problemang ito sa tatlong sitwasyon:

  • Kapag ang X ay isang dimensional i.e. p=1p=1.

  • Kapag ang X ay multi-dimensional i.e. p>1p>1.

  • Paggamit ng gradient descent.

Ang XX ay isang dimensyon (Ordinary Least Square)

Ang modelo na gusto nating likhain ay may hugis:

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

Tandaan na ang layunin ng linear regression ay mahanap ang linyang pinakaangkop sa data. Sa madaling salita, kailangan nating i-minimize ang distansya sa pagitan ng mga punto ng data at linya.

(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

Ilagay natin:

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

Upang mahanap ang pinakamababa, kailangan nating lutasin ang mga sumusunod na equation:

{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}

Magsisimula tayo sa pagbuo ng unang equation:

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}

Pinapalitan namin ang pangalawang equation:

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)}

Pinapalitan namin pabalik sa 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}

Ang XX ay multi-dimensional (Ordinary Least Square)

Sa kasong ito, ang XiX_{i} ay hindi na isang tunay na numero, ngunit sa halip ito ay isang vector na may sukat na pp:

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

Kaya, ang modelo ay nakasulat bilang sumusunod:

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

o, maaari itong isulat sa isang matrix na format:

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

saan:

  • YY ay may hugis na (N,1)(N, 1).

  • Ang XX ay may hugis na (N,p)(N, p).

  • Ang WW ay may hugis na (p,1)(p, 1): ito ang mga parameter na vector (w1,w2,,wp)(w_{1}, w_{2}, \dots, w_{p}).

Katulad ng unang kaso, nilalayon naming bawasan ang sumusunod na dami:

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

Muli nating ilagay:

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

Dahil gusto nating bawasan ang LL na may kinalaman sa WW, maaari nating balewalain ang unang terminong "YTYY^TY" dahil ito ay independiyente sa WW at lutasin natin ang sumusunod na equation:

(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

Paggamit ng gradient descent

Narito ang pagbabalangkas ng gradient descent algorithm:

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

Ngayon ang kailangan lang nating gawin ay ilapat ito sa dalawang parameter na a0a_{0} at a1a_{1} (sa kaso ng isang variable na 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}

at alam namin na:

{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}

Sa pamamagitan ng pagpapalit:

{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}

Pagsusulit

  • Ano ang formula ng pinakamainam na parameter ng vector sa kaso ng multidimensional linear 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 "tama"

  • Bakit natin inilalagay ang derivative sa 0?

  • Upang mahanap ang extremum. "tama"

  • Para mabawasan ang derivative.

  • Upang panatilihin lamang ang tunay na bahagi ng derivative.

  • Ano ang layunin ng linear regression ?

  • Upang mahanap ang linya na dumadaan sa lahat ng mga punto.

  • Upang mahanap ang linyang pinakamahusay na naglalarawan sa data."tama"

  • Upang mahanap ang linya na pinakamahusay na naghihiwalay sa data.

Alamin ang mga teknikal na kasanayan sa online gamit ang Code Labs Academy

Alamin ang mga teknikal na kasanayan sa online gamit ang Code Labs Academy

Sumali sa aming suporta sa komunidad, i -unlock ang iyong potensyal, at sumakay sa isang reward na landas sa karera.