Machine Learning #5 — Doğrusal Sınıflandırıcılar, Lojistik Regresyon, Düzenlileştirme

Göker Güner
4 min readJul 18, 2022
Unsplash’ten alınmıştır.

Selamlar,

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

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

For English version of the article: link

Merhabalar, Machine Learning serimizin beşincisinde;

  • Doğrusal sınıflandırıcıları tanıyacak,
  • Lojistik regresyon ve ilgili kavramları örneklendirerek inceleyeceğiz.

Lojistik Regresyon Nedir?

Yazı dizimizin üçüncüsünde, Doğrusal Regresyon konusuna değinmiştik. Sonrasında da bu metodu, bir ev fiyatı tahminleyicisi oluşturmak için kullanmıştık. Doğrusal(Lineer) Regresyon ile Lojistik Regresyon kavramları birbirine karıştırılmamalıdır.

Lojistik Regresyon, bir Doğrusal Sınıflandırıcı’dır. Bir sınıfı belirleyen bir veya daha fazla bağımsız değişken bulunan bir veri kümesini analiz etmek için kullanılan istatistiksel bir yöntemdir. Sonuç, ikili bir değişkenle ölçülür (yalnızca iki olası sonuç vardır). O örnek, aradığımız sınıfa aittir veya değildir(Diğer sınıflardan birine aittir).

Örneğin, ev fiyatı tahminleyicimizi tekrar ele alalım. Elimizde kimi noktasal(örneğin evin oda sayısı), kimi sürekli olan(örneğin evin metrekaresi) bir özellik sınıfı mevcuttu. Bu özelliklere göre, yine bir sürekli değişken olan ev fiyatı özelliğini tahmin etmeye çalışıyorduk.

Lojistik Regresyon uygulamalarında da, özellik seti yine sürekli değerler barındırır. Ancak hedefimiz bir sürekli değişken yerine bir sınıf belirlemektir. Bu sınıfı belirlerken de bir eşik değer kullanırız. Örneğin evin fiyatı 50.000 doların altında ise ucuz(y=0 ile temsil edebiliriz) eğer 50.000 doların üzerinde ise pahalı (y=1 ile temsil edebiliriz).

Kullanacağımız kütüphaneleri import ederek başlayabiliriz.

Karar Sınırı, Doğrusal Sınıflandırıcı, Doğrusal Ayrılabilirlik

Teorik anlatıma devam etmeden önce, bir Doğrusal Sınıflandırıcı görsel olarak neye benzer, nasıl çalışır bunu görelim.

Az sayıda hatalı tahmin edilen örnek olsa da, sınıflandırıcımız bu veri kümesini doğrusal bir çizgiyle iki sınıfa ayırabildi. Bu, sınıflandırıcımızın bir Doğrusal Sınıflandırıcı, veri kümemizin de Doğrusal Ayrılabilir olduğu anlamına gelir.

Lojistik Regresyon Uygulaması

Uygulama için, bir telekom şirketinin müşteri veri setini ele alacak ve hangi müşterinin churn edip etmediğini tahminleyeceğiz.

churn: Müşterinin artık o şirketin müşterisi olmaması anlamına gelir.

Veri seti kaynağı: https://archive.ics.uci.edu/ml/datasets/Iranian+Churn+Dataset

Veri kümemizi değişkene atadıktan sonra, klasik olarak keşifsel veri analizi kısımlarıyla devam ediyoruz.

Veri setimiz, bir telekom müşterisine ait olabilecek ne kadar süredir abone olduğu, SMS sıklığı, yaptığı aramaların sayısı, fatura tutarının ne kadar büyük/küçük olduğu gibi özellikleri içeriyor. Buradaki Churn özelliği, bizim hedef değişkenimizdir. Modelimizden bu değişkeni y=0(Hala şirketin müşterisi) veya y=1(Artık müşteri değil) olarak tahminlemesini isteyeceğiz.

Veri setimizi ön işleme adımında, scale etmeyi atlamamak gerekir. Çünkü, özelliklerin maximum, mean gibi değerlerini kıyasladığımızda, birbirlerinden oldukça farklı olabildiklerini görüyoruz.

Grid search ile en uygun C parametresinin 0.1 olduğunu gördük. Peki regresyon modelimiz buna nasıl karar verir? Görselleştirerek görelim.

Hem train, hem de test hatalarını C parametresinin değerine göre sıraladığımızda ilk ve en büyük aşağı yönlü kırılmanın 0.1 değerinde olduğunu görüyoruz. Bundan sonra doğruların eğimi yeniden yükselmeye başlıyor. Bundan dolayı, optimum C parametre değerinin 0.1 olduğunu söyleyebiliriz.

En uygun parametreleri bulmayı denerken ‘random_state’ ve ‘penalty’ değerlerini kendimiz belirledik. Ancak, ‘C’ değeri için toplam 6 deneme yaptık ve en uygun değeri 0.1 olarak belirledik. Peki, nedir bu C parametresi?

Lojistik Regresyonda Düzenlileştirme(Regülarizasyon) Etkisi

C parametresi, scikit-learn kütüphanemiz için regülarizasyonun tersini ifade eder. Daha büyük C daha az düzenlileştirme, daha küçük C daha fazla düzenlileştirme anlamına gelir.

Daha önceki yazılarda, regülarizasyonun “büyük katsayılar için bir cezalandırma işlevi” olduğundan bahsetmiştik. l1 ve l2regülarizasyonlarını da ayrı ayrı inceleyerek özellik seçimine nasıl etki ettiğini gözlemlemiştik.

Burada da, iki farklı C değeri için eğitim hatalarını karşılaştırdık. Düzenlileştirme arttıkça(Daha küçük C değeri için) eğitim başarısının düştüğünü gördük. Cezalandırma işlevinin gereğinden fazla kullanılması, bazı önemli katsayıların da olması gerekenden daha küçük olması ve daha işlevsiz kalmasına yol açar. Bu da eğitim başarısını düşürür.

Test verisi üzerinde bu etkiyi incelediğimizde ise, yüksek regülarizasyonun test başarısını yükselttiğini görüyoruz. Bunun sebebi de, daha önce değindiğimiz gibi işlevsiz özellikler için katsayıların sıfırlanabilmesi ve bunun performansı artırmasıdır.

Düzenlileştirme için l1 kullandığımızda işimize yaramayacak pek çok özelliğin katsayısının sıfıra eşitlendiğini görüyoruz. Bu, test başarısını yükseltir.

l2 ise, bir regülarizasyondan beklediğimiz şekilde katsayıları küçültür.

Bu regülarizasyonla model başarısının %89.2 olduğunu gördük. Son olarak ROC eğrisini de çizdirelim.

Bir ROC eğrisi (Receiver Operating Characteristic), model başarımını görmenin bir diğer yoludur. Gerçekten pozitif tahmin edilen değerler(True Positive) ile hatalı olarak pozitif(False Positive) tahmin edilen değerlerin bir görselleştirmesidir. İdeal olarak sol üst köşeye yaklaşan bir eğri görmek isteriz.

Bizim örneğimiz için, sol tarafta doğru tahmin edilen churn eden müşterileri, sağ eksende de churn etmediği halde churn olarak tahmin edilen müşterileri görüyoruz. Grafiğin altında kalan alanı ifade eden AUC(Area Under Curve) değerinin accuracy ile aynı olduğuna dikkat edin.

Sonraki yazılarımızda 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.