karar

Sınıflandırma – Karar Ağaçları (Decision Trees) – #2

Karar ağaçlarında ana fikir, Veri kümesinin elemanlarının gruplara bölünmesine dayanır. Amaç grubun bütün elemanları aynı sınıf etiketine (label) sahip olana kadar işlemi devam ettirmektir. Veri kümesinden karar ağacı oluşturup belirli durumlarda bunun ne yapacağını belirlemek için kullanılır.

Örneğin ufak bir senaryo ile durumu daha iyi anlamaya çalışalım. İnsanların hangi hava koşullarında dışarı çıktığını hava durumu kümesini kullanarak karar ağacına oturtalım.

 

karar_agaci

Yukarıdaki grafikte Hava root node ve ağaç 3’e parçalanmış durumda.

1- Hava Güneşli ve Nem Normal ise insanlar dışarı çıkıyor.

    Hava Güneşli ve Nem Yüksek ise insanlar dışarı çıkmıyor.

2-Hava Bulutlu ise insanlar dışarı çıkıyor ve başka koşula bakılmıyor.

3-Hava Yağmurlu ve Rüzgar Hafif ise insanlar dışarı çıkıyor.

    Hava Yağmurlu ve Rüzgar Kuvvetli ise insanlar dışarı çıkımıyor.

Karar ağaçlarında amaç, veriyi belirlenmiş bir etikete göre gruplara ayırmaktı. Quinlan’diye bir adam çıkıyor  ve diyorki:

Veri, bir özelliğe göre bölündüğünde elde edilen her bir veri kümesinin belirsizliği minimum ve dolayısıyla bilgi kazancı maksimum ise en iyi seçim yapılmış demektir. Bunun için özellik vektörleri incelenir ve en yüksek bilgi kazancına (Information Gain) sahip özellik, ağaçta dallanma yapmak için tercih edilir. Tabii bunun için birçok kombinasyonun çözülmesi gerekir.

 

Aşağıdaki örneği inceleyerek bilgi kazancı (Information Gain) nasıl hesaplanır inceleyelim.

dt_ornek

Entropy:

İletilen bir mesajın taşıdığı enformasyonun beklenen değeridir.Aşağıdaki formul ile hesaplanır.

PlayGolf
Yes No
9 5

H(PlayGolf)H(5,9)= H (5/14, 9/14) = – (0.36 log2 0.36) – (0.64 log2 0.64)
= 0.94

Şimdi de dataset’ i parçalara ayırıp bunşarında tek tek entropy’ sini bulalım.

                                                                                                                                   PlayGolf
Yes No
Sunny 3 2 5
Outlook Overcast 4 0 4
Rainy 2 3 5
                                                                                                                                          Total:        14

H(T, X) = Σ P(i) H(i)

H(PlayGolf, Outlook) = P(Sunny)*H(3,2) + P(Overcast)*H(4,0) + P(Rainy)*H(2,3)
= (5/14)*0.971 + (4/14)*0.0 + (5/14)*0.971
= 0.693

Kazanç Bulma (Information Gain):

Gain(T, X) = H(T) – H(T, X)

Gain(PlayGolf, Outlook) = H(PlayGolf) – H(PlayGolf, Outlook)
= 0.940 – 0.693 = 0.247

Gain(PlayGolf, Humidity)=0.0152

Gain(PlayGolf, Temp)=0.0129

Gain(PlayGolf, Windy)=0.048

Yukarıdaki sonuçları incelediğimizde outlook en yüksek gain değerine sahip oluyor. Bu durumda kök (root) olarak bu düğümün seçilmesi gerekiyor.Root olarak outlook seçildikten sonra leaf nodeları sırasıyla yerleştirilip diğer child node’ların yerleştirilmesi için yine yukarıda yaptığımız işlemlerin tekrar edilmesi gerekiyor. Sonuç olarak; aşağıdaki karar ağacı tasarlanmış oluyor.

 

0 Paylaşımlar
Karar Ağaçları (Decision Trees)
CSVeri