Doğrusal ve Lojistik Regresyonu Karşılaştırma

Giriş seviyesi veri bilimi röportaj sorusu üzerine tartışma

Veri Bilimi röportajlarının derinlikleri farklılık gösterir. Bazı görüşmeler gerçekten derinlere iniyor ve adayları gelişmiş modeller veya zorlu ince ayarlar hakkındaki bilgileri açısından test ediyor. Ancak birçok görüşme adayın temel bilgilerini test etmeye çalışarak giriş seviyesinde yapılır. Bu yazımızda böyle bir röportajda tartışılabilecek bir soruyu göreceğiz. Soru çok basit olmasına rağmen tartışma, makine öğreniminin temellerinin birçok ilginç yönünü ortaya çıkarıyor.

Soru: Doğrusal Regresyon ile Lojistik Regresyon arasındaki fark nedir?

Aslında ikisi arasında pek çok benzerlik var, bunların başında isimlerinin kulağa çok benzer gelmesi geliyor. Her ikisi de model işlevleri olarak çizgileri kullanıyor. Grafikleri de birbirine çok benziyor.

Yazara göre resim

Ancak bu benzerliklere rağmen yöntem ve uygulama açısından oldukça farklıdırlar. Şimdi bu farklılıkları vurgulayacağız. Karşılaştırma amacıyla, herhangi bir makine öğrenimi modelini tartışırken genel olarak dikkate alınan aşağıdaki noktaları kullanacağız:

  • Hipotez veya model ailesi
  • Giriş ve çıkış
  • Kayıp fonksiyonu
  • Optimizasyon tekniği
  • Uygulama

Şimdi bu noktaların her birinde Doğrusal Regresyon (LinReg) ve Lojistik Regresyon (LogReg)'i karşılaştıracağız. Tartışmayı doğru yola koymak için uygulamayla başlayalım.

Resim: Rajashree Rajadhyax

Doğrusal Regresyon, bir miktarın diğer miktarlara dayalı olarak tahmin edilmesi için kullanılır. Örnek olarak, bir öğrenci olarak yaz tatilinde limonata standı işlettiğinizi düşünün. Yeterli limon ve şeker alabilmek için yarın kaç bardak limonata satılacağını hesaplamak istiyorsunuz. Limonata satma konusundaki uzun deneyiminize dayanarak, satışın gün içindeki maksimum sıcaklıkla güçlü bir ilişkisi olduğunu anladınız. Yani limonata satışını tahmin etmek için tahmin edilen maksimum sıcaklığı kullanmak istiyorsunuz. Bu, ML literatüründe genellikle tahmin olarak adlandırılan klasik bir LinReg uygulamasıdır.

LinReg ayrıca belirli bir girdinin çıktıyı nasıl etkilediğini bulmak için de kullanılır. Limonata tezgahı örneğinde iki girişinizin olduğunu varsayalım: maksimum sıcaklık ve günün tatil olup olmadığı. Hangisinin indirimi daha çok etkilediğini öğrenmek istiyorsunuz; maksimum sıcaklık mı yoksa tatil mi? LinReg bunu tanımlamada faydalı olacaktır.

LogReg esas olarak sınıflandırma için kullanılır. Sınıflandırma, girdiyi birçok olası sepetten birinde kategorize etme eylemidir. Sınıflandırma insan zekası için o kadar merkezi bir öneme sahiptir ki 'zekanın büyük bir kısmı sınıflandırmadır' demek yanlış olmaz. Sınıflandırmaya iyi bir örnek klinik tanıdır. Yaşlı, güvenilir aile hekimini düşünün. Bir bayan içeri giriyor ve sürekli öksürdüğünden şikayet ediyor. Doktor birçok olası durum arasında karar vermek için çeşitli muayeneler yapar. Boğaz enfeksiyonu gibi bazı olası durumlar nispeten zararsızdır. Ancak bazıları tüberküloz ve hatta akciğer kanseri gibi ciddidir. Doktor, çeşitli faktörlere göre kadının hangi rahatsızlıktan muzdarip olduğuna karar verir ve uygun tedaviye başlar. Bu işteki sınıflandırmadır.

Hem tahminin hem de sınıflandırmanın hesaplamalardan ziyade tahmin görevleri olduğunu aklımızda tutmalıyız. Bu tür görevlerde kesin veya doğru bir cevap yoktur. Tahmin görevleri, makine öğrenimi sistemlerinin iyi olduğu alandır.

ML sistemleri, kalıpları tespit ederek tahmin sorunlarını çözer. Verilen verilerden bir model tespit ederler ve bunu tahmin veya sınıflandırma gibi görevleri gerçekleştirmek için kullanırlar. Doğal olaylarda bulunan önemli bir model ilişki modelidir. Bu modelde bir nicelik diğer niceliğe bağlıdır. Çoğu durumda bu ilişkiye matematiksel bir fonksiyonla yaklaşılabilir.

Verilen verilerden matematiksel bir fonksiyonun belirlenmesine 'öğrenme' veya 'eğitim' denir. Öğrenmenin iki adımı vardır:

  1. Fonksiyonun 'türü' (örneğin doğrusal, üstel, polinom) bir insan tarafından seçilir.
  2. Öğrenme algoritması verilen verilerden parametreleri (bir doğrunun eğimi ve kesişimi gibi) öğrenir.

Yani makine öğrenimi sistemlerinin verilerden öğrendiğini söylediğimizde bu yalnızca kısmen doğrudur. İşlev türünü seçmenin ilk adımı manueldir ve model tasarımının bir parçasıdır. Fonksiyonun türüne 'hipotez' veya 'model aile' de denir.

Hem LinReg hem de LogReg'de model ailesi doğrusal fonksiyondur. Bildiğiniz gibi bir doğrunun iki parametresi vardır; eğim ve kesişim. Ancak bu yalnızca işlevin yalnızca bir girdi alması durumunda geçerlidir. Çoğu gerçek dünya problemi için birden fazla girdi vardır. Bu durumlar için model fonksiyonuna çizgi değil doğrusal fonksiyon adı verilir. Doğrusal bir fonksiyonun öğrenilecek daha fazla parametresi vardır. Modelin n girişi varsa doğrusal fonksiyonun n+1 parametresi vardır. Belirtildiği gibi bu parametreler verilen verilerden öğrenilir. Bu makalenin amacı doğrultusunda, fonksiyonun iki parametreli basit bir çizgi olduğunu varsaymaya devam edeceğiz. LogReg'in model işlevi biraz daha karmaşıktır. Çizgi orada ama başka bir işlevle birleştirilmiş. Bunu birazdan göreceğiz.

Yukarıda da söylediğimiz gibi hem LinReg hem de LogReg, eğitim verileri adı verilen verilen verilerden doğrusal fonksiyonun parametrelerini öğrenir. Eğitim verileri neler içeriyor?

Eğitim verileri, bazı gerçek dünya olaylarının (RWP) kaydedilmesiyle hazırlanır. Örneğin maksimum gün sıcaklığı ile limonata satışı arasındaki ilişki RWP'dir. Temel ilişkiye dair hiçbir görünürlüğümüz yok. Görebildiğimiz tek şey sıcaklık değerleri ve günlük satışlardır. Gözlemleri kaydederken bazı nicelikleri RWP'nin girdisi, bazılarını da çıktı olarak belirleriz. Limonata örneğinde giriş olarak maksimum sıcaklığı, çıkış olarak ise limonata satışını diyoruz.

Yazara göre resim

Eğitim verilerimiz girdi ve çıktı çiftlerini içerir. Bu örnekte, verilerde günlük maksimum sıcaklık ve satılan limonata bardaklarının satırları yer alacaktır. LinReg'e giriş ve çıkış böyle olacaktır.

LogReg'in gerçekleştirdiği görev sınıflandırmadır, dolayısıyla çıktısı bir sınıf olmalıdır. 0 ve 1 adında iki sınıf olduğunu düşünelim. Bu durumda modelin çıktısı da 0 veya 1 olmalıdır.

Ancak çıktıyı belirlemeye yönelik bu yöntem pek uygun değildir. Aşağıdaki şemaya bakın:

Yazara göre resim

Sarı renkli noktalar 1. sınıfa, açık mavi olanlar ise 0'a aittir. Doğru, iki sınıfı ayıran model fonksiyonumuzdur. Bu ayırıcıya göre sarı noktaların her ikisi de (a ve b) Sınıf 1'e aittir. Ancak b noktasının üyeliği a noktasına göre çok daha kesindir. Eğer model sadece 0 ve 1 çıktısı veriyorsa bu durum kaybolur.

Bu durumu düzeltmek için LogReg modeli her noktanın belirli bir sınıfa ait olma olasılığını üretir. Yukarıdaki örnekte 'a' noktasının Sınıf 1'e ait olma olasılığı düşük, 'b' noktasının olasılığı ise yüksektir. Olasılık 0 ile 1 arasında bir sayı olduğundan LogReg'in çıktısı da öyle.

Şimdi aşağıdaki şemaya bakın:

Yazara göre resim

Bu diyagram, c noktasının eklenmesiyle öncekiyle aynıdır. Bu nokta da Sınıf 1'e aittir ve aslında b noktasına göre daha kesindir. Ancak bir noktanın olasılığını çizgiye olan uzaklığıyla orantılı olarak artırmak yanlış olur. Sezgisel olarak, çizgiden belirli bir mesafeye gittiğinizde, bu noktaların üyeliğinden az çok emin oluruz. Olasılığı daha fazla artırmamıza gerek yok. Bu, maksimum değeri 1 olabilen olasılıkların doğasına uygundur.

LogReg modelinin böyle bir çıktı üretebilmesi için hat fonksiyonunun başka bir fonksiyona bağlanması gerekmektedir. Bu ikinci fonksiyona sigmoid denir ve denklemi vardır:

Böylece LogReg modeli şuna benzer:

Yazara göre resim

Sigmoid fonksiyonu aynı zamanda 'lojistik' olarak da adlandırılır ve 'Lojistik Regresyon' isminin sebebidir.

İkiden fazla sınıf varsa LogReg'in çıktısı bir vektördür. Çıkış vektörünün elemanları, girişin söz konusu sınıftan olma olasılıklarıdır. Örneğin klinik tanı modelinin ilk elemanı 0.8 değerine sahipse bu, modelin hastanın soğuk algınlığından muzdarip olma ihtimalinin %80 olduğunu düşündüğü anlamına gelir.

Hem LinReg hem de LogReg'in doğrusal fonksiyonun parametrelerini eğitim verilerinden öğrendiğini gördük. Bu parametreleri nasıl öğreniyorlar?

'Optimizasyon' adı verilen bir yöntem kullanıyorlar. Optimizasyon, verilen problem için birçok olası çözüm üreterek çalışır. Bizim durumumuzda olası çözümler (eğim, kesişim) değer kümeleridir. Bu çözümlerin her birini bir performans ölçümü kullanarak değerlendiriyoruz. Bu ölçümde en iyi olduğu kanıtlanan çözüm nihayet seçilir.

ML modellerinin öğrenilmesinde performans ölçüsüne bazen 'kayıp', bunu hesaplamamıza yardımcı olan fonksiyona ise 'kayıp fonksiyonu' denir. Bunu şu şekilde temsil edebiliriz:

Kayıp = Loss_Function (Parameters_being_evaluated)

'Kayıp' ve 'kayıp fonksiyonu' terimleri olumsuz bir çağrışıma sahiptir; bu, daha düşük bir kayıp değerinin daha iyi bir çözüme işaret ettiği anlamına gelir. Başka bir deyişle öğrenme, minimum kayıp üreten parametreleri bulmayı amaçlayan bir optimizasyondur.

Şimdi LinReg ve LogReg'i optimize etmek için kullanılan ortak kayıp fonksiyonlarını göreceğiz. Gerçek uygulamada birçok farklı kayıp fonksiyonunun kullanıldığına dikkat edin, dolayısıyla en yaygın olanları tartışabiliriz.

LinReg parametrelerinin optimizasyonu için en yaygın kayıp fonksiyonuna Kareler Toplamı Hatası (SSE) adı verilir. Bu işlev aşağıdaki girdileri alır:

1) Tüm eğitim veri noktaları. Her nokta için şunu belirtiyoruz:

a) Maksimum veri sıcaklığı gibi girdiler,

b) Satılan limonata bardağı sayısı gibi çıktılar

2) Parametreli doğrusal denklem

İşlev daha sonra aşağıdaki formülü kullanarak kaybı hesaplar:

SSE Kaybı = Sum_for_all_points(
Square_of(
Output_of_linear_equation_for_the_inputs — active_output_from_the_data noktası
))

LogReg için optimizasyon ölçüsü çok farklı bir şekilde tanımlanır. SSE fonksiyonunda şu soruyu soruyoruz:

Bu satırı eğitim verilerini sığdırmak için kullanırsak ne kadar hata yapar?

LogReg optimizasyonuna yönelik önlemi tasarlarken şunu soruyoruz:

Bu çizgi ayırıcı ise, eğitim verilerinde görülen sınıf dağılımını elde etme olasılığımız nedir?

Dolayısıyla bu önlemin çıktısı bir olasılıktır. Ölçme fonksiyonunun matematiksel formu logaritma kullanır, dolayısıyla ona Log Likelihood (LL) adı verilir. Çıktıları tartışırken LogReg fonksiyonunun üstel terimler içerdiğini gördük (e 'z'ye yükseltilmiş' terimler). Logaritmalar bu üstellerle etkili bir şekilde baş etmeye yardımcı olur.

Optimizasyonun LL'yi maksimuma çıkarması gerektiği sezgisel olarak açık olmalıdır. Şöyle düşünün: Eğitim verisini en muhtemel kılan çizgiyi bulmak istiyoruz. Ancak pratikte en aza indirilebilecek bir ölçüyü tercih ediyoruz, dolayısıyla sadece LL'nin negatifini alıyoruz. Böylece Negatif Log Olabilirlik (NLL) kayıp fonksiyonunu elde ediyoruz, ancak bana göre buna kayıp fonksiyonu demek pek doğru değil.

Böylece iki kayıp fonksiyonumuz var: LinReg için SSE ve LogReg için NLL. Bu kayıp fonksiyonlarının birçok adı olduğunu ve bu terimlere aşina olmanız gerektiğini unutmayın.

Doğrusal Regresyon ve Lojistik Regresyon çok benzer görünse ve görünse de gerçekte oldukça farklıdırlar. LinReg tahmin/tahmin için kullanılır ve LogReg sınıflandırma içindir. İkisinin de doğrusal fonksiyonu temel olarak kullandıkları doğrudur ancak LogReg ayrıca lojistik fonksiyonunu da ekler. Eğitim verilerini tüketme ve model çıktılarını üretme biçimleri bakımından farklılık gösterirler. İkisi ayrıca çok farklı bir kayıp fonksiyonu kullanıyor.

Daha fazla ayrıntı araştırılabilir. Neden SSE? Olasılık nasıl hesaplanır? Daha fazla matematikten kaçınmak için burada optimizasyon yöntemine girmedik. Bununla birlikte, LogReg'in optimizasyonunun genellikle yinelemeli gradyan iniş yöntemini gerektirdiğini, LinReg'in ise genellikle hızlı kapalı form çözümüyle bunu yapabileceğini unutmayın. Bunları ve daha fazlasını başka bir yazımızda ele alabiliriz.

Doğrusal ve Lojistik Regresyonun Karşılaştırılması Kaynaktan Yayınlanmıştır https://towardsdatascience.com/comparing-linear-and-logistic-regression-11a3e1812212?

<!–

->

Zaman Damgası:

Den fazla Blockchain Danışmanları