Skip to main content

Xətti reqressiya

November 15, 2024 yeniləndi 4 dəqiqə oxundu


Giriş

D={(X1,Y2),\no¨qtələr,(XN,YN)}D = \{(X_{1}, Y_{2}), \nöqtələr,(X_{N}, Y_{N})\} data dəsti verilmişdir, məsələn, XiX_{i}YiY_{i } davamlıdır, "Xətti Reqressiyanın" məqsədi bu məlumatlara uyğun gələn ən yaxşı xətti tapmaqdır.

Başqa sözlə, biz modeli yaratmaq istəyirik:

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

burada pp XX dəyişəninin ölçülərinin sayıdır.

Bu yazıda bu problemi üç ssenaridə necə həll edəcəyimizi görəcəyik:

  • X bir ölçülü olduqda, yəni p=1p=1.

  • X çoxölçülü olduqda, yəni p>1p>1.

  • Qradiyent enişdən istifadə.

XX bir ölçülüdür (Adi Ən Kiçik Kvadrat)

Yaratmaq istədiyimiz model formadır:

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

Unutmayın ki, xətti reqressiyanın məqsədi verilənlərə ən yaxşı uyğun gələn xətti tapmaqdır. Başqa sözlə, məlumat nöqtələri ilə xətt arasındakı məsafəni minimuma endirməliyik.

(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

qoyaq:

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

Minimumu tapmaq üçün aşağıdakı tənlikləri həll etməliyik:

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

Birinci tənliyi inkişaf etdirməyə başlayırıq:

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}

İkinci tənlikdə əvəz edirik:

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

Biz a0a_{0} ilə əvəz edirik:

{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 çoxölçülüdür (Adi Ən Kiçik Kvadrat)

Bu halda, XiX_{i} artıq həqiqi ədəd deyil, bunun əvəzinə pp ölçülü vektordur:

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

Beləliklə, model aşağıdakı kimi yazılır:

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

və ya matris formatında yazıla bilər:

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

harada:

  • YY (N,1)(N, 1) şəklindədir.

  • XX (N,p)(N, p) şəklindədir.

  • WW (p,1)(p, 1) şəklindədir: bu, (w1,w2,,wp)(w_{1}, w_{2}, \dots, w_{p}) parametr vektorudur.

Birinci halda olduğu kimi, biz də aşağıdakı miqdarı minimuma endirməyi hədəfləyirik:

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

Yenə də deyək:

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

Biz WW-a nisbətdə LL-nı minimuma endirmək istədiyimiz üçün ilk "YTYY^TY" terminini nəzərə almaya bilərik, çünki o, WW-dan müstəqildir və gəlin aşağıdakı tənliyi həll edək:

(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

Qradiyent enişdən istifadə

Budur gradient eniş alqoritminin tərtibi:

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

İndi etməli olduğumuz yeganə şey onu a0a_{0}a1a_{1} iki parametrinə tətbiq etməkdir (bir dəyişən XX vəziyyətində):

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

və biz bunu bilirik:

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

Əvəz etməklə:

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

Viktorina

  • Çoxölçülü xətti reqressiya zamanı optimal parametrlər vektorunun düsturu nədir:

  • 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 "düzgün"

  • Törəməni niyə 0-a qoyuruq?

  • Ekstremumu tapmaq üçün. "doğru"

  • Törəməni minimuma endirmək.

  • Törəmənin yalnız real hissəsini saxlamaq.

  • Xətti reqressiyanın məqsədi nədir?

  • Bütün nöqtələrdən keçən xətti tapmaq.

  • Məlumatı ən yaxşı təsvir edən xətti tapmaq üçün."düzgün"

  • Məlumatları ən yaxşı ayıran xətti tapmaq üçün.


Dərs yoxdur? Problem yoxdur – Code Labs Academy ilə Məlumat Alimi ol.

Code Labs Academy ilə onlayn texniki bacarıqları öyrənin

Code Labs Academy ilə onlayn texniki bacarıqları öyrənin

Dəstəkləyici birliyimizə qoşulun, potensialınızı açın və mükafatlandırıcı bir karyera yoluna başlayın.