Anda di halaman 1dari 39

Data Mining: Decision Tree

Algoritma ID3 dan C4.5

Sekolah Tinggi Ilmu Statistik Jakarta 1


Permasalahan
• Misalkan kita memiliki record data.
• Tiap record memiliki struktur yang sama, terdiri dari sejumlah
pasangan atribut/nilai.
• Salah satu dari atribut adalah kategori dari record
• Biasanya atribut kategori hanya berisi {benar, salah} atau {sukses,
gagal} atau yang semacamnya.
• Tentukanlah suatu decision tree yang dibangun berdasarkan isian
atribut non-kategori yang nantinya dapat mengklasifikasi nilai
dari atribut kategori dari suatu data baru
Sekolah Tinggi Ilmu Statistik Jakarta 2
Mau Main Golf?
• Atribut Non-kategori
Atribut Nilai
Cuaca Cerah, Berawan, Hujan
Suhu Panas, Sejuk, Dingin
Kelembaban Normal, Tinggi
Berangin Benar, Salah

• Atribut Kategori
Atribut Nilai
Main Ya, Tidak

Sekolah Tinggi Ilmu Statistik Jakarta 3


No Cuaca
Data Main Golf
Suhu Kelembaban Berangin Main
1 Cerah Panas Tinggi Salah Tidak
2 Cerah Panas Tinggi Benar Tidak
3 Berawan Panas Tinggi Salah Ya
4 Hujan Sejuk Tinggi Salah Ya
5 Hujan Dingin Normal Salah Ya
6 Hujan Dingin Normal Benar Ya
7 Berawan Dingin Normal Benar Ya
8 Cerah Sejuk Tinggi Salah Tidak
9 Cerah Dingin Normal Salah Ya
10 Hujan Sejuk Normal Salah Ya
11 Cerah Sejuk Normal Benar Ya
12 Berawan Sejuk Tinggi Benar Ya
13 Berawan Panas Normal Salah Ya
14 Hujan Sejuk Tinggi Benar Tidak

Cuaca Suhu Kelembaban Berangin Main


Cerah DIngin Tinggi Benar ???
Sekolah Tinggi Ilmu Statistik Jakarta 4
Hasil pohon keputusan
Kelembaban

tinggi normal

Cuaca Ya

Berawan Cerah
Ya Hujan
Tidak
Berangin
Cuaca Suhu Kelembaban Berangin Main
Cerah DIngin Tinggi Benar ???
Salah Benar
Ya Tidak
Sekolah Tinggi Ilmu Statistik Jakarta 5
Mengapa decision tree?
• Decision tree merupakan metode klasifikasi
yang paling populer
• Interpretasi mudah
• Konsep dasar: dari data yang ada menjadi
pohon keputusan dan aturan-aturan
keputusan (rule)
Sekolah Tinggi Ilmu Statistik Jakarta 6
Konsep Algoritma ID3
• Dalam decision tree, tiap node berisi atribut non-
kategorik dan setiap arc berisi nilai yang mungkin
untuk atribut tersebut.
• Dalam decision tree, setiap node harus berasosiasi
dengan atribut non-kategorik yang paling informatif
• Entropy digunakan untuk mengukur seberapa
informatif suatu node
Sekolah Tinggi Ilmu Statistik Jakarta 7
Konsep
• Jika terdapat sejumlah n pesan yang mungkin,
maka peluang p untuk setiap pesan adalah 1/n dan
nilai informasi yang dapat disampaikan oleh pesan
adalah –log(p) = log(n). [log berbasis 2]
• Jika terdapat 16 pesan, maka log(16) = 4
• Maka kita membutuhkan 4 bit untuk
mengidentifikasi setiap pesan
Sekolah Tinggi Ilmu Statistik Jakarta 8
• Jika kita memiliki suatu distribusi probabilitas
P = (p1, p2, ..., pn) maka maka nilai informasi
yang disampaikan oleh distribusi ini (yang
disebut juga dengan Entropy dari P) adalah:

• I(P)= -(p1*log(p1) + p2*log(p2) + ... + pn*log(pn))

Sekolah Tinggi Ilmu Statistik Jakarta 9


• Misal, jika P adalah (0.5, 0.5) maka nilai I(P)
adalah 1, jika P adalah (0.67,0.33) maka nilai I(P)
adalah 0,92, jika P adalah (1,0) maka nilai I(P)
adalah 0.
• Semakin uniform distribusi probabilitas, semakin
besar nilai informasi yang dikandungnya.

Sekolah Tinggi Ilmu Statistik Jakarta 10


• Jika sejumlah T record dibagi dalam kelas C1, C2, ..., Ck (berdasarkan
nilai dari atribut kategori), maka informasi yang diperlukan untuk
mengidentifikasi kelas dari satu elemen T (disebut juga Info(T) = I(P)
dimana P adalah distribusi probabilitas dari (C1, C2, ..., Ck):

• P = (|C1|/|T|, |C2|/|T|, ... , |Ck|/|T|)

• Pada contoh permainan golf di atas kita memiliki Info(T) = I(10/14,


4/14) = 0,863.
Sekolah Tinggi Ilmu Statistik Jakarta 11
• Kemudian jika kita membagi T berdasarkan nilai dari atribut
non kategorik menjadi T1, T2, ..., Tn maka informasi yang
diperlukan untuk mengidentifikasi kelas dari elemen T
menjadi rata-rata tertimbang dari informasi yang diperlukan
untuk mengidentifikasi kelas dari elemen Ti (atau disebut
juga rata-rata tertimbang dari Info(Ti)) adalah:

• Info(X, T) =Sum i dari 1 ke n dari |Ti|/|T| * Info (Ti)

Sekolah Tinggi Ilmu Statistik Jakarta 12


• Contoh pada permainan golf, untuk atribut cuaca kita memndapatkan:
• Info(Cuaca, T) = 4/14*I(4/4, 0) + 5/14*I (4/5, 1/5) + 5/14*I(2/5, 3/5) = 0,605

• Gain(X, T) = Info (T) – Info(X,T)


• Melambangkan perbedaan dari informasi yang dibutuhkan untuk
mengidentifikasi elemen T dan informasi yang dibutuhkan untuk
mengidentifikasi elemen T setelah nilai atribut X diperoleh.

• Itulah yang disebut Gain informasi berdasarkan atribut X

Sekolah Tinggi Ilmu Statistik Jakarta 13


• Dalam contoh permainan golf, kita
mendapatkan:
• Gain(Cuaca, T) =Info(T) – Info (Cuaca, T) =
0,863 – 0,605 = 0,258.

Sekolah Tinggi Ilmu Statistik Jakarta 14


• Jika kita mempertimbangkan atribut lain
misalnya berangin, kita dapatkan Info
(berangin, T) sebesar 0,858 dan
Gain(berangin, T) sebesar 0,005.
• Jadi atribut Cuaca memberikan information
gain yang lebih besar dari atribut Berangin
Sekolah Tinggi Ilmu Statistik Jakarta 15
• Kita bisa menggunakan gain untuk
mengurutkan/meranking atribut dan
membangun decision tree dimana pada setiap
node terdapat atribut dengan gain terbesar
diantara atribut lain yang belum
dipertimbangkan dalam jalur tree.

Sekolah Tinggi Ilmu Statistik Jakarta 16


Tujuan pengurutan/perankingan:
• Untuk membuat decision tree sesederhana
mungkin sehingga records dapat diidentifikasi
setelah sedikit pertanyaan
• Minimalisir proses yang dibutuhkan

Sekolah Tinggi Ilmu Statistik Jakarta 17


Algoritma ID3
• Digagas oleh Ross Quinlan
• Kependekan dari Iterative Dichotomiser 3
• Menggunakan konsep entropy informasi
• Outputnya adalah decision tree

Sekolah Tinggi Ilmu Statistik Jakarta 18


Algoritma ID3
• Hitunglah Information Gain dari setiap atribut.
• Pilihlah atribut yang memiliki nilai information gain terbesar.
• Bentuk node berisi atribut tersebut.
• Ulangi proses perhitungan information gain sampai semua
data telah termasuk dalam kelas yang sama.
• Atribut yang telah terpilih tidak diikutkan lagi dalam
perhitungan information gain berikutnya.

Sekolah Tinggi Ilmu Statistik Jakarta 19


In English Please
• Given a set of R non-categorical attributes R1,
R2, ..., R3, categorical attribute C, and training
set S of records:

Sekolah Tinggi Ilmu Statistik Jakarta 20


• Function ID3 (R,C,S)
• Begin
• If S is empty, return sigle node with value Failure
• If S consists of records all with same value for categorical attribute,
return a single node with that value
• If R is empty, then return a single node with as value the most
frequent of the values of categorical attribute that are found in
records of S; [note that then there will be errors, that is, records
that will be improperly classified];
Sekolah Tinggi Ilmu Statistik Jakarta 21
• Let D be the attribute with largest Gain (D, S)
among attributes in R.
• Let {dj| j =1,2,...,m} be the values of attribute D
• Let {Sj| j=1,2,...,m} be the subsets of S consisting
respectively of records with value dj for attribute
D;

Sekolah Tinggi Ilmu Statistik Jakarta 22


• Return a tree with root labeled D and arcs
labeled d1, d2, ...,dm going respectively to the
trees
• ID3(R-{D},C,S1), ID3(R-{D},C,S2),..., ID3(R-{D},
C,Sm);
• End ID3;
Sekolah Tinggi Ilmu Statistik Jakarta 23
No Cuaca
Perhitungan
Suhu Kelembaban Berangin Main
1 Cerah Panas Tinggi Salah Tidak
2 Cerah Panas Tinggi Benar Tidak
3 Berawan Panas Tinggi Salah Ya
4 Hujan Sejuk Tinggi Salah Ya
5 Hujan Dingin Normal Salah Ya
6 Hujan Dingin Normal Benar Ya
7 Berawan Dingin Normal Benar Ya
8 Cerah Sejuk Tinggi Salah Tidak
9 Cerah Dingin Normal Salah Ya
10 Hujan Sejuk Normal Salah Ya
11 Cerah Sejuk Normal Benar Ya
12 Berawan Sejuk Tinggi Benar Ya
13 Berawan Panas Normal Salah Ya
14 Hujan Sejuk Tinggi Benar Tidak

• Entropy (P) = -(p1*log(p1) + p2*log(p2) + ... + pn*log(pn)) Total Kasus Sum(Ya) Sum(Tidak) Entropi
Total
• Entropy(P) = -(10/14*log 10/14 + 4/14 * log 4/14) = 0,863
14 10 4 0,863

Sekolah Tinggi Ilmu Statistik Jakarta 24


Tabel: Analisis Atribut
NODE Atribut Nilai Sum(Nilai) Sum(Ya) Sum(Tidak) Entropi Gain
1 Cuaca Berawan 4 4 0 0
Hujan 5 4 1 0,721
Cerah 5 2 3 0,970
0,258
Suhu Dingin 4 4 0 0
Panas 4 2 2 1
Sejuk 6 4 2 0,918
0,183
Kelembaban Tinggi 7 3 4 0,985
Normal 7 7 0 0
0,370
Berangin Salah 8 6 2 0,811
Benar 6 2 4 0,918
0,005

Sekolah Tinggi Ilmu Statistik Jakarta 25


Iterasi 1
1
Kelembaban
• Gain(Cuaca, T) = 0,258
tinggi normal
• Gain(Suhu, T) = 0,183
1.1
• Gain(Kelembaban, T) = 0,370 ? Ya
• Gain(Berangin, T) = 0,005
• Karena gain Kelembaban adalah yg terbesar, maka Kelembaban
menjadi node akar (root)
• Kelembaban normal memiliki 7 kasus yang semuanya Ya,dengan
demikian kelembaban normal menjadi daun atau leaf
Sekolah Tinggi Ilmu Statistik Jakarta 26
Next Step
• Kemudian filter tabel dengan mengambil data kelembaban = tinggi
No Cuaca Suhu Kelembaba Berangin Main
n
1 Cerah Panas Tinggi Salah Tidak
2 Cerah Panas Tinggi Benar Tidak
3 Berawan Panas Tinggi Salah Ya
4 Hujan Sejuk Tinggi Salah Ya
5 Cerah Sejuk Tinggi Salah Tidak
6 Berawan Sejuk Tinggi Benar Ya
7 Hujan Sejuk Tinggi Benar Tidak

Sekolah Tinggi Ilmu Statistik Jakarta 27


Kelembaban Tinggi Sum(Ya)
Analisis Node 1.1
Sum(Tidak) Entropi
7 3 4 0,985

NODE Atribut Nilai Sum(Nilai) Sum(Ya) Sum(Tidak) Entropi Gain


1.1 Cuaca Berawan 2 2 0 0
Hujan 2 1 1 1
Cerah 3 0 3 0
0,699
Suhu Dingin 0 0 0 0
Panas 3 1 2 0,918
Sejuk 4 2 2 1
0,202
Berangin Salah 4 2 2 1
Benar 3 2 1 0,918
0,020

Sekolah Tinggi Ilmu Statistik Jakarta 28


Iterasi 2
• Gain tertinggi ada pada atribut Cuaca dan nilai yang dijadikan daun atau
leaf adalah Berawan dan Cerah

1
Kelembaban
tinggi normal

1.1 Cuaca Ya

Berawan Cerah
Ya Hujan
Tidak
1.1.2
? Sekolah Tinggi Ilmu Statistik Jakarta 29
• Filter tabel
Analisis Node 1.1.2
No Cuaca Suhu Kelembaban Berangin Main
1 Hujan Sejuk Tinggi Salah Ya
2 Hujan Sejuk Tinggi Benar Tidak

• Entropy
Kelembaban Tinggi & Hujan Sum(Ya) Sum(Tidak) Entropi
2 1 1 1

NODE Atribut Nilai Sum(Nilai) Sum(Ya) Sum(Tidak) Entropi Gain


1.1.2 Suhu Dingin 0 0 0 0
Panas 0 0 0 0
Sejuk 2 1 1 1
0
Berangin Salah 1 1 0 0
Benar 1 0 1 0
1
Sekolah Tinggi Ilmu Statistik Jakarta 30
Iterasi 3: Hasil akhir pohon keputusan
1
Kelembaban
tinggi normal

1.1 Cuaca Ya

Berawan Cerah
Ya Hujan
Tidak
1.1.2
Berangin

Salah Benar Tidak


Ya
Sekolah Tinggi Ilmu Statistik Jakarta 31
Algoritma C4.5
• Merupakan pengembangan dari ID3
• Menambahkan konsep GainRatio dan SplitInfo
• Mengapa? Misal jika kita punya atribut D yang memiliki
nilai berbeda untuk setiap record. Maka Info(D,T) adalah 0,
dan Gain(D,T) adalah maksimal. Untuk mengatasi ini
digunakan konsep GainRatio dimana
• GainRatio(D,T) = Gain(D,T)/SplitInfo(D,T)

Sekolah Tinggi Ilmu Statistik Jakarta 32


• Dimana SplitInfo(D,T) adalah informasi yang dihasilkan
oleh split dari T berdasarkan nilai atribut kategori D.
Maka splitInfo(D,T) adalah:
• I(|T1|/|T|, |T2|/|T|, ..., |Tm|/|T|)
• Contoh dalam permainan golf, SplitInfo(Cuaca,T) adalah:
• -5/14*log(5/14)-4/14*log(4/14)-5/14*log(5/14) = 1,577
• GainRatio Cuaca = 0,258/1,577 = 0,163

Sekolah Tinggi Ilmu Statistik Jakarta 33


• SplitInfo(Berangin,T) adalah
• =6/14*log(6/14) – 8/14*log(8/14) = 0,985
• GainRatio Berangin = 0,05/0,985 = 0,05

Sekolah Tinggi Ilmu Statistik Jakarta 34


Pengembangan C4.5 dari ID3
• Dalam membuat decision tree, Dapat menghandle training set yang memiliki
nilai unknown
• Dalam menggunakan decision tree, Dapat mengklasifikasi records yang
memiliki nilai atribut unknown dengan menghitung probabilitas dari
berbagai hasil yang mungkin.
• Contoh dalam permainan golf jika cuaca cerah dan kelembaban tidak
diketahui maka:
• Ada tiga record tidak bermain dua record bermain maka probabilitas untuk
main atau tidak bermain adalah (0.4, 0.6)
• Dapat menghandle nilai continuous=>dengan menemukan partisi terbaik

Sekolah Tinggi Ilmu Statistik Jakarta 35


Algoritma Decision Tree:
• IDS
• ID3
• C4.5
• C5.0
• CHAID
• CART
• Dll...
Sekolah Tinggi Ilmu Statistik Jakarta 36
Terima Kasih

Sekolah Tinggi Ilmu Statistik Jakarta 37


Latihan

Sekolah Tinggi Ilmu Statistik Jakarta 38


Latihan
• Menggunakan ID3 buatlah pohon keputusan
yang bisa menjawab apakah akan membeli
komputer dengan nilai atribut nilai atribut
berikut:
• (age=youth, income=medium, student=yes,
credit_rating=fair).
Sekolah Tinggi Ilmu Statistik Jakarta 39

Anda mungkin juga menyukai