Karar Ağacı Nasıl Çalışır?
Karar ağacı, eğitim verisini kök düğümden (root node) başlayarak yinelemeli biçimde alt kümelere böler. Her bölme adımında algoritma, mevcut veri kümesi için en bilgilendirici özelliği (feature) seçer; bu seçimi belirleyen ölçüt genellikle **Gini safsızlığı** veya **Bilgi Kazanımı**'dır. Gini safsızlığı formülü: `Gini = 1 − Σ(pᵢ)²` — bir düğümdeki pᵢ, i. sınıfa ait örnek oranıdır; değer 0'a yaklaştıkça düğüm daha 'saf' (tek sınıflı) olur. Bilgi kazanımı ise bölme sonrası entropi azalmasını ölçer: `IG = H(ebeveyn) − Ağırlıklı Ortalama H(çocuklar)`. Bu iki ölçütten hangisi kullanılıyorsa, her adımda safsızlığı en çok düşüren özellik seçilir ve ağaç büyütülür. Yaprak düğüme ulaşıldığında o düğümdeki çoğunluk sınıfı (sınıflandırma) veya ortalama değer (regresyon) tahmin olarak döndürülür.
ID3, C4.5 ve CART: Temel Algoritmalar
Karar ağacı ailesinde üç temel algoritma öne çıkar: - **ID3 (1986)**: Ross Quinlan tarafından geliştirilen ilk popüler karar ağacı algoritmasıdır. Sadece kategorik özellikleri destekler ve bilgi kazanımını kullanır. - **C4.5 (1993)**: ID3'ün geliştirilmiş versiyonu; sürekli özellikleri de destekler, 'kazanım oranı' (gain ratio) ile yanlılığı azaltır ve eksik değerleri daha iyi yönetir. - **CART (1984)**: Leo Breiman ve ekibi tarafından geliştirilen Classification and Regression Trees, her düğümde yalnızca ikili bölme (binary split) yaparak hem sınıflandırma hem de regresyon problemlerini çözebilir. Scikit-learn kütüphanesinin varsayılan uygulamasıdır.
Budama (Pruning): Aşırı Öğrenmeyi Engellemek
Kısıtlanmamış bir karar ağacı, eğitim verisindeki her gürültüyü öğrenerek aşırı öğrenmeye (overfitting) uğrar. Budama teknikleri bu sorunu iki yaklaşımla çözer: **Ön Budama (Pre-Pruning)**: Ağacın büyümesi sırasında erken durdurma kriterlerini devreye sokar; maksimum derinlik (`max_depth`), minimum örnek sayısı (`min_samples_split`) ve minimum safsızlık azalması gibi parametrelerle kontrol edilir. **Son Budama (Post-Pruning)**: Tam ağaç büyütüldükten sonra doğrulama kümesi performansını düşürmeyen dallar geri alınır. Scikit-learn'de `cost_complexity_pruning_path` yöntemi ile uygulanır; α (ccp_alpha) parametresi büyüdükçe daha agresif budama yapılır.
Uygulama Alanları
Karar ağaçlarının yorumlanabilir yapısı, özellikle şeffaflık gerektiren alanlarda büyük avantaj sağlar: - **Tıp ve Klinik Karar Destek**: Hastaların semptom ve test sonuçlarına göre hastalık riski sınıflandırılır. - **Kredi Riski Değerlendirmesi**: Bankalar, müşterinin geçmişi ve gelir durumuna göre kredi onayı verir; kurallar düzenleyici kurumlarla paylaşılabilir. - **Sahtekârlık Tespiti**: Anormal işlem örüntüleri kurala dayalı olarak işaretlenir. - **Müşteri Segmentasyonu**: Pazarlama kampanyaları için kullanıcılar demografik ve davranışsal özelliklerine göre gruplandırılır. - **Endüstriyel Arıza Tespiti**: Sensör verisinden makine arızaları, ağaç kurallarıyla erken tahmin edilir.
Ensemble Yöntemlerle İlişkisi
Tek bir karar ağacı yüksek varyanslı (kararsız) bir modeldir; veriye küçük bir değişiklik yapıldığında tamamen farklı bir ağaç oluşabilir. Bu zayıflık, topluluk öğrenmesi (ensemble learning) yöntemlerinin doğmasına yol açmıştır: - **Random Forest**: Farklı veri ve özellik alt kümeleri üzerinde yüzlerce bağımsız ağaç eğitilir; sınıflandırmada çoğunluk oyu, regresyonda ortalama kullanılır. Varyansı büyük ölçüde azaltır. - **Gradient Boosting (XGBoost, LightGBM, CatBoost)**: Ağaçlar sıralı biçimde eğitilir; her yeni ağaç bir öncekinin hatalarını düzeltir. Tablo verisi yarışmalarında en sık kazanan algoritmadır. - **AdaBoost**: Her hatalı sınıflandırılan örneğin ağırlığı artırılarak zayıf öğreniciler birleştirilir.
Avantajlar ve Dezavantajlar
**Avantajlar:** - Görsel ve yorumlanabilir yapı — uzman olmayan paydaşlara kolayca anlatılabilir. - Özellik ölçeklemesi veya normalleştirme gerektirmez. - Hem sayısal hem kategorik verileri işler. - Hızlı eğitim (O(n log n)) ve çok hızlı tahmin (O(ağaç derinliği)). - Veri dağılımı hakkında varsayım gerektirmeyen parametrik olmayan bir yöntemdir. **Dezavantajlar:** - Tek ağaç, eğitim verisini ezberlemeye (overfitting) son derece eğilimlidir. - Yüksek kardinaliteli kategorik özelliklere yanlıdır. - Doğrusal ilişkileri yüzlerce bölme ile taklit eder; SVM veya lojistik regresyon daha verimli olabilir. - Küçük veri değişikliklerine karşı hassastır (yüksek varyans).
Sık Sorulan Sorular
- check_circle Karar ağacı mı, Random Forest mı tercih edilmeli?: Yorumlanabilirlik öncelikliyse tek karar ağacı seçin. Doğruluk ve genelleme önemliyse Random Forest daha güvenlidir.
- check_circle Kaç derinlikte ağaç idealdir?: Genellikle `max_depth=3-10` aralığı çapraz doğrulama (cross-validation) ile optimize edilir.
- check_circle Gini mi, Entropi mi kullanmalıyım?: Pratikte ikisi benzer sonuçlar üretir. Gini biraz daha hızlıdır; fark genellikle ihmal edilebilir düzeydedir.
- check_circle Karar ağacı eksik verileri nasıl yönetir?: CART 'vekil bölme' (surrogate splits) sunar; scikit-learn'de eksik değer işleme doğrudan desteklenmez, ön işleme adımı gerekir.
- check_circle Karar ağacı regresyonda nasıl çalışır?: Yaprak düğümler, o düğüme düşen örneklerin hedef değerlerinin ortalamasını döndürür; bölme kriteri olarak MSE minimizasyonu kullanılır.