Machine Learning #3 — Lineer Regresyon (Ridge&Lasso Fonksiyonları)

Göker Güner
5 min readMar 28, 2021

--

Eğer bu yazının İngilizcesiyle ilgilenmiyorsanız, bu paragrafı pas geçebilirsiniz.

This post is the third article in my Machine Learning series that I have written to consolidate and share what I have learned. For the second article of the series that published on Analytics Vidhya: link

For English version of the article: link

Kaynak: https://unsplash.com/photos/oc9Mi40XY-0?utm_source=unsplash&utm_medium=referral&utm_content=creditShareLink

Merhabalar, Machine Learning serimin üçüncü notebook’unda

  • Lineer regresyon kavramını,
  • Kayıp hesabı kavramını ve ölçüm metodlarını
  • Lineer regresyonun alt türlerini öğreneceğiz.

Daha önceki yazılara benzer şekilde yine kullanacağımız kütüphaneleri import edip veriyi inceleyerek başlıyoruz.

Daha önceki yazılarımda değindiğimiz metodlara ek olarak bu yazıda tanışacağımız LinearRegression, Ridge, Lasso fonksiyonlarını çağırmamıza yarayacak kütüphaneleri, hata hesabı için kullanacağımız mean_squared_error metodunu da import ediyoruz.

Regresyon problemini incelemek için bu linkten erişebileceğiniz veri kümesini kullanacağız. ‘Boston House Prices’ veri kümesi, başlangıç seviye eğitimlerde sıkça görebileceğiniz, çok kullanışlı bir veri kümesidir.

Not: Bu yazıdaki veri setini aldığımız Kaggle platformunu daha detaylı incelemenizi de tavsiye ederim. Eğitimler, veri setleri, yarışmalar, örnek notebooklar ile oldukça zengin bir Veri Bilimi & Makine Öğrenmesi platformudur.

Veri kümemizin toplam 404 elemandan oluştuğunu, bu değerlerin tamamının sayısal ve non-null görüyoruz. Yani herhangi bir önişleme adımına ihtiyaç duymadan veri kümemizi tanımaya devam edebiliriz.

Ana amacımız, elimizdeki tüm özellikleri kullanarak ev fiyatlarını tahmin etmek, ancak giriş kısmında sadece oda sayısı özelliğinin ev fiyatına etkisini inceleyerek Lineer Regresyon kavramını tanıyalım.

Veri kümesinin içindeki değişkenlerin açıklamaları.

Veri kümesini aldığımız Kaggle kaynağından elimizdeki veri setinin sütun isimlerinin ne anlama geldiğini inceleyebiliriz. medv değişkeni, hedefimizdeki ev fiyatı değişkeni. Bu adımda sırasıyla;

  • Veri kümemizin input(X) değişkeninden hedef değişkenimizi siliyoruz,
  • Bu hedef değişkenini output(y) değişkenine atıyoruz,
  • Oda sayısı ile ev fiyatı arasındaki ilişkiyi incelemek için oda sayısı sütununu bir değişkene tanımlıyoruz.

Oda sayısının boyutlarını incelediğimizde boyutun eksik olduğunu görüyoruz. 404 satır, 1 sütundan oluşan bir dataframe olmalı ki üzerinde çalışabilelim. Bunun için aşağıdaki gibi reshape fonksiyonundan yardım alıyoruz. Reshaping işleminin özellikle Derin Öğrenme çalışmalarında kritik önemi vardır. Yazı serisinin bu kısımlarına geldiğimizde bu işleme daha fazlaca değineceğiz.

Veri kümemizdeki evlerin çoğunlukla 6 odalı olduğunu ve genellikle oda sayısı arttıkça ev fiyatının arttığını gözlemliyoruz.

En Küçük Kareler Yöntemi

Bu iki değişken arasındaki ilişkiyi temsilen bir doğru çizdirdik. Regresyon problemlerindeki bütün amacımız, veri kümesindeki noktaların, doğruya olan uzaklığını minimize etmek ve böylece gerçeğe en yakın doğruyu elde edebilmektir. Bu örnekte değişkenimiz oda sayısı, hedefimiz ise ev fiyatıydı. Bunu tek değişkenli bir doğru fonksiyonu ile modelleyebiliriz.

Bu denklemi y = ax + b şeklinde gösterirsek Lineer Regresyon modelimizin matematiksel amacını, veri noktalarına en yakın geçen doğruyu çizdirecek a ve b değerlerini belirlemek olarak tanımlarız.

Buna En Küçük Kareler Yöntemi denir.

Şimdi, oda sayısı yerine bütün özellikleri dahil edelim ve daha önceki notebooklarda gördüğümüz tahminleme süreçlerini tekrar kodlayalım.

Kök-Ortalama-Kare Hata, bir model(veya tahminci/kestirimci) tarafından tahmin edilen değerler ile gerçek(gözlenen) değerler arasındaki farkın ölçümünde kullanılan metriklerden biridir. Bu metriğin 0 olması, modelin hiç hata yapmadığı anlamına gelir. Basitçe, hataların(kayıpların) karelerini toplar, önce ortalamasını, sonra karekökünü alır.

Daha fazla bilgi için Türkçe bir kaynak olarak bu yazıyı önerebilirim.

Cross-validation ile kümelerimizi ayırıp, elde ettiğimiz sonuçların ortalamasını alarak yazının bu kısmını noktalayalım.

Ridge Fonksiyonu

Ridge regresyonu, L2 düzenlemesi (regülarizasyonu) kullanılan bir regresyon çeşididir. Devam etmeden önce, neden buna ihtiyaç duyduğumuza kısaca değinecek olursak;

Asıl amacımızın, denklemimizin katsayılarını optimal(RMSE değeri en küçük olacak şekilde) belirlemek olduğunu hatırlayın. Modelimiz her bir input değişkenine ayrı ayrı katsayı belirleyecektir. Bu katsayılar, bazen çok büyük olabilir ve bu da modelimizin overfit etmesine sebep olur. Bu gibi durumlarla karşılaşmamak için, bir regülarizasyon uygulamaya ihtiyacımız vardır.

Hem Ridge, hem de az sonra değineceğimiz Lasso fonksiyonları için belirlememiz gereken hiperparametre alpha değeridir.

alpha değerinin 0 olması, problemimizi çözemeyerek modelin overfit etmesine sebep olurken, çok yüksek olması da bunun tam tersi olarak underfittinge yol açar.

Kayıp hesabında Ridge etkisi bu şekilde gösterilir.

Lasso(Least Absolute Shrinkage and Selection Operator) Fonksiyonu

Ridge fonksiyonundan 2 temel farkı vardır. Katsayıları düzenlemek için L1 regülarizasyonu kullanır, daha önemli diğer farkı ise, katsayıların kareleri yerine mutlak değerlerini aldığı için bazı öznitelikleri tamamen ihmal edebilir.

Kayıp hesabında Lasso etkisi bu şekilde gösterilir.

Yazının başında örneklemek için kullandığımız oda sayısı değişkeninin etkisi açıkça görülürken, modelin önemsiz bulduğu bazı özelliklerin katsayılarının da sıfıra eşitlendiğini görüyoruz.

Son olarak, geçtiğimiz yazılarda kullandığımız GridSearch ve pipeline’ı da dahil edip sonuçları gözlemleyerek, yazımızı noktalıyoruz. Sonraki yazılarda görüşmek üzere.

--

--

Göker Güner

YTU Alumni. ML Ops & Engineer at AlternaCX. Data&AI Enthusiast. MS Student at Bahcesehir University AI Program with Thesis.