Assalamualaikum Warahmatullahi Wabarokatuh.
Halo teman-teman, kali ini kita akan mengulas sedikit tentang salah satu metode sistem cerdas yaitu algoritma ID3. Ketika teman-teman membaca, mungkin sekilas terlihat rumit, namun percayalah bahwa semua terasa gampang ketika sudah dipahami.
Yuk mulai belajar!
Oh iya, jangan lupa untuk berdo'a terlebih dahulu ya.
1. Pengertian ID3
Algoritma ID3 merupakan algoritma yang dipergunakan untuk membangun
sebuah decision tree atau pohon keputusan. Algoritma ini ditemukan oleh J.
Ross Quinlan (1979), dengan memanfaatkan Teori Informasi atau Information
Theory milik Shanon. ID3 sendiri merupakan singkatan dari Iterative
Dichotomiser 3.
2. Langkah-langkah konstruksi pohon keputusan dengan algoritma ID3
Adapun langkah-langkah dalam konstruksi pohon keputusan adalah sebagai
berikut :
- Pohon dimulai dengan sebuah simpul yang
mereperesentasikan sampel data pelatihan yaitu dengan membuat simpul
akar.
- Jika semua sampel berada dalam kelas yang sama, maka
simpul ini menjadi daun dan dilabeli menjadi kelas. Jika tidak, information
gain akan digunakan untuk memilih atribut terbaik dalam memisahkan
data sampel menjadi kelas-kelas individu.
- Cabang akan dibuat untuk setiap nilai pada atribut dan data
sampel akan dipartisi lagi.
- Algoritma ini menggunakan proses rekursif untuk membentuk
pohon keputusan pada setiap data partisi. Jika sebuah atribut sduah
digunakan disebuah simpul, maka atribut ini tidak akan digunakan lagi di
simpul anak-anaknya.
- Proses ini berhenti jika dicapai kondisi seperti berikut : a) Semua sampel pada simpul berada di dalam satu kelas. b) Tidak ada atribut lainnya yang dapat digunakan untuk mempartisi
sampel lebih lanjut. Dalam hal ini akan diterapkan suara terbanyak.
Ini berarti mengubah sebuah simpul menjadi daun dan melabelinya
dengan kelas pada suara terbanyak.
3. Entropy dan Gain
Algoritma pada metode ini menggunakan konsep dari entropi. Konsep Entropi
yang digunakan untuk mengukur “seberapa informatifnya” sebuah node (yang
biasanya disebut seberapa baiknya).
Catatan:
- Entropi(S) = 0, jika semua contoh pada S berada dalam kelas yang sama.
- Entroiy(S) = 1, jika jumlah contoh positif dan jumlah contoh negatif dalam
S adalah sama.
- 0 < Entropi(S) < 1, jika jumlah contoh positif dan negatif dalam S tidak
sama.
a. Rumus Entropy
Dimana:
S adalah himpunan (dataset) kasus
n adalah banyaknya partisi S
pi adalah probabilitas yang di dapat dari Jumlah(Ya) dibagi Total Kasus.
Setelah mendapat nilai entropi, pemilihan atribut dilakukan dengan nilai
information gain terbesar.
b. Rumus Gain
Dimana:
S = ruang (data) sample yang digunakan untuk training.
A = atribut.
|Si| = jumlah sample untuk nilai V.
|S| = jumlah seluruh sample data.
Entropi(Si) = entropy untuk sample-sample yang memiliki nilai i
Nah bagaimana teman-teman? Teori diatas tentunya akan susah dipahami jika kita belum mencobanya. Berikut ini adalah contoh studi kasus dan perhitungan menggunakan ID3.
4. Studi Kasus
Data yang telah ada pada Tabel dibawah akan digunakan untuk membentuk
pohon keputusan dimana memiliki atribut-atribut seperti Cuaca, Suhu,
Kelembaban, dan Berangin. Setiap atribut memiliki nilai. Sedangkan kelasnya
ada pada kolom Main yaitu kelas “Tidak” dan kelas “Ya”. Kemudian data
tersebut dianalisis; dataset tersebut memiliki 14 kasus yang terdiri 10 “Ya”
dan 4 “Tidak” pada kolom Main.
Penyelesaian:
a. Menghitung Entropy(S) dan Gain Seluruh Atribut
Hitunglah entropi dengan rumus seperti diatas. Jika rumus diatas terkesan rumit, mari kita sederhanakan cara membacanya menjadi seperti ini,
Entropy(S) = (-(Instance Positif/Jumlah Seluruh Instance) x log2(Instance Positif/Jumlah Seluruh Instance) + -(Instance Negatif/Jumlah Seluruh Instance) x log2(Instance Negatif/Jumlah Seluruh Instance))
- Intance Positif adalah jumlah data "Ya" pada tabel data training yang sedang dihitung, yaitu 10
- Intance Negatif adalah jumlah data "Tidak" pada tabel data training yang sedang dihitung, yaitu 4
- Jumlah Instance adalah jumlah seluruh data pada tabel data training yang sedang dihitung, yaitu 14
Kenapa saya tuliskan pada tabel data training yang sedang dihitung? Karena setelah kita menemukan entropy keseluruhan dan menemukan gain terbesar pada perhitungan pertama, selanjutnya kita juga akan mencari entropy lainnya seiring proses pembentukan pohon keputusan, termasuk juga entropy dari setiap atribut seperti Cuaca, Kelembaban dan lainnya.
Rumus sederhana diatas merupakan rumus yang akan kita gunakan dalam perhitungan baik manual maupun menggunakan microsoft excel. Namun teman-teman perlu menyesuaikan misalnya x menjadi * sebagai operator perkalian dalam Excel.
Entropi (S) = (-(10/14) x log2 (10/14) + (-(4/14) x log2 (4/14)) =
0.863120569
Nah baris diatas contoh penghitungan manual dari Entropy(S) atau entropy keseluruhan. Namun bagaimana untuk menghitung Entropy setiap atribut? Buatlah tabel pada microsoft Excel seperti dibawah ini.
|
Gambar 1. Menghitung Entropy dan Gain untuk mencari node awal |
Nah bagaimana? Hasil Entropy(S) manual dan pada Excel sama bukan? yaitu 0.863120569
Lalu sebagai contoh, untuk rumus dari Entropy pada Cuaca Berawan bagaimana? Jawabannya adalah sama dengan rumus sederhana yang kita tulis tadi. Jadi instance positifnya = 4, instance negatif = 0, dan jumlah instance berawan = 4. Mudah bukan? Tentunya akan lebih mudah ketika teman-teman melakukan perhitungan menggunakan Microsoft Excel selama penulisan rumusnya benar.
Kemudian untuk rumus pencarian Gain, mari kita baca rumus diatas. Jika terlihat rumit, berikut adalah cara membacanya,
Gain(S,Cuaca) = Entropy(S) - ((Jumlah instance Berawan/Jumlah instance)*Entropy(Berawan) + (Jumlah instance Hujan/Jumlah instance)*Entropy(Hujan) + (Jumlah instance Cerah/Jumlah instance)*Entropy(Cerah))
Gain(S,Cuaca) = 0.863120569 – ((4/14) x 0 + (5/14) x 0.721928095 + (5/14)
x 0.970950594) = 0.258521037
Rumus diatas adalah contoh penghitungan gain untuk cuaca. Hitung pula Gain (Suhu), Gain (Kelembaban), dan Gain (Berangin) dengan rumus yang sama (namun menyesuaikan).
Pada tabel perhitungan diatas, kita sudah menemukan gain terbesar yaitu pada atribut Kelembaban. Karena nilai
gain terbesar adalah Gain (Kelembaban), maka atribut “Kelembaban” menjadi
node akar (root node).
Kemudian pada “Kelembaban” normal, memiliki 7 kasus dan semuanya memiliki
jawaban Ya (Sum(Total) / Sum(Ya) = 7/7 = 1). Dengan demikian
“Kelembaban” normal menjadi daun atau leaf.
|
Gambar 2. Node awal |
b. Mencari Node Kedua Berdasarkan Node Pertama
Berdasarkan pembentukan pohon keputusan node 1 (root node), Node 1.1 akan
dianalisis lebih lanjut. Untuk mempermudah, Tabel dibawah difilter, dengan
mengambil data yang memiliki “Kelembaban” = Tinggi.
|
Tabel 2. Filter berdasarkan kelembaban = tinggi |
|
Gambar 3. Menghitung Entropy dan Gain untuk mencari node kedua |
Gain tertinggi yang didapat ada pada atribut “Cuaca”, dan Nilai yang dijadikan
daun atau leaf adalah Berawan dan Cerah. Hal ini dikarenakan pada Cuaca Berawan, dari 2 data training semuanya bernilai "Ya". Sedangkan pada cuaca Cerah, dari 3 data training semuanya bernilai "Tidak". Jadi tidak perlu dilakukan perhitungan lanjutan pada 2 nilai tersebut. Jika dievualisasi maka pohon
keputusan tampak seperti Gambar dibawah.
|
Gambar 4. Node kedua |
c. Mencari Node Ketiga Berdasarkan Node Kedua
Lakukan lagi langkah-langkah yang sama seperti sebelumnya hingga semua
node berbentuk node leaf. Karena Hujan belum menjadi leaf, maka kita lakukan perhitungan dengan memfilter tabel berdasarkan "Cuaca"=Hujan.
|
Tabel 3. Filter berdasarkan kelembaban = tinggi, dan cuaca = hujan |
|
Gambar 5. Menghitung Entropy dan Gain untuk mencari node ketiga |
Sekarang kita perhatikan, rupanya gain terbesar terletak pada atribut "Berangin". Kemudian pada atribut tersebut, nilai "Salah" sudah menjadi leaf karena dari 1 data memilih "Ya" dan "Tidak" = 0. Selanjutnya pada "Benar" juga sudah menjadi leaf karena dari 1 data memilih "Tidak" dan "Ya" = 0. Maka hasil pohon keputusan akhir adalah seperti dibawah ini.
|
Gambar 5. Hasil tree decision akhir dari studi kasus ID3 |
Kurang lebih seperti itulah cara membuat pohon keputusan dengan algoritma ID3. Cukup mudah bukan? Selamat Belajar dan Semoga Bermanfaat. Mohon maaf jika ada kekeliruan atau kekurangan dalam artikel ini.
Jika ada pertanyaan, tulis di kolom komentar ya!
See you!
Wassalamualaikum Warahmatullahi Wabarokatuh.