Useful shortcuts for vi editor

Saturday 30 April 2011

Karar Ağaçları

Veri madenciliği, eğiticili öğrenme konularının içerisinde, sınıflandırma uygulamalarında kendine yer bulan Karar Ağaçları konusunu açıklamaya çalışacağım. Daha sonra bir örnek üzerinden konuyu pekiştirmeye çalışacağım.

Karar Ağaçları; Karar ağaçları eğiticili öğrenme için çok yaygın bir yöntemdir. 2 temel avantajı vardır; Görsel olarak seçenekleri, sonuçları, olasılıkları ve fırsatları gösterir, ikincisi, karmaşık senaryoya sahip durumları kolay anlaşılır bir şekilde şekillendirir.

Karar ağaçları bulunurken ID3, C4.5 gibi algoritmalardan yararlanılır.

Algoritmanın adımları;
  • T öğrenme kümesini oluştur.
  • T kümesindeki örnekleri en iyi ayıran niteliği belirle. 
  •  Seçilen nitelik ile ağacın bir düğümünü oluştur ve bu düğümden çocuk düğümleri veya ağacın yapraklarını oluştur. Çocuk düğümlere ait alt veri kümesinin örneklerini belirle. 
  • 3. adımda yaratılan her alt veri kümesi için
    • Örneklerin hepsi aynı sınıfa aitse 
    •  Örnekleri bölecek nitelik kalmamışsa 
    • Kalan niteliklerin değerini taşıyan örnek yoksa işlemi sonlandır. Diğer durumda alt veri kümesini ayırmak için 2. adımdan devam et.

Şimdi örneğimize geçebiliriz. Çeşitli kriterlere sahip ailelerinin hafta sonu yaptıkları etkinlikleri karar ağaçları ile sınıflandırmaya çalışacağız.


Tabloda 10 haftalık bir veri setimiz mevcut. Yavaş yavaş karar ağacımızı oluşturalım.
1.adım: Veri setimizin bir öğrenme kümesi olduğunu varsayalım.
2.adım: Veri setindeki en ayırt edici nitelik belirlenir ve ağacın kökü olarak alınır.
ID3, C4.5 gibi algoritmalar en ayırt edici niteliği belirlerken her nitelik için bilgi kazancı (information gain) ölçer. Bu bilgi kazancını ölçerken Entropi kullanılır.
Hafta sonu veri kümesindeki (T kümesi) 10 örnekten 
  • 6 örnek için karar sinema 
  • 2 örnek için karar tenis oynamak 
  • 1 örnek için karar evde kalmak ve 
  • 1 örnek için karar alışverişe gitmek olduğuna göre;
Entropy:
H(T)= - (6/10) log2(6/10) - (2/10) log2(2/10) - (1/10) log2(1/10) - (1/10) log2(1/10)

H(T)= 1,571

X niteliğinin T veri kümesindeki bilgi kazancı:
Gain(T,X)=Entropy(T)-Σ P(x) Entropy(T(x))
x: Values of X, P(x)=|T(x) | / | T |

Gain(T, hava)= ?
Güneşli=3   (1 Sinema, 2 Tenis)
Rüzgârlı=4   (3 Sinema, 1 Alışveriş)
Yağmurlu=3    (2 Sinema, 1 Evde)

Entropy(Tgüneşli)= - (1/3) log2 (1/3) - (2/3) log2 (2/3)=0,918
Entropy(Trüzgârlı)= - (3/4) log2 (3/4) - (1/4) log2 (1/4) =0,811
Entropy(Tyağmurlu)= - (2/3) log2 (2/3) - (1/3) log2 (1/3) =0,918

Gain(T, hava) = Entropy(T)- ((P(güneşli)Entropy(Tgüneşli) + P(rüzgârlı) Entropy(Trüzgârlı)+ 
 P(yağmurlu) Entropy(Tyağmurlu) )
             =1,571- ((3/10)Entropy(Tgüneşli)+(4/10)Entropy(Trüzgârlı)+ (3/10)Entropy(Tyağmurlu))

Gain(T, hava) =0,70

Gain(T, aileli)= ?
Evet=5   (5 Sinema)
Hayır =5    (2 Tenis, 1 Sinema, 1 Alışveriş, 1 Evde kalmış)

Entropy(Tevet)= - (5/5) log2 (5/5)  = 0
Entropy(Thayır)= - (2/5) log2 (2/5) - 3(1/5) log2 (1/5) =1,922

Gain(T, aileli) = Entropy(T)- ((P(evet)Entropy(Tevet) + P(hayır) Entropy(Thayır))
                               =1,571- ((5/10)Entropy(Tevet)+(5/10)Entropy(Thayır))

Gain(T, aileli)=0,61
 


Gain(T, para)= ?
Zengin=7   (3 Sinema, 2 Tenis, 1 Alışveriş, 1 Evde kalmış)
Fakir=3    (3 Sinema)

Entropy(Tzengin)= -(3/7)log2 (3/7) - (2/7) log2 (2/7) – 2(1/7)log2 (1/7)=1,842
Entropy(Tfakir)= -(3/3) log2 (3/3) = 0

Gain(T, para) = Entropy(T)- ((P(zengin)Entropy(Tzengin) + P(fakir) Entropy(Tfakir))
                               =1,571- ((7/10)Entropy(Tzengin)+(3/10)Entropy(Tfakir))
Gain(T, para)=0,2816 


Gain(T, hava) = 0,70,
Gain(T, aileli) = 0,61,
Gain(T, para) = 0,2816 olduğuna göre;
bilgi kazancı en büyük olan hava niteliği kök nitelik olmuştur.

  

3. Adım: Ağacın çocuk düğümü olan A düğümüne ait alt veri kümesi belirlenir.



Hafta sonu veri kümesindeki (TA kümesi) 3 örnekte
  • 1 örnek için karar sinema ve
  • 2 örnek için karar tenis olduğuna göre;
Entropy (Güneşli): 

H(TA)= - (1/3) log2(1/3) - (2/3) log2(2/3)
H(TA)= 0,918



Gain(TA, aileli)= ?

Evet = 1 (1 Sinema)
Hayır  = 2 (2 tenis)

Entropy(Tevet)= - (1/1) log2 (1/1)  = 0
Entropy(Thayır)= - (2/2) log2 (2/2) = 0

Gain(TA, aileli) = Entropy(T)- ((P(evet)Entropy(Tevet) + P(hayır) Entropy(Thayır))
                               =0,918 - ((1/3)Entropy(Tevet)+(2/3)Entropy(Thayır))
 
Gain(TA, aileli) = 0,918


Gain(TA, para)= ?

Zengin = 3 (1 Sinema, 2 Tenis)
Fakir  = 0

Entropy(Tzengin)= - (1/3) log2 (1/3) - (2/3) log2 (2/3) = 0,918

Gain(TA, para) = Entropy(T)- ((P(zengin)Entropy(Tzengin) + P(fakir) Entropy(Tfakir))
                               =0,918 - (3/3)Entropy(Tzengin)

Gain(TA, para) = 0,918 - 0,918 = 0 olduğuna göre;

Bilgi kazancı en büyük olan aile niteliği havanın güneşli (A) olması niteliğinin kök niteliği olmuştur.

Yeni düğüm için en ayırt edici özellik Aileli olarak belirlenmiştir. Bu işlemler her düğüm için aşağıdaki durumlardan biri oluşuncaya kadar devam eder.
  • Örneklerin hepsi aynı sınıfa ait 
  • Örnekleri bölecek özellik kalmamış
  • Kalan özelliklerin değerini taşıyan örnek yok





Hafta sonu veri kümesindeki (TB kümesi) 4 örnekten
  • 3 örnek için karar sinema ve 
  • 1 örnek için karar alışveriş olduğuna göre;
Entropy (Rüzgârlı):

H(TB)= - (3/4) log2(3/4) - (1/4) log2(1/4)
H(TB)= 0,811

Gain(TB, aileli)= ?
Evet = 2 (2 Sinema)
Hayır  = 2 (1 Sinema, 1 Alışveriş)

Entropy(Tevet)= - (2/2) log2 (2/2)  = 0
Entropy(Thayır)= - 2(1/2) log2 (1/2) = 1

Gain(TB, aileli) = Entropy(T)- ((P(evet)Entropy(Tevet) + P(hayır) Entropy(Thayır))
                               =0,811 - ((2/4)Entropy(Tevet)+(2/4)Entropy(Thayır))

Gain(TB, aileli) = 0,811 – 0,5 = 0,311

Gain(TB, para)= ?
Zengin = 3 (2 Sinema, 1 Alışveriş)
Fakir  = 1 (1 Sinema)

Entropy(Tzengin)= - (2/3) log2 (2/3) - (1/3) log2 (1/3) = 0,918
Entropy(Tfakir)= - (1/1) log2 (1/1) = 0

Gain(TB, para) = Entropy(T)- ((P(zengin)Entropy(Tzengin) + P(fakir) Entropy(Tfakir))
                               =0,918 - (3/4)Entropy(Tzengin)
Gain(TB, para) = 0,918 - 0,918(0,75) = 0,2295 olduğuna göre;

Bilgi kazancı en büyük olan aile niteliği havanın rüzgârlı (B) olması niteliğinin kök niteliği olmuştur.




Hafta sonu veri kümesindeki (TC kümesi) 3 örnekten
  • 2 örnek için karar sinema ve 
  • 1 örnek için karar evde kalmak olduğuna göre;
Entropy (Yağmurlu):
H(TC)= - (1/3) log2(1/3) - (2/3) log2(2/3)
H(TC) = 0,918

Gain(TC, aileli)= ?
 Evet = 2 (2 Sinema)
Hayır  = 1 (1 Evde)

Entropy(Tevet)= - (2/2) log2 (2/2)= 0
Entropy(Thayır)= - (1/1) log2 (1/1)  = 0

Gain(TC, aileli) = Entropy(T) - ((P(evet)Entropy(Tevet) + P(hayır) Entropy(Thayır))
                               =0,918 - ((2/3)Entropy(Tevet)+(1/3)Entropy(Thayır))

Gain(TC, aileli) = 0,918


Gain(TC, para)= ?

Zengin = 1 (1 Evde)
Fakir  = 2 (2 Sinema)

Entropy(Tzengin)= - (1/1) log2 (1/1)= 0
Entropy(Tfakir)= - (2/2) log2 (2/2) = 0

Gain(TC, aileli) = Entropy(T)- ((P(zengin)Entropy(Tzengin) + P(fakir) Entropy(Tfakir))
                               =0,918 - ((1/3)Entropy(Tzengin)+(2/3)Entropy(Tfakir))
Gain(TC, para) = 0,918 olduğuna göre;

Bilgi kazancı her iki nitelik içinde aynı olması sebebiyle aile niteliği ve para niteliği havanın yağmurlu (C) olması niteliğine kök niteliği olamamıştır.


Sonuç:

Yapılan işlemler sonucunda karar ağacımız yukarıdaki durumunu almıştır. Yapılan matematik işlemlerin fazla olmasına rağmen bu basit karar ağacını sonucunu bulmaya değer olduğunu düşünüyorum. Karar ağacının görsel açıdan basitliği bu örnekte açıkça belli olmaktadır.

Veri madenciliğinde Karar Ağaçlarını bir örnek ile incelediniz. İyi çalışmalar J

İlham: Sultan Turhan ve Songül Albayrak J