Machine Learning Tahmin Modelleri – Decision Tree (Karar Ağacı)

Herkese merhaba,

Farklı algoritmalar uygulayarak geliştirilen tahmin modellerinin nasıl çalıştığını anlattığım yazı dizisinde sıra karar ağaçlarında (decision tree). Şimdiye kadar çoğunlukla numerik datasetler için geliştirilen tahmin modellerinden bahsettim ancak her zaman verimiz numerik nitelikte olmayabilir. Ordinal veya nominal datalar için tahminlemede karar ağacı gibi algoritma ve modeller geliştirilebilir.

Karar ağaçları genelde if-then-else kurallarıyla ağaç yapısını oluşturur. Karar ağaçlarında kökten yaprağa giden bir dizi kural dizisi tanımlanır. Aşağıda decision ve event node’lardan oluşan basit bir karar ağacı gösterilmektedir.

Karar ağacının öncüsü olan algoritma ID3 (Iterative Dichotomiser 3) algoritmasıdır. ID3, veri kümesi üzerindeki nitelikleri kullanarak en iyi ayrımı yapacak niteliği belirler ve karar ağacına node’lar ekleyerek ağacı oluşturur. Algoritma niteliği seçerken information gain (bilgi kazancı)’e karar verir. Information gain (IG), veri kümesindeki belirsizliği azaltma yeteneğini ölçer. Yani IG ne kadar yüksekse veri kümsesi o kadar iyi bölünebilir ve karar ağacının o kadar üstünde yer alır.

ID3 şöyle çalışır;

  • ilk başta veri setindeki tüm örnekler aynı sınıfta kabul edilir.
  • Verisetindeki her özelliğin IG’si hesaplanır ve yüksek IG’ler etiketlenir.
  • Seçilen bu etiketler için dal oluşturulur ve ağaca node olarak eklenir.

Peki information gain nasıl hesaplanır?

IG hesaplanırken (Claude Shannon) Shannon Entropisi kullanılır. Shannon entropisi, veri setindeki sınıfların dağılımlarıyla olasılık dağılımlarını ( ρ(x)) ilişkilendirir. Mesela veri setindeki sınıfların dağılımı homojense entropi burda düşüktür. Entropi değeri, kümenin numerik değerlerinin büyüklüğüne, farklı eleman sayısına bağlıdır. Entropinin sıfır olduğu veri kümelerine saf küme denir.

Yukarıda Shannon entropisinin ifadesi yer almaktadır. Burda ρ(x) her bir veri kümesinin olasılığını temsil eder. Log2 ise entropinin bit cinsinden ifade edildiğini gösterir.

Decision tree genelde numerik niteliklerde işe yaramaz çünkü niteliklerin arasında sonsuz sayı vardır ve ağaçta sonsuz sayıda dal oluşturulması demektir. Bu gibi numerik niteliklerin karar ağacında kullanılmadan önce ordinal niteliklere dönüştürülmesinde fayda vardır.

Ağaç büyüdükçe veri tekrar tekrar bölündüğü için ağacın gürültüye duyarlı hale gelmesine neden olur. Bu sebeple bu tip ağaçları basit tutmakta fayda vardır.

Leave a comment