Skip to main content

Doğrusal Regresyon

September 06, 2024 'de güncellendi3 dakika oku


Giriiş

D={(X1,Y2),,(XN,YN)}D = \{(X_{1}, Y_{2}), \dots,(X_{N}, Y_{N})\} veri kümesi verildiğinde, örneğin XiX_{i} ve YiY_{i } süreklidir, "Doğrusal Regresyon"un amacı bu verilere uyan en iyi doğruyu bulmaktır.

Başka bir deyişle modeli oluşturmak istiyoruz:

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

burada pp, XX değişkeninin boyut sayısıdır.

Bu yazıda bu sorunun üç senaryoda nasıl çözüleceğini göreceğiz:

  • X tek boyutlu olduğunda yani p=1p=1.

  • X çok boyutlu olduğunda, yani p>1p>1.

  • Gradyan inişini kullanma.

XX tek boyutludur (Sıradan En Küçük Kare)

Oluşturmak istediğimiz model şu şekildedir:

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

Doğrusal regresyonun amacının verilere en iyi uyan doğruyu bulmak olduğunu unutmayın. Yani veri noktaları ile çizgi arasındaki mesafeyi en aza indirmemiz gerekiyor.

(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

Hadi koyalım:

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

Minimumu bulmak için aşağıdaki denklemleri çözmemiz gerekir:

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

İlk denklemi geliştirerek başlıyoruz:

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 denklemde yerine koyarsak:

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

a0a_{0} yerine geri koyarız:

{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 çok boyutludur (Sıradan En Küçük Kare)

Bu durumda, XiX_{i} artık gerçek bir sayı değil, bunun yerine pp boyutunda bir vektör olur:

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

Yani model şu şekilde yazılmıştır:

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

veya matris formatında yazılabilir:

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

Neresi:

  • YY (N,1)(N, 1) şeklindedir.

  • XX (N,p)(N, p) şeklindedir.

  • WW (p,1)(p, 1) şeklindedir: bu (w1,w2,,wp)(w_{1}, w_{2}, \dots, w_{p}) parametre vektörüdür.

İlk duruma benzer şekilde aşağıdaki miktarı en aza indirmeyi hedefliyoruz:

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

Tekrar belirtelim:

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

LL'yi WW'a göre minimuma indirmek istediğimizden, o zaman ilk terim olan "YTYY^TY"'yi yok sayabiliriz çünkü o WW'dan bağımsızdır ve aşağıdaki denklemi çözelim:

(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

Gradyan inişini kullanma

Gradyan iniş algoritmasının formülasyonu şöyledir:

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

Şimdi tek yapmamız gereken, bunu iki a0a_{0} ve a1a_{1} parametresine (tek değişken XX olması durumunda) uygulamaktır:

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

ve şunu biliyoruz:

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

Değiştirme yoluyla:

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

Sınav

  • Çok boyutlu doğrusal regresyon durumunda optimal parametre vektörünün formülü nedir:

  • 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 "doğru"

  • Türevi neden 0'a koyuyoruz?

  • Ekstremu bulmak için. "doğru"

  • Türevi en aza indirmek.

  • Türevin sadece reel kısmını tutmak.

  • Doğrusal regresyonun amacı nedir?

  • Tüm noktalardan geçen çizgiyi bulmak.

  • Veriyi en iyi tanımlayan satırı bulmak için."doğru"

  • Verileri en iyi ayıran çizgiyi bulmak.

Code Labs Academy ile Teknik Becerileri Çevrimiçi Öğrenin

Code Labs Academy ile Teknik Becerileri Çevrimiçi Öğrenin

Destekleyici topluluğumuza katılın, potansiyelinizin kilidini açın ve ödüllendirici bir kariyer yoluna çıkın.