5.3 GLM, GAM ve Fazlası
Last updated
Last updated
Doğrusal regresyon modelinin en büyük gücü, ancak aynı zamanda en büyük zayıflığı, tahminin özelliklerin ağırlıklı bir toplamı olarak modellenmesidir. Ayrıca, doğrusal model birçok başka varsayım da içerir. Kötü haber şu ki (aslında pek de yeni bir haber değil) bu varsayımların çoğu gerçekte sıklıkla ihlal edilir: Özelliklere bağlı olarak çıkan sonuç Gauss dağılımına uymayabilir, özellikler etkileşime girebilir ve özelliklerle sonuç arasındaki ilişki doğrusal olmayabilir. İyi haber ise, istatistik topluluğu doğrusal regresyon modelini basit bir bıçaktan çok amaçlı bir İsviçre çakısına dönüştüren çeşitli modifikasyonlar geliştirmiştir.
Bu bölüm, doğrusal modelleri genişletme konusunda nihai bir rehber değildir. Daha ziyade, Genelleştirilmiş Doğrusal Modeller (GLM'ler) ve Genelleştirilmiş Toplayıcı Modeller (GAM'ler) gibi genişletmelerin bir özetini sunar ve size biraz sezgi kazandırır. Okuduktan sonra, doğrusal modelleri nasıl genişletebileceğinize dair sağlam bir genel bakışa sahip olmalısınız. Eğer doğrusal regresyon modeli hakkında daha fazla bilgi edinmek istiyorsanız, henüz yapmadıysanız, doğrusal regresyon modeli bölümünü okumanızı öneririm.
Doğrusal regresyon modelinin formülünü hatırlayalım:
Doğrusal regresyon modeli, bir örneğin çıktısı y'nin, p adet özelliğinin ağırlıklı toplamı ve Gauss dağılımını takip eden bir hata terimi ile ifade edilebileceğini varsayar. Veriyi bu formülün korsesine sokarak model yorumlanabilirliği elde ederiz. Özellik etkileri toplamsaldır (yani, etkileşim yoktur) ve ilişki doğrusaldır; bu da bir özelliğin bir birim artışının, tahmin edilen sonuç üzerinde doğrudan bir artış/azalış olarak çevrilebileceği anlamına gelir. Doğrusal model, bir özellik ile beklenen sonuç arasındaki ilişkiyi tek bir sayıya, yani tahmin edilen ağırlığa indirgememizi sağlar.
Ancak, basit bir ağırlıklı toplam birçok gerçek dünya tahmin problemi için fazla kısıtlayıcıdır. Bu bölümde, klasik doğrusal regresyon modelinin üç problemine ve bunların nasıl çözüleceğine odaklanacağız. Varsayımların ihlal edilmesiyle ilgili birçok başka problem vardır, ancak aşağıdaki şekilde gösterilen üçüne odaklanacağız:
Bu sorunların hepsine bir çözüm var:
Problem: Özelliklere bağlı olarak hedef çıktı y, Gauss dağılımına uymuyor. Örnek: Diyelim ki, belirli bir günde bisiklet sürmek için kaç dakika harcayacağımı tahmin etmek istiyorum. Özellikler olarak gün türü, hava durumu vb. verilere sahibim. Eğer bir doğrusal model kullanırsam, negatif dakikalar öngörebilir çünkü model Gauss dağılımını varsayar ve bu, 0 dakikada durmaz. Ayrıca, bir doğrusal modelle olasılıkları tahmin etmek istersem, negatif veya 1'den büyük olasılıklar elde edebilirim. Çözüm: Genelleştirilmiş Doğrusal Modeller (GLM'ler).
Problem: Özellikler etkileşime giriyor. Örnek: Genel olarak, hafif yağmur bisiklete binme isteğim üzerinde hafif olumsuz bir etkiye sahiptir. Ancak yaz aylarında, yoğun saatlerde yağmuru memnuniyetle karşılarım, çünkü o zaman sadece iyi havalarda bisiklete binenler evde kalır ve bisiklet yolları bana kalır! Bu, zaman ve hava durumu arasındaki bir etkileşimdir ve tamamen toplamsal bir model ile yakalanamaz. Çözüm: Etkileşimlerin manuel olarak eklenmesi.
Problem: Özellikler ile y arasındaki gerçek ilişki doğrusal değil. Örnek: 0 ile 25 derece Celsius arasında sıcaklığın bisiklete binme isteğim üzerindeki etkisi doğrusal olabilir; yani 0'dan 1 dereceye artış, 20'den 21 dereceye artışla aynı isteği artırır. Ancak daha yüksek sıcaklıklarda bisiklete binme motivasyonum azalır - hava çok sıcak olduğunda bisiklete binmekten hoşlanmam. Çözümler: Genelleştirilmiş Toplayıcı Modeller (GAM'ler); özelliklerin dönüşümü.
Bu üç sorunun çözümleri bu bölümde ele alınacaktır. Doğrusal modelin birçok başka genişletmesi ise ele alınmayacaktır. Eğer burada her şeyi kapsamaya çalışsaydım, bu bölüm hızla başka kitaplarda zaten ele alınmış bir konu hakkında bir kitabın içinde başka bir kitaba dönüşürdü. Ancak madem buradasınız, doğrusal model genişletmeleri için bir sorun + çözüm özetini bölümün sonunda bulabilirsiniz. Çözüm isimleri, bir arama başlatmak için başlangıç noktası olarak düşünülmüştür.
Doğrusal regresyon modeli, giriş özelliklerine bağlı olarak çıktının Gauss dağılımını takip ettiğini varsayar. Ancak bu varsayım birçok durumu dışlar: Çıktı bir kategori (kanser vs. sağlıklı), bir sayı (çocuk sayısı), bir olayın gerçekleşme süresi (bir makinenin arızalanma süresi) veya birkaç çok yüksek değere sahip, çok çarpık bir dağılım (hane geliri) olabilir. Doğrusal regresyon modeli, bu tür çıktıları modelleyebilmek için genişletilebilir. Bu genişletmeye Genelleştirilmiş Doğrusal Modeller (GLM'ler) adı verilir. Bu bölüm boyunca, hem genel çerçeve hem de bu çerçeveden belirli modeller için GLM terimini kullanacağım.
GLM'lerin temel konsepti şudur: Özelliklerin ağırlıklı toplamını koruyun, ancak Gauss dışı çıktı dağılımlarına izin verin ve bu dağılımın beklenen ortalaması ile ağırlıklı toplamı muhtemelen doğrusal olmayan bir fonksiyon aracılığıyla ilişkilendirin. Örneğin, lojistik regresyon modeli, çıktının Bernoulli dağılımını varsayar ve beklenen ortalama ile ağırlıklı toplamı lojistik fonksiyon kullanarak bağlar.
GLM, özelliklerin ağırlıklı toplamını, varsayılan dağılımın ortalama değeriyle link fonksiyonu ggg kullanarak matematiksel olarak ilişkilendirir. Bu fonksiyon, çıktının türüne bağlı olarak esnek bir şekilde seçilebilir.
GLM'ler üç bileşenden oluşur: Link fonksiyonu ggg, ağırlıklı toplam (bazen doğrusal kestirici olarak adlandırılır) ve tanımlayan üstel aileden bir olasılık dağılımı.
Üstel aile, bir üstel, dağılımın ortalama ve varyansını ve bazı diğer parametreleri içeren aynı (parametreli) formülle yazılabilen bir dizi dağılımdan oluşur. Matematiksel detaylara girmeyeceğim çünkü bu, kendi başına oldukça büyük bir alan ve buraya girmek istemiyorum. Wikipedia, üstel aileye ait dağılımların güzel bir listesine sahiptir. Bu listeden herhangi bir dağılım, GLM'niz için seçilebilir. Tahmin etmek istediğiniz çıktının türüne bağlı olarak uygun bir dağılım seçin. Çıktı bir şeyin sayısı mı (örneğin, bir hanede yaşayan çocuk sayısı)? O zaman Poisson dağılımı iyi bir seçenek olabilir. Çıktı her zaman pozitif mi (örneğin, iki olay arasındaki süre)? O zaman üstel dağılım iyi bir seçenek olabilir.
Klasik doğrusal modeli bir GLM'nin özel bir durumu olarak ele alalım. Klasik doğrusal modelde Gauss dağılımı için link fonksiyonu sadece birim fonksiyonudur. Gauss dağılımı, ortalama ve varyans parametreleriyle tanımlanır. Ortalama, beklediğimiz değeri, varyans ise bu ortalama etrafındaki değerlerin ne kadar değiştiğini tanımlar. Doğrusal modelde link fonksiyonu, özelliklerin ağırlıklı toplamını Gauss dağılımının ortalaması ile ilişkilendirir.
GLM çerçevesinde, bu kavram herhangi bir dağılım (üstel aileden) ve keyfi link fonksiyonlarına genellenir. Eğer y bir şeyin sayısıysa, örneğin bir kişinin bir günde içtiği kahve sayısı, bunu Poisson dağılımı ve link fonksiyonu olarak doğal logaritma ile bir GLM olarak modelleyebiliriz.
Lojistik regresyon modeli de aynı zamanda Bernoulli dağılımı varsayımı yapan ve logit fonksiyonunu link fonksiyonu olarak kullanan bir GLM'dir. Lojistik regresyonda kullanılan binomial dağılımın anlamı y'nin olasılığının 1 olmasıdır.
Ve eğer bu eşitliği bir tarafta olacak şekilde çözersek, lojistik regresyon formülünü elde ederiz.
Her dağılımın üstel aileden gelen kanonik bir link fonksiyonu vardır ve bu fonksiyon dağılımdan matematiksel olarak türetilebilir. GLM çerçevesi, link fonksiyonunu dağılımdan bağımsız olarak seçme esnekliği sunar. Peki doğru link fonksiyonu nasıl seçilir? Mükemmel bir tarif yoktur. Çıktının dağılımı hakkında sahip olduğunuz bilgileri, teorik hususları ve modelin gerçek verilerinizle ne kadar iyi uyum sağladığını dikkate alırsınız. Bazı dağılımlar için kanonik link fonksiyonu, o dağılım için geçerli olmayan değerlere yol açabilir. Örneğin, üstel dağılım için kanonik link fonksiyonu negatif ters fonksiyondur ve bu, üstel dağılımın tanım kümesinin dışında kalan negatif tahminlere yol açabilir. Neyse ki, herhangi bir link fonksiyonu seçebileceğiniz için basit bir çözüm, dağılımın tanım kümesine saygı gösteren başka bir fonksiyon seçmektir.
GLM'lere duyulan ihtiyacı vurgulamak için kahve içme davranışı üzerine bir veri seti simüle ettim. Diyelim ki günlük kahve içme davranışınız hakkında veri topladınız. Kahveyi sevmiyorsanız, bu çayın üzerine bir örnek olsun. Fincan sayısının yanı sıra, mevcut stres seviyenizi (1'den 10'a kadar bir ölçek), bir önceki gece ne kadar iyi uyuduğunuzu (1'den 10'a kadar bir ölçek) ve o gün çalışıp çalışmadığınızı kaydediyorsunuz. Amaç, stres, uyku ve iş özelliklerine göre içilen kahve sayısını tahmin etmektir. 200 gün için veri simüle ettim. Stres ve uyku değerleri 1 ile 10 arasında uniform dağılım ile ve iş (evet/hayır) %50 şansla çekildi (ne güzel bir hayat!). Her gün için, kahve sayısı, özelliklerin (uyku, stres ve iş) bir fonksiyonu olarak yoğunluğu λ modelleyen bir Poisson dağılımından çekildi (Poisson dağılımında yoğunluk aynı zamanda beklenen değerdir). Bu hikayenin nereye varacağını tahmin edebilirsiniz: “Hey, hadi bu veriyi doğrusal bir modelle modelleyelim... Oh, işe yaramadı... Hadi Poisson dağılımıyla bir GLM deneyelim... SÜRPRİZ! Şimdi çalışıyor!”. Umarım hikayeyi fazla açık etmemişimdir.
Şimdi hedef değişkenin, yani belirli bir günde içilen kahve sayısının dağılımına bakalım:
200 günün 76'sında hiç kahve içmediniz ve en uç günde 7 fincan kahve içtiniz. Uyku seviyesi, stres seviyesi ve iş (evet/hayır) gibi özellikleri kullanarak kahve sayısını tahmin etmek için saf bir şekilde doğrusal bir model kullanalım. Gaussian dağılımını yanlış varsaydığımızda neler ters gidebilir? Yanlış bir varsayım, özellikle ağırlıkların güven aralıklarını etkileyerek tahminleri geçersiz kılabilir. Daha bariz bir problem ise tahminlerin, gerçek sonucun “izin verilen” aralığına uymamasıdır; bu durum, aşağıdaki şekilde gösterilmektedir.
Doğrusal model mantıklı değildir, çünkü negatif kahve sayısı tahmin eder. Bu problem, Genelleştirilmiş Doğrusal Modeller (GLM'ler) kullanılarak çözülebilir. Link fonksiyonunu ve varsayılan dağılımı değiştirebiliriz. Bir seçenek, Gaussian dağılımını koruyarak, kimlik fonksiyonu yerine log-link (tersi exp-fonksiyonudur) gibi daima pozitif tahminler üreten bir link fonksiyonu kullanmaktır. Daha da iyisi: Veriyi üreten sürece karşılık gelen bir dağılım ve uygun bir link fonksiyonu seçmektir. Sonuç bir sayı olduğundan, Poisson dağılımı ve link fonksiyonu olarak logaritma doğal bir tercihtir. Bu durumda, veriler zaten Poisson dağılımı ile üretildiğinden, Poisson GLM mükemmel bir seçimdir. Uyum sağlanan Poisson GLM, aşağıdaki tahmin edilen değerler dağılımına yol açar:
Negatif kahve miktarları yok, şimdi çok daha iyi görünüyor.
Tahmin edilen dağılım ve link fonksiyonu, özellik ağırlıklarının nasıl yorumlanacağını belirler. Kahve sayısı örneğinde, Poisson dağılımı ve log link kullanılan bir GLM kullanıldı; bu da, beklenen sonuç ile stres (str), uyku (slp) ve iş (wrk) gibi özellikler arasında aşağıdaki ilişkiyi ima eder.
Ağırlıkları yorumlayabilmek için link fonksiyonunu tersini hesaplarız; böylece özelliklerin etkisini, beklenen sonucun logaritması yerine doğrudan beklenen sonuç üzerinde yorumlayabiliriz.
Tüm ağırlıklar şimdi üstel fonksiyonun içinde olduğu için, etki yorumu eklenebilir değil ama çarpılabilir çünkü exp(a+b), exp(a)*exp(b) ifadesine eşittir. Yorum için son gereken malzeme ise oyuncak örneğinin gerçek ağırlıklardır. Aşağıdaki tablo tahmin edilen ağırlıkları ve üstel değerlerini, %95 güven aralığı ile listelemektedir.
(Intercept)
-0.16
0.85 [0.54, 1.32]
stress
0.12
1.12 [1.07, 1.18]
sleep
-0.15
0.86 [0.82, 0.90]
workYES
0.80
2.23 [1.72, 2.93]
Stres seviyesini bir puan artırmak, beklenen kahve sayısını 1.12 kat artırır. Uyku kalitesini bir puan artırmak, beklenen kahve sayısını 0.86 kat azaltır. Çalışma gününde tahmin edilen kahve sayısı, tatil gününe göre ortalama 2.23 kat fazladır. Özetle, daha fazla stres, daha az uyku ve daha fazla iş, daha fazla kahve tüketimine yol açar.
Bu bölümde, hedef değişken Gaussian dağılıma uymadığında yararlı olan Genelleştirilmiş Doğrusal Modeller (GLM'ler) hakkında biraz bilgi edindiniz. Şimdi, iki özellik arasındaki etkileşimleri doğrusal regresyon modeline nasıl entegre edebileceğimize bakacağız.
5.3.2 Etkileşimler
Doğrusal regresyon modeli, bir özelliğin etkisinin diğer özelliklerin değerlerinden bağımsız olduğunu varsayar (= etkileşim yok). Ancak, çoğu zaman verilerde etkileşimler bulunur. Örneğin, kiralanan bisiklet sayısını tahmin etmek için sıcaklık ve çalışma günü olup olmama durumu arasında bir etkileşim olabilir. Belki de insanlar işe gitmek zorunda olduklarında, sıcaklık kiralanan bisiklet sayısını pek etkilemez, çünkü hava nasıl olursa olsun işe gitmek için bisiklet kiralarlar. Ancak tatil günlerinde, birçok insan sadece hava yeterince sıcak olduğunda keyif için bisiklet sürer. Bu nedenle, bisiklet kiralamada sıcaklık ve çalışma günü arasında bir etkileşim bekleyebilirsiniz.
Doğrusal modelin etkileşimleri nasıl içerebiliriz? Modeli oluşturmadan önce, özellik matrisine etkileşimi temsil eden bir sütun ekleyin ve modeli her zamanki gibi eğitin. Bu çözüm, doğrusal modelde herhangi bir değişiklik yapmayı gerektirmez; yalnızca veride ek sütunlar eklemeyi içerir. Örneğin, çalışma günü ve sıcaklık etkileşiminde, yeni bir özellik ekleriz; bu özellik tatil günleri için sıfır değerine, diğer durumlar için ise sıcaklık özelliğinin değerine sahip olur. Çalışma gününün referans kategori olduğunu varsayarsak, verimiz şöyle görünebilir:
Y
25
N
12
N
30
Y
5
Ancak, doğrusal model tarafından kullanılan veri matrisi biraz daha farklıdır. Aşağıdaki tablo bir etkileşim belirtilmediği durumda, model için hazırlanan verinin nasıl olduğunu göstermektedir. Bu dönüşüm herhangi bir istatistiksel yazılım tarafından otomatik olarak yapılmaktadır.
1
1
25
1
0
12
1
0
30
1
1
5
İlk sütun, kesişim noktasını (intercept) temsil etmektedir. İkinci sütun kategorik değişkeni kodlamaktadır, referans kategorisi için 0, diğeri için 1. Üçüncü kolon ise sıcaklığı göstermektedir.
Eğer doğrusal modelin, sıcaklık ve çalışma günü arasındaki etkileşimi de değerlendirmesini istiyorsak, etkileşim için bir sütun daha eklemek zorundayız.
1
1
25
25
1
0
12
0
1
0
30
0
1
1
5
5
Yeni eklenen workY.temp sütunu çalışma günü ve sıcaklık değişkenleri arasındaki etkileşimi yakalamaktadır. Yeni oluşturulan özellik sütunu, çalışma özelliği referans kategoride olduğunda (örneğin “N” = tatil günü) sıfır değerini alır; aksi durumda, sıcaklık özelliğinin değerini alır. Bu tür bir kodlama ile, doğrusal model her iki gün türü için farklı bir sıcaklık etkisi öğrenebilir. Yani, iki özellik arasındaki etkileşim etkisini hesaba katmış oluruz. Etkileşim terimi olmadan, bir kategorik ve bir sayısal özelliğin birleşik etkisi, farklı kategoriler için dikey olarak kaydırılmış bir doğru ile tanımlanabilir. Ancak etkileşimi dahil edersek, sayısal özelliklerin etkisinin (eğim) her bir kategori için farklı bir değere sahip olmasına izin vermiş oluruz.
İki kategorik özelliğin etkileşimi de benzer şekilde çalışır. Kategorilerin kombinasyonlarını temsil eden ek özellikler oluştururuz. Aşağıda, çalışma günü (work) ve hava durumu (wthr) kategorik özelliklerini içeren yapay bir veri seti bulunmaktadır:
Y
2
N
0
N
1
Y
2
Sonra, etkileşim terimlerini dahil ediyoruz.
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
İlk sütun, kesme noktasını (intercept) tahmin etmek için kullanılır. İkinci sütun, kodlanmış çalışma günü (work) özelliğini temsil eder. Üçüncü ve dördüncü sütunlar, hava durumu (weather) özelliği içindir ve üç kategori için etkiyi yakalamak üzere iki sütun gereklidir; çünkü üç kategorinin etkisini yakalamak için iki ağırlık gereklidir ve bir tanesi referans kategoridir. Geriye kalan sütunlar etkileşimleri temsil eder. Her iki özelliğin kategorileri (referans kategoriler hariç) için yeni bir özellik sütunu oluştururuz; bu sütun her iki özellik belirli bir kategoriye sahipse 1, aksi takdirde 0 olur.
İki sayısal özellik için etkileşim sütunu oluşturmak daha da kolaydır: İki sayısal özelliği çarparız.
Etkileşim terimlerini otomatik olarak algılayan ve ekleyen yaklaşımlar da vardır. Bunlardan biri, RuleFit algoritmasıdır. RuleFit algoritması, ilk olarak etkileşim terimlerini belirler ve ardından etkileşimleri içeren bir doğrusal regresyon modeli tahmin eder.
Şimdi, daha önce doğrusal model bölümünde ele aldığımız bisiklet kiralama tahmin görevine geri dönelim. Bu sefer, sıcaklık (temperature) ve çalışma günü (working day) özellikleri arasındaki etkileşimi de hesaba katıyoruz. Bu, aşağıdaki tahmin edilen ağırlıklar ve güven aralıkları ile sonuçlanır:
(Intercept)
2185.8
250.2
1694.6
2677.1
seasonSPRING
893.8
121.8
654.7
1132.9
seasonSUMMER
137.1
161.0
-179.0
453.2
seasonFALL
426.5
110.3
209.9
643.2
holidayHOLIDAY
-674.4
202.5
-1071.9
-276.9
workingdayWORKING DAY
451.9
141.7
173.7
730.1
weathersitMISTY
-382.1
87.2
-553.3
-211.0
weathersitRAIN/…
-1898.2
222.7
-2335.4
-1461.0
temp
125.4
8.9
108.0
142.9
hum
-17.5
3.2
-23.7
-11.3
windspeed
-42.1
6.9
-55.5
-28.6
days_since_2011
4.9
0.2
4.6
5.3
workingdayWORKING DAY:temp
-21.8
8.1
-37.7
-5.9
Ekstra etkileşim etkisi negatif bir değere sahiptir (-21.8) ve sıfırdan anlamlı derecede farklıdır, çünkü %95 güven aralığı sıfırı içermemektedir. Bu arada, veriler bağımsız ve aynı dağılıma sahip değildir (iid), çünkü birbirine yakın günler birbirinden bağımsız değildir. Dolayısıyla, güven aralıkları yanıltıcı olabilir; bu yüzden sonuçları dikkatle değerlendirmelisiniz. Etkileşim terimi, ilgili özelliklerin ağırlıklarının yorumlanmasını değiştirir. Örneğin, sıcaklığın çalışma günlerinde negatif bir etkisi mi var? Tablo, eğitimsiz bir kullanıcıya bunu öyle gösterse de, cevap hayır. Çünkü “workingdayWORKING DAY:temp" etkileşim ağırlığını tek başına yorumlayamayız. Bu ağırlığın yorumu şöyle olurdu: "Diğer tüm özellik değerlerini sabit tutarak, sıcaklığın çalışma günü etkisini artırmak, tahmin edilen bisiklet sayısını azaltır." Ancak etkileşim etkisi sadece sıcaklığın ana etkisine eklenir. Örnek olarak, diyelim ki bugün bir çalışma günü ve sıcaklığın 1 derece arttığını bilmek istiyoruz. Bu durumda, sıcaklığın etkisini hesaplamak için “temp” ve “workingdayWORKING DAY” ağırlıklarını toplamalıyız.
Etkileşimi görsel olarak anlamak daha kolaydır. Bir kategorik ve sayısal özellik arasında etkileşim terimi ekleyerek, sıcaklık için tek bir eğim yerine iki farklı eğim elde ederiz. İnsanların çalışmak zorunda olmadığı günler için sıcaklık eğimi (‘NO WORKING DAY’), tablodan doğrudan okunabilir (125.4). Çalışma günleri için (‘WORKING DAY’) sıcaklık eğimi, iki ağırlığın toplamıdır (125.4 - 21.8 = 103.6).
Sıcaklık = 0 iken ‘NO WORKING DAY’ çizgisinin kesme noktası doğrusal modelin kesme terimiyle belirlenir (2185.8). ‘WORKING DAY’ çizgisinin kesme noktası ise, kesme terimi + çalışma günü etkisi (2185.8 + 451.9 = 2637.7) ile belirlenir.
5.3.3 Doğrusal Olmayan Etkiler - GAM'ler
Dünya doğrusal değildir. Doğrusal modellerde doğrusal ilişki, bir örneğin belirli bir özelliğinde hangi değeri alırsa alsın, değeri bir birim artırmanın her zaman tahmin edilen sonuç üzerinde aynı etkiye sahip olduğu anlamına gelir. Örneğin, sıcaklığı 10 derece Celsius’tan bir derece artırmanın kiralık bisiklet sayısı üzerinde, sıcaklık 40 dereceye ulaştığında artırmakla aynı etkiye sahip olacağını varsaymak mantıklı mı? Sezgisel olarak, sıcaklığı 10’dan 11 dereceye çıkarmanın bisiklet kiralama üzerinde pozitif bir etki yaratması, ancak 40’tan 41 dereceye çıkarıldığında negatif bir etkiye yol açması beklenir ki, bu kitap boyunca göreceğiniz birçok örnekte de durum budur.
Sıcaklık özelliği, kiralık bisiklet sayısı üzerinde doğrusal, pozitif bir etkiye sahiptir ancak belli bir noktadan sonra bu etki düzleşir ve hatta yüksek sıcaklıklarda negatif bir etkiye dönüşür. Ancak doğrusal model buna aldırmaz; Öklid mesafesini minimize ederek en iyi doğrusal düzlemi bulmaya çalışacaktır.
Doğrusal olmayan ilişkileri modellemek için şu teknikleri kullanabilirsiniz:
Özelliğin basit bir dönüşümü (örneğin, logaritma)
Özelliğin kategorize edilmesi
Genelleştirilmiş Eklentili Modeller (GAM'ler)
Her yöntemin ayrıntılarına girmeden önce, bu tekniklerin her birini açıklayan bir örnekle başlayalım. Bisiklet kiralama verisetini aldım ve yalnızca sıcaklık özelliğini kullanarak kiralık bisiklet sayısını tahmin etmek için bir doğrusal model eğittim. Aşağıdaki şekilde, sıcaklık için tahmin edilen eğim farklı yöntemlerle gösterilmiştir:
Standart doğrusal model
Logaritmik dönüşümlü doğrusal model
Sıcaklığın kategorik özellik olarak ele alındığı doğrusal model
Regresyon splineleri (GAM) kullanılarak elde edilen model
Çoğu zaman, bir özelliği dönüştürmek için logaritma kullanılır. Logaritmayı kullanmak, sıcaklığın her 10 kat artışının bisiklet sayısı üzerinde aynı doğrusal etkiye sahip olduğunu belirtir, bu nedenle 1°C'den 10°C'ye çıkmak, 0.1°C'den 1°C'ye çıkmakla aynı etkiye sahiptir (bu kulağa yanlış gelebilir). Diğer dönüşüm örnekleri arasında karekök, kare alma ve üstel fonksiyon bulunur. Bir özellik dönüşümü kullanmak, veride bu özelliğin sütununu seçilen fonksiyonla (örneğin logaritma) değiştirmek ve doğrusal modeli her zamanki gibi fit etmek anlamına gelir. Bazı istatistiksel programlar, doğrusal model çağrısı sırasında dönüşümleri belirtmenize de olanak tanır. Özelliği dönüştürürken yaratıcı olabilirsiniz. Özellik dönüşümü seçimine göre yorum değişir. Örneğin, log dönüşümü kullanıldığında, doğrusal modelde yorum şöyle olur: “Özelliğin logaritması bir birim artırıldığında, tahmin ilgili ağırlık kadar artar.”
Eğer kimlik fonksiyonu olmayan bir bağlantı fonksiyonuyla bir GLM kullanıyorsanız, yorum daha karmaşık hale gelir, çünkü her iki dönüşümü de hesaba katmanız gerekir (log ve exp gibi birbirini götüren durumlar hariç).
Doğrusal olmayan bir etki elde etmenin başka bir yolu, özelliği kategorilere ayırmak, yani bir kategorik özellik haline getirmektir. Örneğin, sıcaklık özelliğini 20 aralığa bölebilirsiniz: [-10, -5), [-5, 0) vb. Kategorize edilmiş sıcaklık yerine sürekli sıcaklığı kullanırsanız, doğrusal model bir basamak fonksiyonu tahmin eder çünkü her seviye kendi tahminini alır. Ancak bu yaklaşımın dezavantajları vardır: Daha fazla veri gerektirir, aşırı öğrenmeye daha yatkındır ve özelliği anlamlı bir şekilde nasıl kategorilere ayıracağınız belirsizdir (eşit aralıklı veya kantil aralıklar mı? Kaç aralık?). Yalnızca başka bir çalışmayla karşılaştırma yapmak için çok güçlü bir gerekçe varsa kategorileştirme kullanırdım.
Neden ‘sadece’ (genelleştirilmiş) doğrusal modelin doğrusal olmayan ilişkiler öğrenmesine izin vermiyoruz? İşte bu, GAMs'in arkasındaki motivasyondur. GAMs, ilişkinin basit bir ağırlıklı toplam olması gerektiği kısıtlamasını gevşetir ve bunun yerine sonucun, her bir özelliğin gelişi güzel fonksiyonlarının toplamı ile modellenebileceğini varsayar. Matematiksel olarak, bir GAM'deki ilişki şu şekilde görünür:
Formül, GLM formülüne benzerdir; farkı, doğrusal terim yerine, daha esnek bir fonksiyon olan kullanılmasıdır. GAM'ların özü hâlâ özellik etkilerinin bir toplamıdır, ancak bazı özellikler ile çıktı arasında doğrusal olmayan ilişkilere izin verebilirsiniz. Doğrusal etkiler de bu çerçeveye dahildir, çünkü bir özelliği doğrusal olarak ele almak istiyorsanız, fonksiyonunu yalnızca şeklinde sınırlandırabilirsiniz.
Büyük soru şu: Doğrusal olmayan fonksiyonlar nasıl öğrenilir? Cevap: Splineler veya spline fonksiyonları olarak adlandırılır. Splineler, daha basit temel fonksiyonlardan inşa edilen fonksiyonlardır. Splineler, daha karmaşık fonksiyonları yaklaştırmak için kullanılabilir. Bu, tıpkı karmaşık bir yapı oluşturmak için Lego parçalarını üst üste koymak gibidir. Spline temel fonksiyonlarını tanımlamanın çok sayıda yolu vardır ve bu kafa karıştırıcı olabilir. Eğer tüm bu tanımlama yollarını öğrenmek istiyorsanız, başarılar dilerim. Burada detaylara girmeyeceğim, sadece bir sezgi oluşturmayı amaçlıyorum. Kişisel olarak splineleri anlamamda bana en çok yardımcı olan şey, bireysel spline temel fonksiyonlarını görselleştirmek ve veri matrisinin nasıl değiştiğine bakmak oldu. Örneğin, sıcaklığı splinelerle modellemek için, sıcaklık özelliğini veri setinden çıkarırız ve yerine her biri bir spline temel fonksiyonunu temsil eden 4 sütun ekleriz (görselleştirme amacıyla sayı azaltıldı; normalde daha fazla spline fonksiyonu kullanılır). Bu yeni spline temel özelliklerinin her birinin değeri, örneklerin sıcaklık değerlerine bağlıdır. GAM, tüm doğrusal etkilerle birlikte bu spline ağırlıklarını da tahmin eder. GAM'ler ayrıca ağırlıkları sıfıra yakın tutmak için bir cezalandırma terimi ekler. Bu, splinelerin esnekliğini azaltır ve aşırı uyumu (overfitting) engeller. Eğrinin esnekliğini kontrol etmek için yaygın olarak kullanılan düzgünlük (smoothness) parametresi, daha sonra çapraz doğrulama ile ayarlanır. Cezalandırma terimi göz ardı edilirse, doğrusal olmayan modelleme aslında oldukça şık bir özellik mühendisliği gibi olur.
Sıcaklık kullanarak yalnızca GAM ile bisiklet sayısını tahmin ettiğimiz örnekte, modelin özellik matrisi şu şekilde görünür:
1
-0.93
-0.14
0.21
-0.83
1
-0.83
-0.27
0.27
-0.72
1
-1.32
0.71
-0.39
-1.63
1
-1.32
0.70
-0.38
-1.61
1
-1.29
0.58
-0.26
-1.47
1
-1.32
0.68
-0.36
-1.59
Her satır, veriden bir bireysel örneği (bir günü) temsil eder. Spline temel sütunları, belirli sıcaklık değerlerindeki spline temel fonksiyonlarının değerlerini içerir. Aşağıdaki şekil, bu spline temel fonksiyonlarının nasıl göründüğünü göstermektedir:
GAM, her sıcaklık spline temel özelliklerine ağırlık atar.
weight
(Intercept)
4504.35
s(temp).1
989.34
s(temp).2
740.08
s(temp).3
2309.84
s(temp).4
558.27
Ve, spline temel fonksiyonlarının tahmin edilen ağırlıklarla çarpılarak toplanmasıyla elde edilen gerçek spline eğrisi şu şekilde görünmektedir:
Düzgün etkilerin yorumlanması, eğriye görsel bir kontrol yapılmasını gerektirir. Splineler genellikle ortalama tahmin etrafında merkezlenir, bu nedenle eğri üzerindeki bir nokta, ortalama tahmine göre farkı temsil eder. Örneğin, 0 derece Celsius’ta, tahmin edilen bisiklet sayısı ortalama tahminden 3000 daha düşüktür.
Bu lineer model genişletmelerinin her biri, kendi başına birer evrendir. Lineer modellerle karşılaştığınız her türlü sorun için muhtemelen bir çözüm bulabilirsiniz.
Birçok yöntem onlarca yıldır kullanılıyor. Örneğin, GAM'ler (Genelleştirilmiş Katkı Modelleri) neredeyse 30 yıllık. Birçok araştırmacı ve endüstrideki uygulayıcılar, lineer modellerle ve bu yöntemlerle çok deneyimlidir ve yöntemler birçok topluluk tarafından modellemenin standart uygulamaları olarak kabul edilmektedir.
Tahmin yapmanın yanı sıra, bu modelleri çıkarım yapmak, veri hakkında sonuçlar çıkarmak için de kullanabilirsiniz — tabi ki model varsayımları ihlal edilmediği sürece. Ağırlıklar için güven aralıkları, anlamlılık testleri, tahmin aralıkları ve daha fazlasını elde edersiniz.
İstatistiksel yazılımlar genellikle GLM’leri, GAM’leri ve diğer özel lineer modelleri uyarlamak için gerçekten iyi arayüzlere sahiptir.
Birçok makine öğrenimi modelinin opaklığı, 1) seyrekliğin eksikliğinden, yani birçok özelliğin kullanılmasından, 2) özelliklerin doğrusal olmayan bir şekilde işlenmesinden, yani etkiyi tanımlamak için tek bir ağırlıktan fazlasına ihtiyaç duyulmasından ve 3) özellikler arasındaki etkileşimlerin modellenmesinden kaynaklanır. Lineer modellerin son derece anlaşılır ancak genellikle gerçeği tam olarak yansıtmadığı varsayıldığında, bu bölümde açıklanan genişletmeler, bazı yorumlanabilirlikleri korurken daha esnek modellere geçiş için iyi bir yol sunar.
Avantaj olarak bahsettiğim gibi, lineer modeller kendi evrenlerinde yaşarlar. Basit bir lineer modeli genişletmenin bu kadar çok yolu olması, özellikle yeni başlayanlar için bunaltıcıdır. Aslında, birçok araştırmacı ve uygulayıcı topluluğunun neredeyse aynı işi yapan farklı isimlere sahip yöntemleri vardır, bu da oldukça kafa karıştırıcı olabilir.
Lineer modelin çoğu modifikasyonu, modelin yorumlanabilirliğini azaltır. Kimlik fonksiyonu olmayan herhangi bir bağlantı fonksiyonu (GLM'de) yorumu karmaşıklaştırır; etkileşimler de yorumu zorlaştırır; doğrusal olmayan özellik etkileri ya daha az sezgiseldir (log dönüşümü gibi) ya da artık tek bir sayıyla özetlenemez (örneğin spline fonksiyonları).
GLM'ler, GAM'ler ve benzer yöntemler, veri üretim süreci hakkında varsayımlara dayanır. Eğer bu varsayımlar ihlal edilirse, ağırlıkların yorumu artık geçerli olmaz.
Ağaç tabanlı ansambl modelleri, örneğin rastgele orman veya gradyan artırma modelleri, çoğu durumda en sofistike lineer modellerden bile daha iyi performans gösterir. Bu, hem kendi deneyimlerime dayanıyor hem de kaggle.com gibi platformlardaki kazanan modellerin gözlemlerine.
Bu bölümdeki tüm örnekler R dili kullanılarak oluşturuldu. GAM'ler için gam
paketi kullanıldı, ancak başka birçok paket de mevcut. R, lineer regresyon modellerini genişletmek için inanılmaz sayıda pakete sahiptir. Başka hiçbir analiz dili R'yi bu konuda geçemez; doğrusal regresyon modeli genişletmesinin her türüne ev sahipliği yapar. Python'da (örneğin pyGAM
gibi) GAM'lerin uygulamalarını bulabilirsiniz, ancak bu uygulamalar henüz olgunlaşmamıştır.
Söz verdiğim gibi, lineer modellerle karşılaşabileceğiniz sorunların bir listesi ve bu sorun için bir çözümün adını aşağıda bulabilirsiniz. Bunları favori arama motorunuza kopyalayabilirsiniz:
Verilerim bağımsız ve aynı dağılımdan (iid) gelme varsayımını ihlal ediyor. Örneğin, aynı hasta üzerinde tekrar eden ölçümler. Arayın: karma modeller veya genelleştirilmiş tahmin denklemleri.
Modelimde heteroskedastik hatalar var. Örneğin, bir evin değerini tahmin ederken, model hataları genellikle pahalı evlerde daha yüksektir. Arayın: sağlam regresyon.
Modelimi güçlü bir şekilde etkileyen aykırı değerler var. Arayın: sağlam regresyon.
Bir olayın gerçekleşme süresini tahmin etmek istiyorum. Arayın: parametrik sağkalım modelleri, cox regresyonu, sağkalım analizi.
Tahmin edilecek çıktım bir kategori. İki kategoriniz varsa, lojistik regresyon modeli kullanın. Daha fazla kategori varsa multinominal regresyon arayın.
Sıralı kategoriler tahmin etmek istiyorum. Örneğin okul notları. Arayın: orantılı ihtimaller modeli.
Çıktım bir sayıdır (bir ailedeki çocuk sayısı gibi). Arayın: Poisson regresyonu.
Verilerimde eksik veriler var. Arayın: çoklu imputasyon.
Modellerime ön bilgi dahil etmek istiyorum. Arayın: Bayes çıkarımı.
Son zamanlarda kendimi biraz kötü hissediyorum. Arayın: “Amazon Alexa Gone Wild!!! Baştan sona tam versiyon”.