En Küçük Kareler ile Sıfırdan Regresyon Çözümü 🧐

MSAHIN
Veri Güdümlü
Published in
6 min readAug 30, 2023

--

Selamlar, umarım her şey yolundadır. Bugün sizlerle makine öğrenmesinin temelini oluşturan doğrusal regresyon algoritmasının yapı taşı olan en küçük kareler -least squares- metodundan detaylıca bahsetmek istiyorum. Önce regresyon nedir onu hatırlayalım.

Photo by Crissy Jarvis on Unsplash

Regresyon ✍🏻

Bir bağımlı değişken ile bağımsız değişken(ler) arasındaki ilişkinin gücünü ve niteliğini belirlemeye çalışan istatistiksel bir terimdir. Yani bağımlı değişken, hedef/etiket/çıktı değişken oluyor. Bağımsız değişken(ler) ise bu hedef değişkenin tahmin edilmesine “yarayacak” olan diğer değişkenler.

Anlaşılmayabilir, o yüzden somutlaştıralım.

Maaş bağımlı (hedef) değişken olduğu takdirde tecrübeniz ve eğitim seviyeniz bağımsız değişkenler olacaktır. Tecrübe ve eğitim seviyesinden yola çıkarak maaşı tahmin etmeniz ise sayısal bir tahmin (regresyon) problemi çözdüğünüz anlamına gelir.

Regresyon ailesinde doğrusal, doğrusal olmayan, çoklu, lojistik gibi farklı akrabalar vardır, ancak burada cıvıtmamak için yolumuza en küçük kareler yöntemi ile devam edelim.

Daha seksi ismiyle “least squares method”. Hani sklearn yükleyip de lineer regresyon modelini fit ediyoruz ya, işte arka planda gerçekleşen varsayılan çözüm yaklaşımı en küçük kareler yöntemi.

En küçük kareler metodu, çözümü olmayan bir lineer denklem sistemini çözüme ulaştırabilmek için ortaya çıkmıştır.

Ek Bilgi : Bir lineer regresyon problemini çözmek için tek yöntem en küçük kareler değildir. Gradient Descent gibi bir yaklaşımla da çözülebilir.

Çözümsüz Lineer Denklem Sistemi ❌

Çözümü olmayan lineer denklem sistemine -inconsistent- çözümsüz veya diğer bir deyişle tutarsız denklem sistemi denir, Aşağıdaki ekte görüldüğü üzere.

Çözümsüz bir denklem sistemi örneği.

Yukarıda X1 ve X2 değerlerine ne verirseniz verin çözümün aynı anda üç denklemde de sağlanmayacağını göreceksiniz. Boşa koysanız dolmaz, doluya koysanız almaz… İşte buna çözümsüzlük denir.

Çözüm yoksa peki biz ne arıyoruz burada?

Bizim uğraşımız en azından yaklaşık olan bir çözümün bulunabileceği yönünde olacak. Yani ilk denkleme öyle değerler vereceğiz ki sonuç belki 4 etmeyecek ama 4'e yakın bir şey edecek. Aynı değerleri ikinci denklemde X1 ve X2 yerine koyduğumuzda sonuç 1 etmeyecek ama 1'e yakın bir değer döndürecek. En son denklem de aynı şekilde, belki 3 sonucunu tam bulamayacağız ama 3'e yakın değer döndüren X1 ve X2 setini bulacağız.

Yani en küçük hata ile bu denklem sistemindeki çözüme en yakın X1 ve X2 setini bulmak amacımız. Bu denklemi Ax = b formatında yazalım.

İşte yazdık, şaka şaka.

A, aşağıdaki 3x2'lik matrise yani denklem sistemindeki katsayılarımıza tekabül ediyor. X ise görmüş olduğunuz X1 ve X2 değer setine tekabül ediyor. Sonuç ise eşittir denklem sisteminin sonuçları. Burada problem var mı? Elbette yok.

Görüyorsunuz, anlatmaya gerek yok.

Peki ne oldu ki şimdi? Amaç ne?

Olay şu, A.x = b çözümsüz ise en küçük kareler metodu bu denklemi çözülebilir hale getirmek. Peki nasıl ???

Atomu çarpıştırmadık. İki tarafı da A’nın transpozesiyle çarptık.

İşte şimdi çözülebilir oldu. Buradaki yazdığımız x tek başına gözükse de X1 ve X2'yi temsil ediyor. Eğer bu sistem 3 bilinmeyenli olsaydı 3 adet X’i temsil edecekti.

Yani artık bu denklemin iki tarafına transpoze çarpımlarını eklediğimizde biliyoruz ki artık sistemin bir çözümü var. X bilinmeyen setini artık bilebileceğiz. İşte buna en küçük kareler çözümü deniyor.

Ek Bilgi : Matrisin transpozesini almak demek satırları sütun haline getirmek, yani matrisi devirmek gibi düşünebilirsiniz.

Bir diğer husus en küçük kareler hata vektörünün hesaplanması. O da basitçe şu şekilde oluyor.

En küçük kareler hatasının vektörünü elde etmek.

Son olarak bu vektörünün uzunluğu bize en küçük kareler hatasını verir.

En küçük kareler hatasını elde etmek.

Nedir bu uzunluk? Aslında karekök içine alarak çıkan hata vektöründeki elemanların karelerini toplamaktan ibaret. Kısaca büyük bir karekök açıyoruz ve karekökün içinde vektörde bulunan tüm hata değerlerinin karelerini topluyoruz. Bu da bize sonuç olarak en küçük karelerin hatasını verir.

Özetleyecek olursak, ilk adım problemi A x = b formatına getirmekti. Bu formata getirdikten sonra en can alıcı kısım A’nın transpozesini denklemin iki tarafıyla çarpmaktır. Bu çarpımı yaparken A’nın transpozesinin sol tarafta olmasına çok dikkat edin. A’nın transpozesini sağda bırakırsanız sonuç çıkmayacaktır. Geri kalan işlemler ise teferruattır.

Türkçe Somut Örnek 🔑

Velev ki buraya kadar olan kısımlarda anlamadığınız noktalar oldu. Sorun değil, somut bir örnek üzerinden pekiştirelim. Elimizde bir bağımlı ve bağımsız değişkenden oluşan bir veri seti olsun. Mesela boy ve kilo.

Boy değişkenine (bağımsız) bakarak kilo (bağımlı, hedef) değişkeni tahmin etmeye çalışacağız.

Elimizde 4 adet insana dair boy ve kilo verileri olsun. Boy uzunluğunun ve kilonun birimlerine ve değerlerine takılmayın maksat somut örnek olsun.

İnsanlık için küçük, öğrenmek için büyük bir veri.

Soru : A(0, 1) , B(1,3), C(2,4) ve D(3,4) noktalarına en küçük kareler yöntemi kullanarak bir doğru uyduralım. Doğrunun denklemi bizim köyde de metropolde de hep aynı.

Bu arkadaş bildiğin doğru denklemi temsiliyeti.

Sorun ne, denklem tutarsız. Yani bu denklem sisteminin bir çözümü yok. En yakın olan çözümü bulacağız.

İlk satırdan başlayalım.

  • X yerine 0 koyalım, y = 1 olduğuna göre sadece b kaldı ve b = 1 oldu.
  • X yerine 1 koyalım, y = 3 olduğuna göre a + b = 3 oldu.
  • X yerine 2 koyalım, y = 4 olduğuna göre 2a + b = 4 oldu.
  • X yerine 3 koyalım, y = 4 olduğuna göre 3a + b = 4 oldu.

Ek Not : Yukarıda diyebilirsiniz ki a yerine şunu koydum, a’ları götürmeye çalıştım, b’lerin değerini buluyordum… Doğru bir yöntem gibi görünse de çözümsüz olduğu için işin içinden çıkamayabilirsiniz.

Artık lineer denklem sistemini elde ettik. İlk yapacağımız şey nedir, aşağıdaki formatta yazmak.

Malum format hatırlatması.
Eskiden X1 ve X2 olan kısım şimdi a ve b oldu sadece.

Sıradaki adım nedir? A’nın transpozesi ile iki tarafı da çarpmak.

Aynı hikaye.

A’nın transpozesi ile yapılan işlem de aşağıdaki gibi bu arada.

En kritik kısım.

Burası karalama defteri olmadığı için a ve b sonuçlarının aşağıdaki gibi çıktığını belirterek direkt çözüm kısmına geçiyorum.

Hepsi bu kadar.

a değeri 1 olduğu için x’in yanında görünmez oldu. Evet artık x geldiği takdirde y’yi tespit etmemiz çok kolay değil mi? Artık elimizde doğru denklemi var, bir doğru uydurduk.

Artık birisinin boyuna bakarak onu tartabiliyoruz, yapay zekalı(!) kantarımız hayırlı olsun. Bugün boya bakarak kilosunu tahmin ediyoruz, yarını siz düşünün… Nereden nereye, öyle değil mi?

Yani yarın öbür gün, enflasyon ile istihdam verilerine (bağımsız) bakarak dolar kuru mu yaş mı onu tahmin edebilirsiniz. Ekonometride bir çığır açmamak için buralarda vedalaşalım.

Peki ya doğrusal çözülemeyecek problem olsaydı? İkinci dereceden polinom olsaydı mesela, parabol (eğri) de uydurabilirdik. Mantık tamamen aynı değil mi? Sadece denklem sistemi biraz daha karmaşıklaşıyor ama hesaplamayı yapan biz değiliz bilgisayar.

Sizce bu yaptığımız şey yapay zeka mı? Yoksa basit bir istatistiksel hesaplama mı? Düşüncelerinizi yorum olarak bekliyorum.

--

--