TUGAS SISTEM PAKAR
“ALGORITMA ID3”
Disusun Oleh :
Nama : Adityaranda Satriawan
NIM : 0910960001
PROGAM STUDI ILMU KOMPUTER
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS BRAWIJAYA
MALANG
2012
1. Definisi ID3
Iterative Dichotomicer 3 (ID3) adalah algoritma decision tree learning (algoritma
pembelajaran pohon keputusan) yang paling dasar. Algoritma ini melakukan pencarian
secara menyeluruh (greedy) pada semua kemungkinan pohon keputusan. Salah satu
algoritma induksi pohon keputusan yaitu ID3 (Iterative Dichotomiser 3). ID3 dikembangkan
oleh J. Ross Quinlan.
Kareakteristik ID3 dalam membangun pohon keputusan adalah secara top-down dan
divide-and-conquer. Top-down artinya pohon keputusan dibangun dari simpul akar ke daun,
sementara divide-and-conquer artinya training data secara rekursif dipartisi ke dalam
bagian-bagian yang lebih kecil saat pembangunan pohon. Algoritma ID3 dapat
diimplementasikan menggunakan fungsi rekursif. Algoritma ID3 berusaha membangun
decision tree secara top-down, dengan mengevaluasi semua atribut yang ada dengan
menggunakan suatu ukuran statistik (information gain) untuk mengukur efektivitas suatu
atribut dalam mengklasifikasikan kumpulan sampel data.
Decision Tree adalah sebuah struktur pohon, dimana setiap node pohon
merepresentasikan atribut yang telah diuji, setiap cabang merupakan suatu pembagian hasil
uji, dan node daun (leaf) merepresentasikan kelompok kelas tertentu. Level node teratas dari
sebuah Decision Tree adalah node akar (root) yang biasanya berupa atribut yang paling
memiliki pengaruh terbesar pada suatu kelas tertentu. Pada umumnya Decision Tree
melakukan strategi pencarian secara top-down untuk solusinya.
Entropy
Sebuah obyek yang diklasifikasikan dalam pohon harus dites nilai entropinya. Entropy
adalah ukuran dari teori informasi yang dapat mengetahui karakteristik dari impuryt ,dan
homogenity dari kumpulan data. Dari nilai entropy tersebut kemudian dihitung nilai
information gain (IG) dari masing-masing atribut.
Rumus Entropy (S) :
Dimana :
S = Ruang (data) sample yang digunakan untuk training.
P+ = Jumlah yang bersolusi positif (mendukung) pada data sample untuk kriteria tertentu.
P- = Jumlah yang bersolusi negatif (tidak mendukung) pada data sample untuk kriteria
tertentu.
Entropy (S) adalah jumlah bit yang diperkirakan dibutuhkan untuk dapat mengekstrak
suatu kelas (+ atau -) dari sejumlah data acak pada suatu ruang sampel S. Entropy bisa
dikatakan sebagai kebutuhan bit untuk menyatakan suatu kelas. Semakin kecil nilai entropy
maka semakin baik digunakan dalam mengekstraksi suatu kelas. Panjang kode untuk
menyatakan informasi secara optimal adalah –log2p bits untuk pesan yang mempunyai
probabilitas p. Sehingga jumlah bit yang diperkirakan untuk mengekstraksi S ke dalam kelas
adalah
Information Gain
Information Gain merupakan ukuran efektifitas suatu atribut dalam mengklasifikasikan
data. Secara matematis, Information Gain dari suatu atribut A, dituliskan sebagai berikut :
Rumus Information Gain (S,A) :
Dimana :
A = Atribut.
V = Menyatakan suatu nilai yang mungkin untuk atribut A.
Values (A) : Himpunan yang mungkin untk atribut A.
|Sv| = Jumlah sampel untuk nilai V.
|S| = Jumlah seluruh sampel data.
Entropy (Sv) = Entropy untuk sampel-sampel yang memilki nilai V.
Metode
a. Mencari sampel data yang akan digunakan untuk melaksanakan proses transformasi
menjadi pengetahuan.
b. Menghitng nilai entropy dan informatin gain untuk menentukan the best classifier (nilai
terbesar).
c. Melakukan konstruksi pohon keputusan, membentuk simpul yang berisi atribut tersebut.
d. Lakukan operasi conjunction ( ̂ ) pada setiap simpul yang dikunjungi sampai ditemukan
leaf node.
2. Studi Kasus ID3
“Studi kelayakan dalam memilih lapangan sepakbola untuk event piala dunia di
Brazil pada tahun 2014”
Deskripsi masalah
Terdapat 11 lapangan sepak bola yang akan digunakan sebagai lapanagan untuk
pertandingan Piala Dunia 2014. Dalam hal ini, 11 lapangan tersebut akan diseleksi
kelayakannya dengan memperhatikan tiga parameter / atribut penilaian. Tiga parameter /
atribut tersebut adalah :
1. Ukuran Tribun dikelompokan dalam tiga kategori (besar, sedang, kecil)
2. Pencahayaan dikelompokan dalam tiga kategori (bagus, cukup, kurang)
3. Kondisi Rumput dikelompokan dalam 2 kaetgori (bagus dan jelek)
Tabel Informasi
Lapangan Ukuran Tribun Pencahayaan Kondisi Rumput Memenuhi
Lap1 Besar Bagus Baik Iya
Lap 2 Besar Kurang Buruk Tidak
Lap 3 Besar Cukup Buruk Iya
Lap 4 Besar Cukup Baik Iya
Lap 5 Sedang Kurang Buruk Tidak
Lap 6 Sedang Cukup Baik Iya
Lap 7 Sedang Cukup Buruk Iya
Lap 8 Sedang Bagus Baik Iya
Lap 9 Kecil Cukup Buruk Tidak
Pada data kelayakan lapangan, jumlah kelas adalah 2, yaitu IYA dan TIDAK, maka dapat
dilihat bahwa nilai c = 2. Jumlah sampel kelas 1 (IYA) adalah 8 dan jumlah sampel untuk
kelas 2 (TIDAK) adalah 3. p1 = 8 dan p2= 3. Dengan demikian Entropy untuk kumpulan
sampel data S adalah :
Entropy (S) = - ( 8/11) log2 ( 8/11) – (3/11) log2 (3/11)
= 0,8454
Dari tabel diatas, kita misalkan atribut Memenuhi bernilai IYA merupakan sampel (+),
dan atribut Memenuhi bernilai TIDAK merupakan sampel (-), maka akan didiapat :
- Nilai (Ukuran Tribun) = Besar, Sedang, Kecil.
S = [ 8+ , 3- ] , | S | = 11 SBesar = [ 3+ , 1- ] , | S | = 4
SSedang = [ 3+ , 1- ] , | S | = 4
SKecil = [ 2+ , 1- ] , | S | = 3
Hitung masing – masing nilai Entropy SBesar , SSedang , SKecil dan Information Gain
untuk nilai Ukuran Tribun adalah :
Lap 10 Kecil Bagus Baik Iya
Lap 11 Kecil Kurang Baik Iya
Entropy (S) = 0,8454
Entrophy (SBesar) = (-3/4) log2 (3/4) – (1/4) log2 (1/4) = 0,8113
Entrophy (SSedang) = (-3/4) log2 (3/4) – (1/4) log2 (1/4) = 0,8113
Entrophy (SKecil) = (-2/4) log2 (2/3) – (1/3) log2 (1/3) = 0,9183
Information Gain (S, Ukuran Tribun = E
= 0,8454 – (4/11) 0,8113 – (3/11) 0,9183
= 0,8454 – 0,2950 – 0,2950 – 0,25044
= 0,0049
- Nilai (Pencahayaan) = Bagus, Cukup, Kurang.
S = [ 8+ , 3- ] , | S | = 11 SBagus = [ 3+ , 0- ] , | S | = 3 SCukup = [ 4+ , 1- ] , | S | = 5
SKurang = [ 1+ , 2- ] , | S | = 3
Entropy (S) = 0,8454
Entrophy (SBagus) = (-3/3) log2 (3/3) – (0/3) log2 (0/3) = 0
Entrophy (SCukup) = (-4/5) log2 (4/5) – (1/5) log2 (1/5) = 0,7219
Entrophy (SKurang) = (-1/3) log2 (1/3) – (2/3) log2 (2/3) = 0,9183
Entrophy (SBagus) menunjukan entropy minimum karena jumlah sampel pada salah satu
kelas adalah = 0, memiliki keberagaman data minimum.
Information Gain (S, Pencahayaan) =
= 0,8454 – 0 – (5/11) 0,7219 - (3/11) 0,9183
= 0,8454 – 0,32814 – 0,25044
= 0,26682
- Nilai (Kondisi Rumput) = Baik, Buruk
S = [ 8+ , 3- ] , | S | = 11 SBaik = [ 6+ , 0- ] , | S | = 6 SBuruk = [ 2+ , 3- ] , | S | = 5
Entropy (S) = 0,8454
Entrophy (SBaik) = (-6/6) log2 (6/6) – (0/6) log2 (0/6) = 0 (Keberagaman data minimum)
Entrophy (SBuruk) = (-2/5) log2 (2/5) – (3/5) log2 (3/5) = 0,9709
Information Gain (S, Kondisi Rumput) =
= 0,8454 – 0 – (5/11) 0,9709
= 0,8454 – 0,44134
= 0,40406
Dari semua perhitungan diatas, maka didapatkan nilai Information Gain dari ketiga atribut
(Ukuran Tribun, Pencahayaan, Kondisi Rumput) sebagi berikut :
IG (S,Ukuran Tribun) = 0,0049
IG (S,Pencahayaan = 0,26682
IG (S,Kondisi Rumput) = 0,40406
Dari ketiga nilai Information Gain di atas, IG(S, Kondisi Rumput) adalaha nilai Gain yang
terbesar sehingga atribut Kondisi Rumput merupakan the best classifier yang akan
menjadi root nantinya.
Setelah kita dapatkan node root, selanjutnya kita akan menyusun pohon keptusan
berdasrkan nilai yang telah kita cari diatas.
Iterasi 1 level 0
Setelah kita dapatkan the best classifier, langkah selanjutnya kita akan mengecek
apakah perlu subtree dilevel berikutnya atau tidak. Atribut Kondisi Rumput memiliki 2
sampel (Baik dan Buruk). Untuk nilai baik terdapat 6 sampel. Sehingga perlu
memanggil fungsi ID3 dengan kumpulan sampel berupa sampel baik = [6+,0-], atribut
target = “Iya” dan kumpulan atribut = {Ukuran Tribun, Pencahayaan}. Dalam hal ini,
semua sampel “baik” termasuk dalam kelas “Iya”. Maka node in akan berhenti dan
mengembalikan satu simpul tunggal ke root dengan nilai “Iya”.
Baik
Iya
Iterasi 1 level 1
Kondisi Rumput
Pada iterasi ini, akan dievaluasi untuk atibut Kondisi Rumput dengan nilai “Buruk”.
Nilai “Buruk” terdapat 5 sampel. Sehingga perlu memanggil fungsi ID3 dengan
kumpulan SampelBuruk = [2+, 3-] dimana atribut target = “Iya” dan kumpulan atribut =
{Ukuran Tribun, Pencahayaan}.
Pada tahap ini akan dilakukan perhitungan IG untuk atribut Ukuran Tribun dan
Pencahayaan, dengan ukuran sampel yang digunakan adalah SampelBuruk.
Maka, S = SampelBuruk = [2+, 3-], S = |5|
- Nilai (Ukuran Tribun) = Besar, Sedang, Kecil.
SBesar = [ 1+ , 1- ] , | S | = 2
SSedang = [ 1+ , 1- ] , | S | = 2
SKecil = [ 0+ , 1- ] , | S | = 1
Entropy (S) = (-2/5) log2 (2/5) – (3/5) log2 (3/5) = 0,9710
Entrophy (SBesar) = (-1/2) log2 (1/2) – (1/2) log2 (1/2) = 1
Entrophy (SSedang) = (-1/2) log2 (1/2) – (1/2) log2 (1/2) = 1
Entrophy (SKecil) = (-0/1) log2 (0/1) – (1/1) log2 (1/1) = 0
Information Gain (S, Ukuran Tribun = E
= 0,9710 – (2/5) 1 – (2/5) 1 – (1/5) 0
= 0,1710
- Nilai (Pencahayaan) = Bagus, Cukup, Kurang.
SBagus = [ 0+ , 0- ] , | S | = 0
SCukup = [ 2+ , 1- ] , | S | = 3
SKurang = [ 0+ , 2- ] , | S | = 2
Entropy (S) = (-2/5) log2 (2/5) – (3/5) log2 (3/5) = 0,9710
Entrophy (SBagus) = 0
Entrophy (SCukup) = (-2/3) log2 (2/3) – (1/3) log2 (1/3) = 0,9183
Entrophy (SKurang) = (-0/2) log2 (0/2) – (2/2) log2 (2/2) = 0
Information Gain (S, Ukuran Tribun = E
= 0,9710 – 0 – (3/5) 0,9183 – 0
= 0,4200
Dari perhitungan diatas, maka didapatkan nilai IG yang terbesar adalah IG
(S,Pencahayaan). Sehingga Pencahayaan menjadi the best classifier yang diletakan
pada node dibawah node Kondisi Rumput pada cabang nilai “buruk”.
Baik Buruk
Iya
Iterasi 2 level 0
Selanjutnya, setiap nilai pada atribut Pencahayaan akan dicek apakah perlu dibuat
subtree dilevel berikutnya atau tidak. Untuk nilai “Bagus ( pada kumpulan sample
berupa SampleBuruk= [2+, 3-] ) terdapat 0 sample berarti Sample kosong. Sehingga,
perlu dibuat satu simpul daun yang tidak punya anak dibawahnya. Tidak perlu
memanggil fungsi ID3.
Baik Buruk
Iya
Bagus
Tidak
Iterasi 2 level 1
Nilai yang paling sering muncul pada SampelBuruk yaitu “Tidak”. Kemudian dilakukan
pengecekan untuk atribut “Pencahayaan bernilai “Cukup . Untuk nilai “Cukup
( pada kumpulan sample berupa SampleBuruk = [2+, 3-] ) terdapat 3 sample, berarti
sample “Cukup tidak kosong. Sehingga perlu memanggil fungsi ID3 dengan
kumpulan Sample berupa SampleCukup = [2+, 1-] , AtributTarget = “Iya . Dan
kumpulan atribut = {Ukuran Tribun}. Karena kumpulan atribut hanya terdapat 1, maka
Kondisi Rumput
Pencahayaan
Pencahayaan
Kondisi Rumput
akan langsung menjadi the best classifier dan diletakan dibawah node Pencahayaan
pada cabang nilai “Cukup”.
Baik Buruk
Iya
Bagus Cukup
Tidak
Iterasi 3 level 0
Selanjutnya masing – masing nilai pada Ukuran Tribun akan dilakukan pengecekan.
Untuk nilai “Besar” ( pada kumpulan berupa Sample = [2+, 1-] ), terdapat 1 sampel ,
berarti SampleCukup tidak kosong. Sehingga, perlu memanggil fungsi ID3 dengan
kumpulan sample berupa SampleBesar = [ 1+, 0-] , Atribut Target = “Iya dan
kumpulan atribut = {}. Karena semua sampel pada SampelBesar termasuk dalam kelas
“Iya”, maka fungsi akan berhenti dan akan memberikan nilai balik dengan label “Iya”.
Baik Buruk
Iya
Bagus Cukup
Tidak
Besar
Iya
Iterasi 3 level 1
Pencahayaan
Kondisi Rumput
Ukuran Tribun
Pencahayaan
Ukuran Tribun
Kondisi Rumput
Selanjutnya dilakukan pengecekan untuk nilai “Sedang” pada atribut Ukuran Tribun.
Ternyata terdapat 1 sampel pada kumpulan sampel dimana Kondisi Rumput bernilai
“Buruk dan Pencahayaan bernilai ”Cukup , karena SampleSedang tidak kosong maka
perlu memanggil fungsi ID3 dengan Kumpulan Sampel berupa SampleSedang = [1+, 0- ],
AtributTarget = “Iya , dan KumpulanAtribut = {}. Karena semua sampel pada
SampelSedang termasuk dalam kelas “Iya”, maka fungsi akan berhenti dan akan
memberikan nilai balik dengan label “Iya”.
Baik Buruk
Iya
Bagus Cukup
Tidak
Besar Sedang
Iya Iya
Iterasi 3 level 2
Selanjutnya pengecekan dilakukan untuk nilai “Kecil” pada atribut Ukuran Tribun.
Ternyata terdapat 1 sampel pada kumpulan sampel dimana Kondisi Rumput bernilai
“Buruk dan Pencahayaan bernilai ”Cukup , karena SampleKecil tidak kosong maka
perlu memanggil fungsi ID3 dengan Kumpulan Sampel berupa SampleKecil = [0+, 1- ],
AtributTarget = “Iya , dan KumpulanAtribut = {}. Karena semua sampel pada
SampelKecil termasuk dalam kelas “Tidak”, maka fungsi akan berhenti dan akan
memberikan nilai balik dengan label “Tidak”.
Baik Buruk
Pencahayaan
Ukuran Tribun
Kondisi Rumput
Kondisi Rumput
Iya
Bagus Cukup
Tidak
Besar Sedang Kecil
Iya Iya Tidak
Iterasi 2 level 1
Setelah semua nilai pada atribut Ukuran Tribun di evaluasi, makan iterasi akan kembali
ke iterasi 2 untuk mengevaluasi nilai ”Kurang” pada atibut Pencahayaan. Didapatkan 2
sampel pada kumpula sampel dimana nilai Kondisi Rumput = “Buruk”, Pencahayaan =
“Cukup”. Karena SampelKurang tidak kosong, maka perlu memanggil fungsi ID3 dengan
kumpulan sampel berupa SampelKurang = [0+, 2-], AtributTarget = “Iya , dan
KumpulanAtribut = {}. Karena semua sampel pada SampelKurang termasuk dalam kelas
“Tidak”, maka fungsi akan berhenti dan akan memberikan nilai balik ke root dengan
label “Tidak”.
Baik Buruk
Iya
Bagus Cukup Kurang
Tidak Tidak
Besar Sedang Kecil
Iya Iya Tidak
Pencahayaan
Ukuran Tribun
Pencahayaan
Ukuran Tribun
Kondisi Rumput
Maka akan didapatkan pohon keputusan final seperti gambar di atas. Dari pohon
keputusan diatas akan dapat digunakan untuk melakukan penelusuran terhadap sampel
data Lapangan lain yang mungkin dari kombinasi yang ada dengan cara penelusuran
dimulai dari Root menuju ketiga leaf node tersebut.
Contoh :
- Kondisi Rumput = Buruk , Pencahayaan = Bagus, Ukuran Tribun = Besar, maka
Memenuhi = Tidak.
- Kondisi Rumput = Buruk , Pencahayaan = Bagus, Ukuran Tribun = Kecil, maka
Memenuhi = Tidak.
- Kondisi Rumput = Baik , Pencahayaan = Cukup, Ukuran Tribun = Kecil, maka
Memenuhi = Iya.