#1 ML Linear Regression (Theory)

Makine öğrenmesine giriş konusu, tüm makine öğrenmesi algoritmalarının mihenk taşı, çok temel ve basit bir olay “doğrusal regresyon“!

Nedir bu regresyon?

Regresyon analizi, iki ya da daha çok değişken arasındaki ilişkiyi ölçmek için kullanılan analiz metodudur.

Eğer tek bir değişken kullanılarak analiz yapılıyorsa buna tek değişkenli regresyon, birden çok değişken kullanılıyorsa çok değişkenli regresyon analizi olarak isimlendirilir. Bizim konumuz şu an tek değişkenli regresyon olacak.

Neden regresyon analizi yaparız? 

Regresyon analizi yaparak değişkenler arasındaki ilişkinin varlığı, eğer ilişki var ise bunun gücü hakkında bilgi ediniriz. Bu veri biliminin en temel problemidir ve regresyonlar bu konuda en temel çözümleri bizler için sunar.

Yani regresyon…

Regresyon, iki (belki de daha çok 🙂 değişken arasındaki doğrusal ilişkinin fonksiyonel şeklini, biri bağımlı diğeri bağımsız değişken olarak bir doğru denklemi olarak ifade eder. Yani bir problemi çok basit herkesin anlayabileceği ve grafiğe dökülecek bir denkleme dönüştürür. Harika değil mi? Ama bunu yapmakla da kalmaz, değişkenlerden birinin değeri bilindiğinde diğeri hakkında tahmin yapılmasını sağlar. Genellikle bu iki (veya çok) değişkenlerin hepsinin “niceliksel” ölçekli olması zorunluluğu vardır, orası ayrı konu. 🙂

Bir bağımlı, bir bağımsız…

…demiştik doğrusal regresyon için. Bu regresyonda, değişkenlerden biri bağımlı diğerleri bağımsız değişken olmalıdır. Buradaki mantık eşitliğin solunda yer alan değişkenin sağında yer alan değişkenlerden etkilenmesidir. Sağda yer alan değişkenlerse diğer değişkenlerden etkilenmemektedir. Burada etkilenmek matematiksel anlamda bu değişkenleri bir doğrusal denkleme koyduğumuzda etki yapması anlamındadır.

Konuyu biraz daha görselleştirmek istiyorum aşağıda gördüğünüz üzere bir grafik var, maas ve deneyim. Maas arttıkça deneyim de artıyor veya deneyim arttıkça maaş da artıyor diyebiliriz. Doğru orantı olduğunu söylemek gayet mümkün değil mi?

Ancak deneyimler yıl cinsinden ifade edilmiş ve 0’dan başlayarak 16 civarı yılda son buluyor. 20 yıllık deneyimin ne kadar maaşa tekabül ettiğini öğrensek fena olmazdı. Regresyon işte bize bunu sunar. En kolay haliyle regresyon bu verilerden bir doğru denklemi elde etmek demek. Bu veriler üzerinden çıkaracağımız denklem bize 20 yıl için fikirler verecek. Bu doğru denkleminde eğer merak ettiğimiz şey 20 yılda ne kadar maaş alacağı ise bunu tahmin etmesini isteyeceğiz. Çünkü elinde eskiden var olan veriler var. Bu çizgi sanırım şöyle bir şey olurdu, elimizle çizmeye çalışalım mı?

Peki bu çizgi ne ifade ediyor? Matematiksel anlamda bu işin denklemine gelelim.

y= b0+b1*x

y dediğimiz dikey eksen, x dediğimiz yatay eksen. b0 sabittir, b1 ise katsayı anlamına geliyor. b0 dediğimiz şey y ekseninin kesildiği nokta. b1 ise eğim (yani slope) eğimin formülü üçgenin iki kenarının bölümüyle bulunabiliyordu. (a/b gibi)

O halde şöyle oluşturamaz mıyız denklemi: “maas=b0+b1*deneyim”

Diyelim ki maaşımız 12500 olsun, denklemde yerine koyalım.

12500 = 2500 + 1000*deneyim

Burada yaptığım şey maaş 12500 ise ve b0 yani y eksenini kestiği nokta 2500 ise ve eğim de 10000 dersek ne kadar deneyim vardır diye soruyoruz. Tahmin ettiriyoruz. Denklemin sonucu 10 olacak. Yani tahmini 10 yıl demek bu. Grafiğe baktığınızda tutarlı olduğunu anlayabiliriz.

İyi de hata payı yok mu? Olmaz olur mu var, ama o apayrı geniş bir konu 🙂 Biraz daha devam edelim ve deneyim 11 ise maaş kaçtır diye soralım, hadi çözelim denklem ile.

deneyim 11 olacak, b0 2500 idi, b1 de eğim yani 1000 koy denklemde yerlerine maas = 2500 + 1000*11 ne geldi maas = 13500 tahminini aldık. Şimdi biraz daha derinlere inelim, özellikle o hata payına 🙂 Dikkat ettiniz mi o çizdiğimiz en yakın doğru bazılarının tam üstünden geçerken bazılarına ise uzak kalıyordu. Gönül ister ki hepsinin tam üstünden geçsin ve tahmin algoritması çok iyi çalışsın ancak lineer regresyonda pek çok nokta çizilen tahmin doğrusuna uzakta kalıyor yani bu bir hata payı aslında. Buna kalıntı anlamına gelen residual deniyor literatürde.

İsterseniz tahmin edilen değere y_head, gerçek değere ise y diyelim ve şuna göz atalım.

m

Residual değerine y – y_head desek doğru olmaz mı? Yani y ile y_head arasındaki fark residual değerini verir. Herbirinin residual değerini hesaplamalıyız. Tahmin algoritmasının ne kadar iyi çalıştığını anlamamıza yardımcı olur. Ancak bir problemimiz var gibi görünüyor…


Yukarıdaki noktalar bize residual değerini + olarak veriyorken, aşağıdaki noktalar bize residual değerini – olarak verecek ve residual değerlerinin toplamı birbirini götürerek hata payını daha minimalize edecek. Ama bu bizim istediğimiz bir şey değil. Biz istiyoruz ki residual değeri neyse o çıksın. Çözüm?

Elbette karelerini toplamak. Negatif noktaların karesi de pozitif, pozitif noktaların karesi de pozitif olacak. 🙂 Her şeyin karesini alarak yani mutlak değerlerini topluyor gibiyiz aslında.

Sum : toplamak.
Residual: hata değerler.
^2 : karesi
n: nokta sayısı. Aslında bu n’e bölmek biraz opsiyonel bir çeşit ölçeklendirme işlemi.

Tüm bunlar bize MSE değerini veriyor. Mean Squared Error. Bu da matematikçesi, evet karmaşık bir görünüm.

Amacımız ne elbette MSE değerini yani hatayı minimalize etmek. Bu işin teorisiydi, bir sonraki yazı da pratiği olacak. İyi çalışmalar 🙂

Alıntıladığım için DATAI Team ve Wikipedia’ya teşekkürler.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir