LOJISTIK REGRESYON

ABDULLAH ATCILI
Machine Learning Turkiye
5 min readDec 14, 2021

LOJISTIK REGRESYON NEDIR

LOJISTIK REGRESYON TEORISI

Makine öğrenmesi yöntemlerini kullanarak, girdi değerlerine bağımlı olan çıktının sınıflandırılması için kullanılan, sınıflandırma algoritmalarından birisidir.

Elimizdeki maillerin spam veya spam olmamasına göre sınıflandırmak mı istiyoruz? Online işlemlerde, yapılan işlemin dolandırıcılık olup olmadığını tespit mi etmek istiyoruz? Veya bir hastalığın var olup olmadığını mı tespit etmek istiyoruz? İşte bu durumda Logistik Regresyon bize yardımcı olacaktır.

Tümör büyüklüğüne göre, kanser hastalığının tespit edilmesi ile ilgili yukarıda grafik verilmiştir. h(θ) hipotez fonksiyonumuzun alacağı değere göre, hasta veya hasta değil sonucuna varacağız.

h(θ) hipotez fonksiyonu 0.5'ten büyük değer alması durumunda, sonucumuz 1 olmaktadır. h(θ) hipotez fonksiyonu 0.5'ten küçük değer alması durumunda ise sonuç 0 olmaktadır.

Evet görüldüğü üzere, sınıflandırma algoritmalarında sonucumuz 0 veya 1 değeri almaktadır (Bazı durumlarda 2 den fazla değer alabilir). Lineer Regresyon h(θ) hipotez fonksiyonu farklı değerler alabilirken, Lojistik regresyonda 0 =< h(θ) =< 1 değerleri arasında değer almaktadır. Peki bu değer aralığı, nasıl 0 ile 1 arasına sıkıştırılmaktadır?

Jojistik regresyon, sigmoid fonksiyonu (başka bir ifade ile lojistik fonksiyonu) ile işleme girerek 0 ile 1 arasında değer alır.

Yukarıda gösterilen sigmoid fonksiyonunda x değeri yerine h(θ) gelmektedir ve sonuc 0 ile 1 arasında sıkıştırılmaktadır.

Şekilde görüldüğü üzere x ekseni 0.5'ten büyük değer aldığında, çıktı 1 vermekte, x ekseni 0.5'ten küçük değer aldığında, çıktı 0 sonucunu vermektedir.

Karar Sınırı

Karar sınırını bir örnek üzerinde anlatacağım. Yukarıdaki formülde

teta0=-3, teta1=1, teta2=1 değerlerinin aldığını varsayalım. Dolayısıyla,

x1 =0 ve x2 =0 olduğunda hipotez fonksiyonu -3 değerini üretecek, dolayısıyla sigmoid grafiğine baktığımızda da sonucun 0 değerini aldığını göreceğiz.

x1 =1 ve x2 =0 olduğunda hipotez fonksiyonu -2 değerini üretecek, dolayısıyla sigmoid grafiğine baktığımızda da sonucun 0 değerini aldığını göreceğiz.

x1 =1 ve x2 =1 olduğunda hipotez fonksiyonu -1 değerini üretecek, dolayısıyla sigmoid grafiğine baktığımızda da sonucun 0 değerini aldığını göreceğiz.

x1 =2 ve x2 =1 olduğunda hipotez fonksiyonu 0 değerini üretecek, dolayısıyla sigmoid grafiğine baktığımızda da sonucun 1 değerine dönüş yapacaktır. Dolayısıyla x1 ve x2 bu değerlerden daha büyük değerler aldığında da hipotez fonksiyonu büyük sayı üreteceğinden, sonuç 1 olacaktır. Bu durumda karar sınırı, bu ornek için x1 ve x2 ekseni için 3 noktalarından geçen doğrudur.

Yani bu doğrunun altında kalan değerlerin sonucunu 0 olarak sınıflandıracağız, üstünde kalan değerlerin sonucunu da 1 olarak sınıflandıracağız.

Cost Function (Maliyet Fonksiyonu)

Maliyet fonksiyonu konusuna tam olarak hakim değilseniz burada bulunan yazıyı okumanızı tavsiye ederim.

Lineer regresyonda olduğu gibi h(θ) yerine sigmoid fonksiyonunu koyup maliyet fonksiyonunu hesaplamak istersek;

formülden elde edeceğimiz şekil convex olmayan bir şekil olacaktır. Bu bizim istediğimiz bir durum değildir. Çünkü convex olmayan şekillerde, local optimum noktası, global optimum olarak değerlendirilebilmektedir. Bu yüzden biz convex bir şekil istiyoruz.

Convex olan şekilde, global minimum noktasına, çok daha güvenli şekilde yakınsanmaktadır. Dolayısıyla, Logistik regresyon için aşağıda belirtilen maliyet fonksiyonu kullanılmaktadır.

Peki bu formülü nasıl yorumluyorum? y’nin 1 olduğu durumda, eğer ki modelimin tahmini 1 ise, maliyetin sıfır olmasını istiyorum, eğer ki modelimin tahmini 0 ise, maliyetin büyük olmasını istiyorum.

Aynı şekilde y’nin 0 olduğu durumda, eğer ki modelimin tahmini 0 ise, maliyetin sıfır olmasını istiyorum, eğer ki modelimin tahmini 1 ise, maliyetin büyük olmasını istiyorum.

Yukarıdaki grafikte görüldüğü üzere, mavi grafik olan, y=1 değeri için, modelimin tahmini 1 ise maliyet 0 olmaktadır. Modelimin tahmini 0 ise maliyet çok büyük değer almaktadır.

Aynı şekilde kırmızı grafik olan, y=0 değeri için, modelimin tahmini 0 ise maliyet 0 olmaktadır. Modelimin tahmini 1 ise maliyet çok büyük değer almaktadır. Dolayısıyla, maliyet fonksiyonum, başarılı şekilde, yanlış tahminleri cezalandırmaktadır. Yukarıdaki formülü tek satırda yazmak istersek :

y = 0 olduğu durumda +’dan önceki kısım sıfır oluyor (çünkü y, direk çarpım durumunda). y=1 olduğu durumda ise +’dan sonraki kısım sıfır oluyor (çünkü 1-y ifadesi mevcut).

Gradient Descent

Gradient descent konusuna tam olarak hakim değilseniz burada bulunan yazıyı okumanızı tavsiye ederim.

Maliyet fonksiyonu bulunduktan sonra, artık parametrelerimizi güncellemeliyiz ki, modelimizin tahmini doğru olsun. Parametre güncelleme işlemini de gradient descent ile yapıyoruz.

Maliyet fonksiyonunu daha önce göstermiştik.

Bu formülden elde ettiğimiz maliyetleri gradient descent de kullanalım.

Görüldüğü üzere, bize maliyet fonksiyonunun türevi lazım.

h(θ) yerine sigmoid fonksiyonu kullanıyoruz ve gradient descent sonucumuzu elde ediyoruz. Bu işlemi defalarca kez tekrarlayarak (belki 100, 1000 veya 10000 defa) parametrelerin en doğru sonuca ulaşmalarını sağlamak istiyoruz.

Lojistik regresyon, karar sınırları, modelleme örnekleri ve skorları ile ilgili hazırlamış olduğum kod bloğu ise burada bulunmaktadır.

Umarım faydalı olmuştur :)

Referans :

https://www.coursera.org/learn/machine-learning/lecture/MtEaZ/simplified-cost-function-and-gradient-descent

--

--