kemudian mengubah model pohon tersebut menjadi aturan (rule). ID3 adalah salah satu
algoritma varian decision tree. ID3 ditemukan oleh J. Ross Quinlan (1986) dan
singkatan dari Iterative Dichotomiser 3.
Decision tree merupakan varian dari inductive learning dan menggunakan struktur
hierarki untuk pembelajaran supervised.
• Pohon dimulai sebagai root node yang merepresentasikan semua data. Pemilihan root
node berdasarkan nilai information gain terbesar.
• Sesudah root node terbentuk, maka dibentuklah branch node dari variable root node
nya. Jika semua variabel berada dalam class yang sama, maka dibuatlah leaf node dari
class tersebut. Jika tidak, information gain akan digunakan lagi untuk memilih atribut
terbaik untuk dijadikan internal node.
• Algoritma ini akan terus menggunakan proses yang sama atau bersifat rekursif dalam
membentuk sebuah Decision Tree. Ketika sebuah atribut telah dipilih menjadi internal
node, maka atribut tersebut tidak diikutkan lagi dalam penghitungan nilai information
gain.
Pada setiap langkah dalam membangun ID3, kita menggunakan information gain untuk
memilih kandidat atribut terbaik. Information gain mengukur kemampuan suatu atribut
untuk memisahkan training data berdasarkan class nya.
Dimana:
• S adalah himpunan data
• C adalah banyaknya partisi S
• pi adalah probabilitas yang di dapat dari Sum(Yes) atau sum(No)
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) = 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) = 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) = 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) = 0.971
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.
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) = 0
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) = 1
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) = 0
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(no) =2/2 = 1) dan tidak ada nilai yes. Dengan demikian wind strong langsung
menjadi leaf node.
Sehingga decision tree yang dihasilkan :