Вы находитесь на странице: 1из 8

Untuk lebih mengerti, langsung saja kita kerjakan data dibawah ini untuk dihitung menggunakan ID3 :

Data diatas memiliki artibut outlook, temp, humidity dan wind dan class nya decision yang bernilai yes dan
no. data tersebut memiliki 14 kasus yang terdiri 9 yes dan 5 no. Pertama kita hitung entropy decision nya.
Entropy(Decision) = – p(No) . log2p(No) – p(Yes) . log2p(Yes)

Entropy(Decision) = – (5/14) . log2(5/14) – (9/14) . log2(9/14)

Entropy(Decision) = 0.940

kemudian kita hitung entropy untuk masing-masing nilai atribut outlook sebagai berikut:

• outlook = sunny
Ada 2 kasus dengan decision = yes dan 3 kasus dengan decision = no saat outlook = sunny, dengan demikian
kita hitung entropy nya.

Entropy(Decision|Outlook=Sunny) = – p(No) . log2p(No) – p(Yes) . log2p(Yes)

Entropy(Decision|Outlook=Sunny) = – (3/5) . log2(3/5) – (2/5) . log2(2/5)

Entropy(Decision|Outlook=Sunny) = 0.971

• outlook = overcast

Ada 4 kasus dengan decision = yes dan 0 kasus dengan decision = no saat outlook = sunny, dengan demikian
kita hitung entropy nya.

Entropy(Decision|Outlook=Overcast) = – p(No) . log2p(No) – p(Yes) . log2p(Yes)

Entropy(Decision|Outlook=Overcast) = – (0) . log2(0) – (4/4) . log2(4/4)

Entropy(Decision|Outlook=Overcast) = 0

• outlook = rain
Ada 3 kasus dengan decision = yes dan 2 kasus dengan decision = no saat outlook = sunny, dengan demikian
kita hitung entropy nya.

Entropy(Decision|Outlook=Rain) = – p(No) . log2p(No) – p(Yes) . log2p(Yes)

Entropy(Decision|Outlook=Rain) = – (2/5) . log2(2/5) – (3/5) . log2(3/5)

Entropy(Decision|Outlook=Rain) = 0.971

Sekarang kita bisa menghitung Information gain nya Decision, Outlook.

Gain(Decision, Outlook) = Entropy(Decision) – ∑ [ p(Decision|Outlook) . Entropy(Decision|Outlook) ]

Gain(Decision, Outlook) = Entropy(Decision) – [ p(Decision|Outlook=Sunny) .


Entropy(Decision|Outlook=Sunny) ] – [ p(Decision|Outlook=Overcast) . Entropy(Decision|Outlook=Overcast)
] – [ p(Decision|Outlook=Rain) . Entropy(Decision|Outlook=Rain) ]

Gain(Decision, Outlook) = 0.94 – [ 5/14 * 0.971 ] – [4/14 * 0 ] – [5/14 * 0.971]

Gain(Decision, Outlook) = 0.247

Dengan metode yang sama, kita hitung information gain untuk atribut lainnya.

•Gain(Decision, Temp) = 0.029

•Gain(Decision, Humidity) = 0.152

•Gain(Decision, Wind) = 0.048

Dengan demikian, kita memilih atribut outlook sebagai root node.


Pada outlook overcast memiliki 7 kasus dan semuanya memiliki nilai yes (Sum(Total) / Sum(yes) = 4/4 = 1)
dan tidak ada nilai no. Dengan demikian outlook overcast langsung menjadi leaf node.

Pada outlook sunny ada 5 kasus dan memiliki nilai 2 yes dan nilai 3 no. Karena itu atribut dengan nilai
information gain terbesar dipilih menjadi internal node. kita mulai dulu dari artibut temp.

• outlook = sunny | temp=hot

Ada 0 kasus dengan decision = yes dan 3 kasus dengan decision = no saat outlook = sunny, dengan demikian
kita hitung entropy nya.

Entropy(Outlook=Sunny | temp=hot) = – p(No) . log2p(No) – p(Yes) . log2p(Yes)

Entropy(Outlook=Sunny | temp=hot) = – (2/2) . log2(2/2) – (0/2) . log2(0/2)

Entropy(Outlook=Sunny | temp=hot) = 0
• outlook = sunny | temp=mild

Ada 1 kasus dengan decision = yes dan 1 kasus dengan decision = no saat outlook = sunny, dengan demikian
kita hitung entropy nya.

Entropy(Outlook=Sunny | temp=mild) = – p(No) . log2p(No) – p(Yes) . log2p(Yes)

Entropy(Outlook=Sunny | temp=mild) = – (1/2) . log2(1/2) – (1/2) . log2(1/2)

Entropy(Outlook=Sunny | temp=mild) = 1

• outlook = sunny | temp=cool

Ada 1 kasus dengan decision = yes dan 0 kasus dengan decision = no saat outlook = sunny, dengan demikian
kita hitung entropy nya.

Entropy(Outlook=Sunny | temp=cool) = – p(No) . log2p(No) – p(Yes) . log2p(Yes)

Entropy(Outlook=Sunny | temp=cool) = – (0/1) . log2(0/1) – (1/1) . log2(1/1)

Entropy(Outlook=Sunny | temp=cool) = 0

Sekarang kita bisa menghitung Information gain nya.

Gain(Outlook = sunny | temp) = Entropy(Decision|outlook=Sunny) – ∑ [ p(Outlook=Sunny | temp) .


Entropy(Outlook=Sunny | temp) ]

Gain(Outlook = sunny | temp) = Entropy(Decision|outlook=Sunny) – [ p(Outlook=Sunny | temp=hot) .


Entropy(Outlook=Sunny | temp=hot) ] – [ p(Outlook=Sunny | temp=mild) . Entropy(Outlook=Sunny |
temp=mild) ]-– [ p(Outlook=Sunny | temp=normal) . Entropy(Outlook=Sunny | temp=normal) ]

Gain(Outlook = sunny | temp) = 0.971 – [2/5 * 0] – [2/5 * 1] – [1/5 * 0]


Gain(Outlook = sunny | temp) = 0.571

Dengan metode yang sama, kita hitung information gain untuk atribut lainnya.

•Gain(Outlook=Sunny | Humidity) = 0.970

•Gain(Outlook=Sunny | Wind) = 0.019

Karena humidity memiliki gain tertinggi maka dipilih menjadi internal node.

Pada humidity high hanya memiliki 3 kasus dan semuanya memiliki nilai no (Sum(Total) / Sum(no) = 3/3 = 1)
dan tidak ada nilai yes. Dengan demikian humidity high langsung menjadi leaf node.

Pada humidity normal hanya memiliki 2 kasus dan semuanya memiliki nilai yes (Sum(Total) / Sum(yes) = 2/2
= 1) dan tidak ada nilai no. Dengan demikian humidity high langsung menjadi leaf node.

Kita lanjut pada outlook rain, ada 5 kasus dan memiliki nilai 3 yes dan nilai 2 no. Karena itu atribut dengan
nilai information gain terbesar dipilih menjadi internal node.
Didapatkan bahwa gain paling tinggi adalah wind. Maka wind dipilih menjadi internal node.

Pada wind strong hanya memiliki 2 kasus dan semuanya memiliki nilai no (Sum(Total) / Sum(n0) =2/2 = 1)
dan tidak ada nilai yes. Dengan demikian wind strong langsung menjadi leaf node.

Sehingga decision tree yang dihasilkan :

Вам также может понравиться