Nano'nun Günlüğü…

Ideallerimi gerceklestirmek icin arastiriyorum, Unutmamak icin yaziyorum!

  • Bulundugunuz Sayfa: 
  • Ana Sayfa
  • C4.5 Algoritmasi

C4.5 Algoritmasi

Gönderim Haziran 5th, 2014

patregID3 algoritmasinin gelistiricisi, ID3 algoritmasi sonucunda siniflandirmalarda bazi eksiklikler ve sorunlar tespit etmistir. Bu sorunlarin giderilmesini C4.5 algoritmasi ile saglamistir. Kokeni tamamen ID3 algoritmasi olan C4.5 algoritmasina gelen ek ozellikler bulunmaktadir.

C4.5 Algoritmasi :

ID3 algoritmasinin gelistiricisi, ID3 algoritmasi sonucunda siniflandirmalarda bazi eksiklikler ve sorunlar tespit etmistir. Bu sorunlarin giderilmesini C4.5 algoritmasi ile saglamistir. Kokeni tamamen ID3 algoritmasi olan C4.5 algoritmasina gelen ek ozellikler; bolunme-dagilma bilgisinin (split-info) edinilmesi, kayip degerleri olan ozelliklerin tespit edilmesi ve sayisal ozellikteki verilerin hesaba direk olarak katilmasi. Adim adim inceleyecek olursak;

1. Split Information – Bolunme dallanma bilgisi : Bir ozniteligin olasiligi ne kadar yuksek olursa bilgi kazancida yuksek olacaktir, bu durum sonucun dogrulunu olumsuz etkileyecektir. Yani, bilgi kazancinin yuksek cikmasinin nedeni ozellik cesitliliginin fazla olmasidir.Bu tarz gereksiz bilgilerin onlenmesi icin bolunme bilgisi kavrami algoritmaya katilmistir. Bu algoritma ile bilgi kazancini azaltarak gereksiz bazi cikarimlar yapilmasi engellenmistir.

2. Ozelliklerin kayip degerlerinin tespit edilmesi : Dataset uzerindeki veriler cesitli sebeplerden dolayi eskik olabilir. ID3 algoritmasi eksik olmayan bir veri kumesini dikkate alir. Eksik olan veriler yuzunden bazi bilgilerin bulunmasinda yanlisliklar cikmaktadir. Bu sebepten, 3 sorunla karsi karsiya kalinmaktadir; bilgi kazanci ve bilgi oranlarinin kayip oldugu veri kumesinin hesabi nasil yapilabilir, karar agaci olusturulurken oznitelik degeri olmayanlar alt dugumlere nasil yayilabilir ve bununla beraberinde test islemleri agacin dallarinda nasil yapilabilir? Tum bunlara cevap bulabilmek icin verilerin oznitelikleri ve bu niteliklere sahip bilgi kazanclari sayesinde cozumlere ulasilabilmektedir.

3. Sayisal Ozellikteki verilerin hesaba direkt katilmasi : Veri kumelerinde iki tip veri kullanilir; Nominal (kategorik) ve sayisal. ID3 algoritmasinda sadece nominal degerler kullanilirken, C4.5 algoritmasinda sayisal verilerede yer verilmistir. Tabi bu kullanimda bir yonteme ihtiyac duyulmustur. Sayisal degerler arasinda uygun bir esik degerinin bulunmasi gerekiyor. Esik degeri bulunduktan sonra ikili bir bolunme ile veri kumeleri dagitilabiliyor. Yani, bu esik degerinden buyuk ve esik degerinden kucuk veriler olmak uzere ikiye ayrim yapiliyor.

Esik degeri belirlenirken, tum sayisal verileri kucukten buyuge bir sekilde siralariz. {x1,x2,x3, … , xm} kumesinde, m tane sayisal veri icerisinden xi ‘.nci veriyi esik degeri olarak seceriz. Bu secimden sonraki siralama artik; {x1,x2,x3, … , xi} ve {xi+1,xi+2,xi+3, … , xm} seklinde iki grup haline donusecektir. Bunun anlami aslinda verilerimiz icerisinden m-1 adet esik degeri secebilecegimizdir. Bu yuzden, olasi butun esik degerlerini (xi + xi+1 / 2) seklinde formulize edebiliriz. Esik degerine e dersek, xi < e sartini saglayan veriler kucuk xi > e sartini saglayan veriler ise buyuk seklinde gruplandirilacaktir.

C4.5 UYGULAMASI

Dataset

No    Job    Age    Married    Decision
1    Doctor    70    Yes    Class1
2    Doctor    90    Yes    Class2
3    Doctor    85    No    Class2
4    Doctor    95    No    Class2
5    Doctor    70    No    Class1
6    Teacher    90    Yes    Class1
7    Teacher    78    No    Class1
8    Teacher    65    Yes    Class1
9    Teacher    75    No    Class1
10    Engineer    80    Yes    Class2
11    Engineer    70    Yes    Class2
12    Engineer    80    No    Class1
13    Engineer    70    No    Class1
14    Engineer    96    No    Class1

Age = {65, 70, 75, 80, 85, 90, 95, 96}
Esik Degeri =>   t = (xi + xi+1)/ 2
t = ( 80 + 85 )/ 2
t = 83
Age <= 83 ve Age > 83

No    Job    Age    Married    Decision
1    Doctor    Age <= 83    Yes    Class1
2    Doctor    Age > 83    Yes    Class2
3    Doctor    Age > 83    No    Class2
4    Doctor    Age > 83    No    Class2
5    Doctor    Age <= 83    No    Class1
6    Teacher    Age > 83    Yes    Class1
7    Teacher    Age <= 83    No    Class1
8    Teacher    Age <= 83    Yes    Class1
9    Teacher    Age <= 83    No    Class1
10    Engineer    Age <= 83    Yes    Class2
11    Engineer    Age <= 83    Yes    Class2
12    Engineer    Age <= 83    No    Class1
13    Engineer    Age <= 83    No    Class1
14    Engineer    Age > 83    No    Class1

[Decision, Class1] = 9 / 14
[Decision, Class2] = 5 / 14
E(Decision) = – ( P (Decision, Class1) log2 P (Decision,Class1) + P (Decision,Class2) log2 P (Decision,Class2) )
E(Decision) = – ( 5/14 log2 5/14 + 9/14 log2 9/14 )
E(Decision) = 0.940

E(Decision) = 0.940
[Age<=83, Class1] = 7
[Age<=83, Class2] = 2
E(Age<=83, Decision) = – (7/9 log2 7/9 + 2/9 log2 2/9 )
E(Age<=83, Decision )= 0.764
[Age>83, Class1] = 2
[Age>83, Class2] = 3
E(Age>83, Decision) = – (2/5 log2 2/5 + 3/5 log2 3/5 )
E(Age>83, Decision) = 0.970
E(Age,Decision) = P(Age<=83,Decision) * E(Age<=83,Decision) + P(Age>83,Decision) * E(Age>83,Decision)
E(Age,Decision) = 9/14 E(Age<=83,Decision) + 5/14 E(Age>83,Decision)
E(Age,Decision) = 9/14 * 0.764 + 5/14 * 0.970
Gain(Age,Decision) = E(Decision) – E(Age,Decision)
Gain(Age,Decision) = 0.940 – 0.837
Gain(Age,Decision) = 0.103

Keyifli Calismalar Dilerim.

Etiketler: , , , ,
Bulundugu Konu Etiketleri Akademik, Matlab, Oruntu Tanima/ Pattern Recognition, Yazilim |

Lutfen Yorumlarinizi Burdan Ulastiriniz!...

You must be Kullanici Adiniz : to post a comment.

Istatistik

  • 1 Uye
  • 334 Yazi
  • 16 Yorum Var