Merhabalar bu yazımda Makine Öğrenme algoritmalarından ağaç yapısı ile çalışan karar mekanizmalı algoritma olan Decision Tree algoritmasını nasıl kullanırız bundan bahsedeceğim.
Decision Tree algoritmasının piyasada bir çok farklı türevleri bulunmakta (ID3,C4.5) vb. Bu türevler amaç olarak aynı işlemi yapmaktalar ancak hesaplama formülleri olarak farklılık gösterirler.
Algoritma Veri yapılarından önemli bir yere sahip ve YZ alanında sık kullanılan ağaç yapısı ile çalışmaktadır.
Decision Tree algoritması çok sınıflı verilerin kullanımında ve sonuç çıkarımlarında kullanılır. Sayısal veya sayısal olmayan değerler üzerinde işlemler yapar.
Mantığına değinecek olursam sınıfların entropi değerlerine göre ağaç üzerinde dizilimi ve daha sonra kontrol edilmek istenen değerin root node’dan verilip dallarda ilerlemesi ile sonuca ulaşılması şekline çalışır. Train veri setimize göre ağacın yapısı değişir ve şekillenir.
Entropi değerimiz 0,1 arası bir değerdir ve aşağıdaki formül ile hesaplanır.
Mesela sınıfta bir nesneden 4 tanesi gerçekleşmiş 2 tanesi gerçekleşmemiş ise entropi değerini;
Entropy = (-4/toplam veri) * log2(4/toplam veri) – (2/toplam veri) * log2(2/toplam veri) şeklinde hesaplarız.
Genel Entropy ise aynı formül ile tek bir sınıfa değil sonuç sınıfına bakılarak hesaplanır.
Ağacın root düğümü nasıl seçilir diye soracak olursanız tüm sınıfların entropi değerleri hesaplanır ve genel entropy’den çıkarılır çıkan entropyler arasında en büyük olan root node kabul edilir ve kendi içerisinde dallanır. Daha sonra dallanan alt nesnelerin entropisi hesaplanır eğer 0’dan farklı bir değer çıkmış ise o daldan yeniden bir alt dal oluşturulmak zorundadır. Tekrar sınıfların entropisi hesaplanarak en büyük olan alt dala eklenir ve işlem böyle devam eder. En alt dallarda işlem ZeroR algoritması gibi en çok olan adedi bulunan değer sonuç kabul edilir.
Bu yazı yorumlara kapalı.