Öğrenme hedefleri
Bu haftanın sonunda:
- 1 Torbalama (bagging) ile artırmanın (boosting) varyans–yanlılık açısından farkını açıklar.
- 2 Random Forest ve XGBoost'u iç içe (nested) çapraz doğrulamayla ayarlar; erken durdurma ve düzenlileştirme parametrelerini kullanır.
- 3 SVM'de marj, çekirdek ve C parametresinin rolünü açıklar; ölçeklemenin zorunluluğunu gerekçelendirir.
- 4 Safsızlık-temelli, permütasyon-temelli ve SHAP-temelli öznitelik önemini karşılaştırır; ilişkili özniteliklerde tuzakları tanır.
Ön Okuma ve Hazırlık
Hafif bir hazırlık yeter. Geçen haftaki defterin dört grafiğini bir kez daha açıp bakın; bugün aynı grafikleri dört farklı model için çizeceğiz. Bir de şunu düşünün: bir konuda beş uzmana danışıp çoğunluğun dediğini yapmak, tek bir uzmana güvenmekten ne zaman daha iyidir, ne zaman değildir?
Ders Notları
Basit modelden güçlü modele
Geçen hafta tek bir basit model kurduk, lojistik regresyon, ve onu dört soruyla sınadık. Bu hafta daha güçlü modeller geliyor. Ama bir şeyi baştan söyleyelim: güçlü model, otomatik olarak daha iyi model demek değil. Her yeni modeli yine aynı dört soruyla sınayacağız ve basit modeli geçemiyorsa karmaşıklığın bir anlamı olmadığını söyleyeceğiz. Küçük klinik veri setlerinde bu sık olur.
Karar ağacı: sorularla ilerlemek
Bugünkü modellerin yapı taşı karar ağacı. Bir karar ağacı, hastaya sırayla sorular soran bir akış şemasıdır. Serum kreatinin 1.4’ün üstünde mi? Evetse ejeksiyon fraksiyonu 30’un altında mı? Her cevap sizi bir dala götürür ve en sonda bir tahmin bekler. Hekimlerin kafasındaki klinik algoritmalara çok benzer, o yüzden anlaması kolaydır.
Tek bir ağacın derdi kararsızlığıdır. Veriyi biraz değiştirin, birkaç hastayı çıkarın, ağaç bambaşka sorular sormaya başlar. Küçük bir veride bu, ağacın gürültüyü ezberlediği anlamına gelir.
Random Forest: kalabalığın bilgeliği
Çözüm, tek ağaç yerine yüzlerce ağaç yetiştirmek. Her ağaca verinin rastgele bir parçasını ve sütunların rastgele bir alt kümesini gösterirsiniz; böylece her ağaç biraz farklı bir şey öğrenir. Sonra hepsine oy kullandırırsınız. Tek ağacın kaprisleri ortalamada kaybolur. Buna Random Forest deniyor ve adı tam olarak yaptığı şeyi anlatıyor: rastgele yetiştirilmiş bir orman.
Konsültasyon örneği iyi oturur. Zor bir vakada beş uzmanın görüşünü alırsınız; her biri hastanın farklı bir yönüne bakmıştır, biri yanılsa bile çoğunluk genellikle doğru yere gelir. Random Forest’ın tıp verisinde bu kadar yaygın olmasının nedeni budur: az ayar ister, zor bozulur, küçük veride bile makul çalışır.
XGBoost: hatadan öğrenen sıra
İkinci topluluk yöntemi farklı bir fikre dayanır. Ağaçlar yan yana değil, arka arkaya gelir. İlk ağaç kaba bir tahmin yapar. İkinci ağaç, ilkinin yanlış bildiği hastalara odaklanır ve onları düzeltmeye çalışır. Üçüncü, ikisinin hâlâ yanlış bildiklerine. Her yeni ağaç küçük bir adım atar; öğrenme oranı denen bir düğme bu adımın büyüklüğünü belirler. Buna gradyan artırma deniyor; XGBoost bunun en bilinen uygulaması.
Bir öğrencinin sınav kâğıdını alıp yalnızca yanlış yaptığı soruların benzerlerini çözdürmek gibi düşünün. Çok etkilidir, ama abartılırsa öğrenci o soruların kalıbını ezberler. O yüzden XGBoost’un düğmeleri Random Forest’tan daha çok ve ayarı daha önemlidir.
SVM: en geniş yolu çizmek
Üçüncü model farklı bir aileden. Destek vektör makinesi iki grubu ayıran bir çizgi çizer, ama herhangi bir çizgi değil: iki tarafa da en çok mesafe bırakan çizgiyi arar. İki mahalle arasına yol açıyorsanız, yolu evlere en uzak yerden geçirirsiniz; SVM aynı şeyi yapar.
Veri düz bir çizgiyle ayrılmıyorsa ne olur? Burada çekirdek hilesi devreye girer. Fikri bir cümleyle söylemek mümkün: iki boyutta iç içe duran iki grup, veriyi bir üst boyuta kaldırınca bir düzlemle ayrılabilir hâle gelir. SVM bu kaldırma işlemini açıkça yapmadan sonucunu hesaplar. Pratikte bilmeniz gereken iki şey var: SVM’den önce veriyi mutlaka ölçeklemek gerekir, çünkü mesafeye dayanır; ve SVM olasılık üretmek için tasarlanmamıştır, kalibrasyonu sonradan düzeltilir.
Ayar düğmeleri
Bu modellerin hepsinin düğmeleri var: ağaç sayısı, derinlik, öğrenme oranı, SVM’de C ve gamma. Bunlara hiperparametre deniyor ve doğru ayar sonucu değiştirir. Tuzak şurada: düğmeleri test verisine bakarak çevirirseniz, test verisi artık test verisi değildir; onu da modelin ayarında kullanmış olursunuz. Bu da bir sızıntıdır, 2. haftadan tanıdık.
Doğru yol, aramayı da çapraz doğrulamanın içinde yapmak. Defterde rastgele arama kullanıyoruz: yirmi beş farklı ayar denenir, her biri çapraz doğrulamayla puanlanır, en iyisi seçilir. Bir adım daha dürüst olan yöntem, aramayı dış bir çapraz doğrulamanın her katlamasında ayrı ayrı yapmaktır; buna iç içe çapraz doğrulama deniyor ve raporunuzda “model nasıl ayarlandı” sorusunun cevabı budur.
Model neye bakıyor?
Günün son ve belki en önemli sorusu. Random Forest yüzlerce ağaçtan oluşuyor; hangi sütunlara önem verdiğini nasıl anlarız? Üç farklı cevap var ve üçü farklı liste verir.
Birincisi ağacın kendi hesabı: her sütun dallanmalarda ne kadar işe yaradı? Hızlıdır ama yanlıdır; çok farklı değer alan sütunları, trombosit sayısı gibi, gereğinden fazla sever. İkincisi permütasyon: bir sütunu karıştırıp modelin ne kadar bozulduğuna bakmak. Daha dürüsttür ve önceki haftalardan tanıyorsunuz. Üçüncüsü basit modelin katsayıları: lojistik regresyon aynı soruya kendi gözünden cevap verir.
Üç liste aynı çıkmayınca öğrenciler genellikle “hangisi doğru?” diye sorar. Cevap: hepsi, çünkü farklı sorulara cevap veriyorlar. Asıl öğrenilmesi gereken şey, bu listelerin tek bir gerçeği değil modelin davranışını anlattığıdır.
Bu, açıklanabilirliğin ilk kapısı. 12. ve 13. haftalarda SHAP ile aynı soruya çok daha ince cevaplar alacağız.
Temel Kavramlar
- Karar ağacı — Hastaya sırayla eşik soruları soran akış şeması; anlaşılır ama tek başına kararsız.
- Random Forest — Rastgele yetiştirilmiş yüzlerce ağacın oylaması; kaprisler ortalamada kaybolur, az ayar ister.
- XGBoost (gradyan artırma) — Her yeni ağacın bir öncekinin hatalarına odaklandığı sıralı topluluk; güçlü ama ayarı önemli.
- SVM ve çekirdek — İki grubu en geniş boşlukla ayıran sınır; çekirdek hilesiyle eğri sınırlar; ölçekleme şart.
- Hiperparametre — Modelin ayar düğmeleri; test verisine bakarak çevrilmez, arama çapraz doğrulamanın içinde yapılır.
- Öznitelik önemi — “Model neye bakıyor?” sorusunun üç farklı cevabı; benzeyen sütunlar önemi paylaşır.
Uygulama / Laboratuvar
Defter Heart Failure verisiyle başlıyor ve önce bu veri setinin ünlü tuzağını gösteriyor: takip süresi sütunu gelecekten bilgi taşır, modele verilirse başarım şişer. Sonra dört model aynı boru hattında, geçen haftanın ölçütleriyle karşılaştırılıyor; XGBoost için rastgele hiperparametre araması yapılıyor; üç öznitelik önemi yöntemi yan yana çiziliyor; kreatininin kopyası eklenerek önem paylaşımı gösteriliyor.
Sonda bir bonus var: tamamen uydurma bir Fenerbahçe veri seti. Dört yüz sentetik maç, rakip gücü, deplasman, hakem kararları ve ertesi gün taraftar morali. Veriyi biz ürettiğimiz için “gerçek” nedenleri biliyoruz ve modelin bunları bulup bulamadığına bakıyoruz. Taraftar umudu ile son beş maç formu birbirine çok benziyor; önemi paylaşıyorlar. Konu aynı, kostüm farklı.
Hafta 5 · Ağaç Toplulukları, SVM ve Öznitelik Önemi
Colab'de ücretsiz GPU ile çalışır; yerel kurulum için Kaynaklar → Rehber.
Gömülü görünüm salt okunurdur ve çalıştırılmış çıktıları gösterir. Kodu değiştirip çalıştırmak için Colab'de aç'ı kullanın; ardından Dosya → Drive'a kopya kaydet.
Ders içi çalışma: Kendi proje verinizde “tahmin anında bilinemeyecek” bir sütun var mı? Takip süresi, taburcu tarihi, sonradan konulan tanı kodu gibi. Varsa adını ve neden sızıntı olduğunu iki cümleyle yazın; bu cümleler raporunuzun Yöntem bölümüne girecek. BVYZ-01 projesi bu haftaki veriyle çalışıyor; o defter doğrudan proje için başlangıç olabilir.
Tartışma Soruları
- Karmaşık model basit modeli yüzde bir geçiyor. Bu fark için yorumlanabilirlikten vazgeçmek klinik olarak ne zaman kabul edilir?
- Birbirine benzeyen iki sütundan birini çıkardığınızda öbürünün önemi neden aniden artar? Bu, “önemsiz” sütunları atmak için iyi bir yöntem midir?
- Bonus veride maç saatine küçük bir önem çıktı; oysa veriyi üretirken moralle hiç ilişkilendirmedik. Gerçek klinik veride böyle küçük “önemleri” nasıl ayıklarsınız?
Haftanın Özeti
Karar ağacından başlayıp Random Forest ve XGBoost’a, oradan SVM’e geçtik; hepsini geçen haftanın dört sorusuyla sınadık ve küçük veride farkların küçük kaldığını gördük. Ayar düğmelerini test verisine bakmadan çevirmeyi öğrendik. Son olarak “model neye bakıyor?” sorusunun üç farklı cevabı olduğunu ve benzeyen sütunların önemi paylaştığını gördük; bu, açıklanabilirliğin ilk kapısıydı. Gelecek hafta etiketi bir kenara bırakıp veride kendi kendine beliren yapılara bakıyoruz: kümeleme, hasta alt-tipleri ve anomali tespiti. Modül 2 orada tamamlanacak.
Bu haftanın veri setleri
- UCI Heart Failure Clinical Records — 299 kalp yetmezliği hastası; BVYZ-01 projesinin de verisi.
- Fenerbahçe ve taraftar morali (sentetik, şaka) — Defterde üretilir; gerçek olaylarla benzerlik tesadüftür. 🙂
Araçlar ve kütüphaneler
- scikit-learn
- xgboost
Okuma listesi
Etiketler:Random ForestXGBoostgradyan artırmaSVMçekirdeköznitelik önemihiperparametre