Friday 15 June 2012

Induksi Decision Tree menggunakan konsep Classification Error


Root Decision Tree Decision Tree adalah salah satu metode klasifikasi yang populer karena mudah diinterprestasikan oleh manusia. 
Decision tree digunakan untuk pengenalan pola dan termasuk dalam pengenalan pola secara statistik.

Sekarang kita coba menyelesaikan Decision Tree dengan Classification Error.


Examples (S), adalah training examples yang ditunjukkan oleh tabel di bawah ini:
Dataset Playing Tennis
Target attribute adalah PlayTennis yang memiliki value yes atau no, selama 14 minggu pada setiap Sabtu pagi. Attribute adalah Outlook, Temperature, Humidity, dan Wind.
Penyelesaian Decision Tree menggunakan konsep Classification Error.
Error (9+,5-)       = 1-max((9/14),(5/14))
                                = 1-(9/14)
                                = 0.3571

Penentuan Root Decision Tree
Value Windy      = (weak, strong)
S weak              = (6+,2-)                               Error (weak) = 1-max((6/8), (2/8)) = 1-(6/8) = 0.25
S strong             = (3+,3-)                               Error (strong) = 1-max((3/6),(3/6)) = 1-(3/6) = 0.5
Gain(S, windy)  = Error(S) – 8/14 Error(weak) – 6/14 Error(strong)
                        = 0. 3571- 8/14 0.25 – 6/14 0.5     = 0.0001

Value Humidity    = (high, normal)
S high                  = (3+,4-)                               Error(high) = 1-max((3/7), (4/7)) = 1-(4/7) = 0.4286
S normal              = (6+,1-)                               Error(normal) = 1-max((6/7), (1/7)) = 1-(6/7)= 0.1429
Gain(S, humidity) = Error(S) – 7/14 Error(high) – 7/14 Error(normal)
                           = 0. 3571- 7/14 0.4286 – 7/14 0.1429 = 0.0713

Value Temperatur = (hot, mid, cool)
S hot                      = (2+,2-)                               Error(hot) = 1-max((2/4),(2/4))  = 0.5
S mid                     = (4+,2-)                               Error(mid) = 1-max((4/6), (2/4))  = 0.3333
S cool                    = (3+,1-)                               Error(cool) = 1-max((3/4), (1/4))  = 0.25
Gain(S, temperatur)= Error(S) – 4/14 Error(hot) – 6/14 Error(mid) – 4/14 Error(cool)
                                = 0. 3571- 4/14 0.5 – 6/14 0.3333 – 4/14 0.25 = 0.0205

Value Outlook= (sunny, overcast, rain)
S sunny               = (2+,3-)                               Error(sunny) = 1-max((2/5),(3/5)) = 0.4
S overcast           = (4+,0-)                               Error(overcast) = 1-max((4/4), (0/4)) = 0
S rain                  = (3+,2-)                               Error(rain) = 1-max((3/5), (2/5))  = 0.4
Gain(S, outlook) = Error(S) – 5/14 Error(sunny) – 4/14 Error(overcast) – 5/14 Error(rain)
                          = 0. 3571- 5/14 0.4 – 4/14 0 – 5/14 0.4 = 0.0715

Dari perhitungan di atas didapat:
Gain (S,windy)            = 0.0001
Gain (S,humidity)         = 0.0713
Gain (S,temperatur)     = 0.0205
Gain (S,outlook)          = 0.0715

Maka attribute Outlook diambil sebagai Root Decision Tree karena menyediakan prediksi terbesar.
Root Decision Tree

Branch node Outlook = Sunny
S sunny                = (2+,3-)               Error(sunny) = 0.4

Value Temperatur= (hot, mid, cool)
S hot                      = (0+,2-)                               Error(hot) = 1-max((0/2), (2/2)) = 0
S mid                     = (1+,1-)                               Error(mid) = 1-max((1/2), (1/2))  = 0.5
S cool                    = (1+,0-)                               Error(cool) = 1-max((1/1), (0/1)) = 0
Gain(Sunny, temperatur)= Error(Sunny) – 2/5 Error(hot) – 2/5 Error(mid) – 1/5 Error(cool)
                                = 0.4 – 2/5 0 – 2/5 0.5 – 1/5 0       = 0.2

Value humidity = (high, normal)
S high                  = (0+,3-)                               Error(high) = 1-max((0/2), (3/3))  = 0
S normal              = (2+,0-)                               Error(normal) = 1-max((2/2), (0/2)) = 0
Gain(Sunny, humidity)= Error(Sunny) – 3/5 Error(high) – 2/5 Error(normal)
                                = 0.4 – 3/5 0 – 2/5 0 = 0.4

Value windy       = (weak, strong)
S weak              = (1+,2-)                               Error(weak) = 1-max((1/3), (2/3))= 0.3333
S strong             = (1+,1-)                               Error(strong) = 1-max((1/2),(1/2))= 0.5
Gain(Sunny, windy)= Error(Sunny) – 3/5 Error(weak) – 2/5 Error(strong)
                                = 0.4 – 3/5 0.3333 – 2/5 0.5 = 0.00002

Dari perhitungan di atas didapat:
Gain(Sunny, temperatur)             = 0.2
Gain(Sunny, humidity)                 = 0.4
Gain(Sunny, windy)                    = 0.00002

Maka Attribut humidity dipilih sebagai Branch node karena menyediakan prediksi terbesar.

Dengan cara yang sama, Anda dapat menemukan Branch node yang lainnya.

Semoga bermanfaat,

Endro A

1 comment:

  1. thank you bro artikelnya sangat membantu, saya ingin bertanya bro, untuk yang data kontinu itu gimana untuk ya bro? makasih

    ReplyDelete