Algoritma ID3
ID3 (Iterative Dichotomiser Three) atau yang disebut juga dengan Induction of Decision Tree adalah suatu
algoritma matematika yang digunakan untuk menghasilkan suatu pohon keputusan yang mampu
mengklasifikasi suatu obyek. Pengertian laindari ID3 yaitu ID3 merupakan sebuah metode yang
digunakan untuk membangkitkan pohon keputusan.
ID3 diperkenalkan pertama kali oleh Ross Quinlan (1979). ID3 merepresentasi konsep-konsep dalam
bentuk pohon keputusan. Aturan-aturan yang dihasilkan oleh ID3 mempunyai relasi yang hirarkis seperti
suatu pohon (mempunyai akar, titik, cabang, dan daun). Beberapa peneliti menyebut struktur model yang
dihasilkan ID3 sebagai pohon keputusan (decision tree) sementara peneliti yang lain menyebutnya pohon
aturan (rule tree).
Algoritma pada ID3 berbasis pada Occam’s razor: lebih memilih pohon keputusan yang lebih kecil (teori
sederhana) dibanding yang lebih besar. Tetapi tidak dapat selalu menghasilkan pohon keputusan yang
paling kecil dan karena itu occam’s razor bersifat heuristik. Occam’s razor diformalisasi menggunakan
konsep dari entropi informasi.
Adapun langkah-langkah algoritma ID3 adalah:
• Dimulai dari node akar.
• Hitung frekuensi kemunculan masing-masing nilai atribut pada data survey.
• Hitung nilai Entropy dari masing-masing nilai atribut.
𝑚
Keterangan:
𝑝(𝜔𝑖 |𝑠) = proporsi kelas ke-i dalam semua data latih yang di proses di node s
• Hitung nilai Information Gain dengan menggunakan nilai Entropy yang telah dihitung sebelumnya.
𝑛
Keterangan:
𝑝(𝑣𝑖 |𝑠) = proposisi nilai v muncul pada kelas dalam node.
𝐸(𝑠𝑖 ) = entropy komposisi v dari kelas ke-jdalam data ke i node tersebut
𝐸(𝑠) = entropy semua data
• Ambil nilai Information Gain terbesar dan jadikan simpul akar.
• Hilangkan atribut yang dipilih sebelumnya dan ulangi perhitungan nilai Entropy dan Information
Gain dengan memilih Information Gain terbesar dan dijadikan simpul internal pohon.
• Ulangi perhitungan tersebut hingga semua atribut pohon memiliki kelas.
• Jika semua pohon sudah memilik kelas, maka tampilkan pohon keputusan dan generate aturan
keputusan.
Contoh:
Induksi decision tree dengan ID3:Data ini akan digunakan untuk memprediksi “apakah harus bermain
baseball dengan menjawab ya atau tidak” . Fitur yang digunakan ada 4, yaitu Cuaca, Suhu, Kelembaban,
Angin. Nilai fitur menggunakan tipe kategorikal, rinciannya sebagai berikut:
Cuaca = {cerah, mendung, hujan}
Suhu = {panas, lembut, dingin}
Kelembaban = {tinggi, normal}
Angin = {pelan, kencang}
Contoh:
Tabel 2. Data Klasifikasi Bermain Baseball
No Cuaca Suhu Kelembaban Angin Bermain
Dimulai dari node akar , harus dihitung dahulu entropy untuk node akar terhadap komposisi kelas:
𝐸(𝑠𝑒𝑚𝑢𝑎) = −(𝑝(𝑦𝑎|𝑠𝑒𝑚𝑢𝑎) × log 2 𝑝(𝑦𝑎|𝑠𝑒𝑚𝑢𝑎) +
𝑝(𝑡𝑖𝑑𝑎𝑘|𝑠𝑒𝑚𝑢𝑎) × log 2 𝑝(𝑡𝑖𝑑𝑎𝑘|𝑠𝑒𝑚𝑢𝑎))
9 9 5 5
= − (((14) × 𝑙𝑜𝑔2 (14)) + ((14) × 𝑙𝑜𝑔2 (14)))
= 0,9403
Selanjutnya dihitung entropy untuk setiap fitur terhadap kelas. Untuk entropy nilai dalam ‘cuaca’
diperoleh:
𝐸(𝑠𝑒𝑚𝑢𝑎𝑐𝑒𝑟𝑎ℎ ) = −(𝑝(𝑦𝑎|𝑐𝑒𝑟𝑎ℎ) × log 2 𝑝(𝑦𝑎|𝑐𝑒𝑟𝑎ℎ) +
𝑝(𝑡𝑖𝑑𝑎𝑘|𝑐𝑒𝑟𝑎ℎ) × log 2 𝑝(𝑡𝑖𝑑𝑎𝑘|𝑐𝑒𝑟𝑎ℎ))
2 2 3 3
= − (((5) × 𝑙𝑜𝑔2 (5)) + ((5) × 𝑙𝑜𝑔2 (5)))
= 0,9710
𝐸(𝑠𝑒𝑚𝑢𝑎𝑚𝑒𝑛𝑑𝑢𝑛𝑔 ) = −(𝑝(𝑦𝑎|𝑚𝑒𝑛𝑑𝑢𝑛𝑔) × log 2 𝑝(𝑦𝑎|𝑚𝑒𝑛𝑑𝑢𝑛𝑔) +
𝑝(𝑡𝑖𝑑𝑎𝑘|𝑚𝑒𝑛𝑑𝑢𝑛𝑔) × log 2 𝑝(𝑡𝑖𝑑𝑎𝑘|𝑚𝑒𝑛𝑑𝑢𝑛𝑔))
4 4 0 0
= − (((4) × 𝑙𝑜𝑔2 (4)) + ((4) × 𝑙𝑜𝑔2 (4)))
=0
𝐸(𝑠𝑒𝑚𝑢𝑎ℎ𝑢𝑗𝑎𝑛 ) = −(𝑝(𝑦𝑎|ℎ𝑢𝑗𝑎𝑛) × log 2 𝑝(𝑦𝑎|ℎ𝑢𝑗𝑎𝑛) +
𝑝(𝑡𝑖𝑑𝑎𝑘|ℎ𝑢𝑗𝑎𝑛) × log 2 𝑝(𝑡𝑖𝑑𝑎𝑘|ℎ𝑢𝑗𝑎𝑛))
3 3 2 2
= − (((5) × 𝑙𝑜𝑔2 (5)) + ((5) × 𝑙𝑜𝑔2 (5)))
= 0,9710
Entropy tersebut dihitung pada setiap fitur. Selanjutnya dihitung gain untuk setiap fitur. Dari
perhitungan didapat gain:
𝐺(𝑠𝑒𝑚𝑢𝑎, 𝑐𝑢𝑎𝑐𝑎) = 𝐸(𝑠𝑒𝑚𝑢𝑎) − ∑𝑛𝑖=1 𝑝(𝑣𝑖 |𝑠𝑒𝑚𝑢𝑎) × 𝐸(𝑠𝑒𝑚𝑢𝑎𝑐𝑢𝑎𝑐𝑎 )
(𝑝(𝑐𝑒𝑟𝑎ℎ|𝑠𝑒𝑚𝑢𝑎) × 𝐸(𝑠𝑒𝑚𝑢𝑎𝑐𝑒𝑟𝑎ℎ )) +
= 𝐸(𝑠𝑒𝑚𝑢𝑎) − (𝑝(𝑚𝑒𝑛𝑑𝑢𝑛𝑔|𝑠𝑒𝑚𝑢𝑎) × 𝐸(𝑠𝑒𝑚𝑢𝑎𝑚𝑒𝑛𝑑𝑢𝑛𝑔 )) +
(𝑝(ℎ𝑢𝑗𝑎𝑛|𝑠𝑒𝑚𝑢𝑎) × 𝐸(𝑠𝑒𝑚𝑢𝑎ℎ𝑢𝑗𝑎𝑛 ))
( )
5 4 5
=0,9403 − (((14) × 0,9710) + ((14) × 0) + ((14) × 0,9710))
= 0,2467
𝐺(𝑠𝑒𝑚𝑢𝑎, 𝑠𝑢ℎ𝑢) = 0,0292
𝐺(𝑠𝑒𝑚𝑢𝑎, 𝑘𝑒𝑙𝑒𝑚𝑏𝑎𝑏𝑎𝑛) = 0,1518
𝐺(𝑠𝑒𝑚𝑢𝑎, 𝑎𝑛𝑔𝑖𝑛) = 0,048
1 Total 14 9 5 0,9430
Cuaca 0,2467
Cerah 5 2 3 0,9710
Mendung 4 4 0 0
Hujan 5 3 2 0,9710
Suhu .......
Panas 4 2 2 1
Lembut 6 4 2 0,9183
Dingin 4 3 1 0,8113
Kelembaban ........
Tinggi 7 3 4 0,9852
Normal 7 6 1 0,5917
Angin ........
Pelan 8 6 2 0,8113
Kencang 6 3 3 1
Dari tabel 3 menunjukkan bahwa gain tertinggi ada di fitur “cuaca” sehingga “cuaca” dijadikan
sebagai node akar. Untuk cabangnya digunakan 3 nilai dalam node akar. Sedangkan data akan terpecah
menjadi 3 kelompok “mendung”, “cerah” dan “hujan”.
Tabel 4. Hasil pemisahan data oleh fitur cuaca
Cuaca Suhu Kelembaban Angin Bermain
Pada perhitungan selanjutnya, fitur ‘cuaca’ tidak dilibatkan. Untuk node internal di cabang ‘cerah’
didapat hasil:
1
Cuaca
Cerah hujan
mendung
2 4
ya
1 Total 5 2 3 0,9710
Suhu
Panas
Lembut
Dingin
Kelembaban
Tinggi
Normal
Angin
Pelan
Kencang
1 Total
Suhu
Panas
Lembut
Dingin
Kelembaban
Tinggi
Normal
Angin
Pelan
Kencang
Hasil yang didapat di Tabel 4 menunjukkan bahwa gain tertinggi ada fitur ‘kelembaban’ sehingga
‘kelembaban’ dijadikan sebagai node internal(node 2). Untuk cabangnya, digunakan digunakn 2 nilai
pada node ‘kelembaban’. Selanjutnya data di dalamnya akan terpecah lagi menjadi 2 kelompok, yaitu
‘tinggi’ dan ‘normal’. Dua cabang yang didapat untuk kelembaban ‘tinggi ‘ dan ‘normal’ mempunyai
entropy nol. Berarti dua node tersebut menjadi daun.
Hasil pada tabel 5 menunjukkan bahwa gain tertinggi adalah fitur ‘angin’, maka angin dijadikan node
internal(node 4). Untuk cabangnya digunakan dua nilai di dalam node ‘angin’. Selanjutnya, data di
dalamnya akan dipecah menjadi 2 kelompok, ‘kencang dan ‘pelan’’. Dua cabang yang didapat untuk
angin ‘kencang’ dan ‘pelan’ mempunyai entropy 0, berarti dua node tersebut menjdi daun. Pemisahan
data yang didapatkan dari fitur ‘kelembaban’ dan ‘angin’ disajikan sbb:
Tabel 6. Hasil Pemisahan data oleh fitur ‘kelembaban’ dan angin
Cuaca Suhu Kelembaban Angin Bermain
Ket:
1
= Node
Cuaca
Cerah hujan
mendung
Kelembaban = leaf/daun
angi
ya n
normal tinggi kencang
pelan
ya tidak ya tidak