Makine Öğrenmesi Dersleri 4b: Lineer Regresyon

Hakkı Kaan Simsek
Veri Bilimi Türkiye
4 min readAug 30, 2018
kaynak

Gözetimli makine öğrenmesi (supervised machine learning) modelleri temel olarak iki problemi çözmeye çalışır:

  • Regresyon
  • Sınıflandırma

Regresyon probleminde hedef değişkenimiz y sürekli değerler sınıflandırma probleminde ise kategorik değerler alır.

4a partında lineer regresyondan bahsedip Bay Area ev fiyatları hakkında tahminde bulunacağız.

En temel regresyon modeli olan Lineer regresyon y değişkeni (ev fiyatları) ve veri setindeki x öznitelikleri (enlem, boylam, oda sayısı, evin yaşı, okyanusa uzaklığı vs.) arasındaki ilişkiyi anlamamıza yardımcı olur.

Amacımız bir değişkendeki artışın veya azalışın ev fiyatını nasıl etkilediğini doğru olarak anlayacağımız katsayılar elde etmek ve yeni evler gördüğümüzde tutarlı tahminlerde bulunmak.

image.png
  • y: ev fiyatı
  • x1: oda sayısı
  • x2:evin yaşı
  • xn: okyanusa uzaklık gibi düşünebilirsiniz.

Modelimizin kalitesini belirleyen ölçüt ise yaptığımız tahminlerle gerçek değer arasındaki fark: hata (residuals), diğer bir deyişle modelimizin açıklamakta yetersiz kaldığı kısım. Lineer regresyonda amacımız bu hatalarla ilgili maliyet fonksiyonlarını (MAE, MSE, RMSE vs.) minimize eden en iyi denklemi bulmak.

Günün sonunda ufak da olsa bir hatanın kalacağını biliyoruz ama bu hata terimlerinde yapısal bir bilginin-örüntünün kalmasını istemiyoruz.

image.png

Diğer derslerde olduğu gibi bu dersi takip etmek için de bilgisayarınıza Python kurmanıza veya veri setini indirmenize gerek yok. İzlemeniz gereken adımlar sırasıyla şöyle:

  • Google hesabınızı açın.
  • https://colab.research.google.com/ adresine gidin.
  • NEW PYTHON 3 NOTEBOOK’a tıklayın.
  • Oradaki satıra aşağıdaki kodu yapıştırın ve play tuşuna basın.

Modelimizdeki hedef değişken ‘median_house_value’ olduğu için onun dağılımına bakıyoruz ve veri setinin geri kalanından ayırıyoruz.

Makine öğrenmesi modelleri kategorik değişkenleri algılayamadığı için ‘object’ tipindeki değişkenleri one-hot-encoding yöntemiyle 0 ve 1'lere ayırıyoruz. Ayrıca ‘total_bedroom’ değişkenindeki eksik değerleri doldurmamız gerekiyor.

Yapmamız gerekenler sırasıyla şöyle:

  • ocean_proximity değişkeni pd.get_dummies() fonksiyonuyla zenginleştirilir.
  • Bu değişken veri setinden atılır.
  • total_bedroom değişkeni yine o sütunun median() değeriyle doldurulur.

Modelimizi kurmaya hazırız şimdi standart modelleme süreçlerini uygulayacağız.

  1. Veriyi eğitim ve test alt-veri setlerine ayırma.
  2. Karar ağacı modeli oluşturma.
  3. Modeli eğitim verisine ‘fit’ etme.
  4. R score hesaplama
  5. Intercept ve coefficient hesaplama.

6. Görmediğimiz test verisini modele verip tahminde bulunma.

7. Gerçek değerlerle tahmin değerleri arasındaki ilişkiye bakmak için scatter plot kullanma.

8. Tahmin edilen değerlerle hata terimleri arasında ilişkisel bir yapı olup olmadığını kontrol etmek için scatter plot kullanma.

9. Gerçek değerle tahmin arasındaki benzerliğe göre mean absolute error, mean squared error ve root mean squared error hesaplama.

10. Yukarıda scikit-learn ile yapılan çalışmayı statsmodels.api kullarak da hızlıca yapabiliriz.

Bu tabloyu nasıl okuyacağımıza ‘households’ üzerinden bakalım. Eğer o bölgedeki hane sayısı bir artarsa medyan ev fiyatı 25.25 dolar artıyor.

Ayrıca tablodaki R-squared değeri de önemli, anlamı: Modelin y değişkenindeki varyansın ne kadarını açıkladığı, bizim modelimizde %67'sini açıklıyor.

Bu çalışma standart bir veri bilimi projesinin en basit hali olarak düşünülebilir.

  • Veri tiplerini kontrol etme/düzeltme.
  • Açıklayıcı veri analizi ve görselleştirme.
  • Eksik verileri tahmin etme/veri atama.
  • Veri setini eğitim ve test veri-setlerine ayırma.
  • Modeli eğitme ve test verisi üzerinde tahmin yapma.
  • Gerçek değerlerle tahmin edilen değerler arasındaki ilişkiye bakma.
  • Tahmin edilen değerlerle hata terimleri arasındaki ilişkiye bakma.
  • Regresyon başarı metriklerine bakma.

Çalışmadaki veri setine ve kodlara şuradan ulaşabilirsiniz.

Sorunuz olursa bana Linkedin veya Twitter hesaplarından ulaşabilirsiniz.

--

--