Anda di halaman 1dari 51

DATA MINING

Slide Presentation
By
RACHMAT AULIA, S.KOM, M.SC.IT
KLASIFIKASI TEKNIK DECISION TREE
• Pendahuluan
• Definisi DT
• Manfaat DT
• Kelebihan & Kekurangan DT
• Model DT
• Algoritma DT
Algoritma Decision Tree
• Algoritma ID3
Algoritma ID3 adalah algoritma yang digunakan
untuk membangun pohon keputusan (decision
tree)
ID3 awalnya diperkenalkan oleh J.Rose Quinlan
sekitar tahun 1979, dengan memanfaatkan teori
informasi (information teory) milik Shanon
 ID3 merupakan singkatan dari Iterative
Dichotomiser 3
ID3 tidak pernah melakukan backtracking untuk
merevisi keputusan pemilihan atribut yang telah
dilakukan sebelumnya
Cont…
ID3 hanya menangani atribut-atribut yang
jumlahnya sedikit dan diskret
Sedangkan modifikasi dari ID3 yaitu C.45
mampu menangani nilai atribut kontinue

 Entropy & Information Gain


o ID3 menerapkan metode konsep entropy
o Konsep entropy digunakan untuk mengukur
seberapa informatifnya sebuah node
 Entropy(S) = 0, jika semua contoh pada S berada
dalam kelas yang sama
Cont…
 Entropy(S) = 1, jika jumlah contoh positif dan
jumlah contoh negatif dalam S adalah sama
 0 < Entropy(S) < 1, jika jumlah contoh positif
dan negatif dalam S tidak sama

=> Formula
Entropy
Note:
 S adalah himpunan (dataset)
 k = banyaknya partisi
 Pj = probabilitas yang didapat dari Sum(Ya)
dibagi total kasus
Cont…
o Setelah mendapatkan nilai entropy, pemilahan atribut
dilakukan dengan nilai information gain terbesar

Note:
 S = ruang (data) sample yang digunakan untuk
training
 A = atribut
 |Si| = jumlah sample untuk nilai V
 |S| = jumlah seluruh sample data
 Entropy(Si) = entropy untuk sample-sample yang
memiliki nilai i
Cont…
CONTOH SOAL 1 (Bermain Tenis Outdoor)
• Diketahui dataset SB:
Cont…
• Jawab:
• Langkah pertama adalah, kita temukan dulu
nilai Entropy (total) dengan cara:
• Entropy (S) = (- 10/14 * log2 (10/14)) + (- 4/14 *
log2 (4/14))
• Note: 10 = jumlah kasus atribut “main” bernilai
“ya”, 14 = grand total kasus, dan 4 = jumlah
kasus atribut “main” bernilai “tidak”,
berdasarkan pada tabel di atas
• Formula => log2 (number) = ln (number) / ln (2)
• Entropy (S) = (-0.71428 * -0.48542) + (-0.28571
* -1.80735)
Cont…
• Entropy (S) = (0.34672) + (0.51637)
• Entropy (S) = 0.86309
Total Kasus Sum (Ya) Sum (Tidak) Entropy (S) / Total
14 10 4 0.86309

• Next, lakukan analisis pada masing-masing


atribut dan nilainya serta hitung nilai entropy-
nya
• Value (Cuaca) => cerah, berawan, hujan
• => Scerah = [2+, 3-]
• => Sberawan = [4+, 0-]
• => Shujan = [4+, 1-]
Cont…
• Entropy (SCerah) = (-2/5 * log2 (2/5)) + (-3/5 *
log2 (3/5))
• = (-0.4 *-1.32192) + (-0.6 * -0.73696)
• = 0.970944
• Entropy (SBerawan) = (-4/4 * log2 (4/4)) + (-0/4
* log2 (0/4))
• = (-1 * 0) + (-0 * 0)
• =0
• Entropy (SHujan) = (-4/5 * log2 (4/5)) + (-1/5 *
log2 (1/5))
• = (-0.8 * -0.32192) + (-0.2 * -2.32192)
• = 0.72192
Cont…
• Gain (S,Cuaca) = Entropy(S) – (5/14 * Entropy
(SCerah)) – (4/14 * Entropy (SBerawan)) – (5/14
* Entropy (SHujan))
• = 0.86309 – (5/14 * 0.970944) – (4/14 * 0) –
(5/14 * 0.72192)
• = 0.86309 – (0.35714 * 0.970944) – (0.28571 *
0) – (0.35714 * 0.72192)
• = 0.25850

• Value (Suhu) => panas, sejuk, dingin


• => Spanas = [2+, 2-]
• => Ssejuk = [4+, 2-]
Cont…
• => Sdingin = [4+, 0-]
• Entropy (SPanas) = (-2/4 * log2 (2/4)) + (-2/4 * log2
(2/4))
• =1
• Entropy (SSejuk) = (-4/6 * log2 (4/6)) + (-2/6 * log2
(2/6))
• = 0.91829
• Entropy (SDingin) = (-4/4 * log2 (4/4)) + (-0/4 * log2
(0/4))
• =0
• Gain (S,Suhu) = Entropy(S) – (4/14 * Entropy
(SPanas)) – (6/14 * Entropy (SSejuk)) – (4/14 *
Entropy (SDingin))
Cont…
• = 0.86309 – (4/14 * 1) – (6/14 * 0.91829) –
(4/14 * 0)
• = 0.18382

• Value (Kelembaban) => tinggi, normal


• => Stinggi = [3+, 4-]
• => Snormal = [7+, 0-]
• Entropy (STinggi) = (-3/7 * log2 (3/7)) + (-4/7 *
log2 (4/7))
• = 0.98522
• Entropy (SNormal) = (-7/7 * log2 (7/7)) + (-0/7 *
log2 (0/7))
Cont…
• =0
• Gain (S,Kelembaban) = Entropy(S) – (7/14 *
Entropy (STinggi)) – (7/14 * Entropy (SNormal))
• = 0.86309 – (7/14 * 0.98522) – (7/14 * 0)
• = 0.37048

• Value (Berangin) => salah, benar


• => Ssalah = [6+, 2-]
• => Sbenar = [4+, 2-]
• Entropy (SSalah) = (-6/8 * log2 (6/8)) + (-2/8 *
log2 (2/8))
• = 0.81127
Cont…
• Entropy (SBenar) = (-4/6 * log2 (4/6)) + (-2/6 *
log2 (2/6))
• = 0.91829
• Gain (S,Berangin) = Entropy(S) – (8/14 * Entropy
(SSalah)) – (6/14 * Entropy (SBenar))
• = 0.86309 – (8/14 * 0.81127) – (6/14 * 0.91829)
• = 0.00595
Cont…
• Hasil Perhitungan Entropy & Gain Tiap Atribut
Node Atribut Nilai Sum Sum Sum Entropy Gain
(nilai) (ya) (tidak)
1 Cuaca Cerah 5 2 3 0.970944

Berawan 4 4 0 0

Hujan 5 4 1 0.72192

0.25850

Suhu Panas 4 2 2 1

Sejuk 6 4 2 0.91829

Dingin 4 4 0 0
0.18382

Kelembaban Tinggi 7 3 4 0.98522

Normal 7 7 0 0
0.37048
Cont…
• Hasil Perhitungan Entropy & Gain Tiap Atribut
Node Atribut Nilai Sum Sum Sum Entropy Gain
(nilai) (ya) (tidak)
1 Berangin Salah 8 6 2 0.81127

Benar 6 4 2 0.91829
0.00595

• Terlihat pada tabel di atas, atribut yang


mempunyai nilai gain tertinggi adalah
“Kelembaban”. Maka dari itu atribut
“kelembaban” = root (atribut tertinggi dalam
pohon keputusan (DT))
Cont…
• Prediksi DT untuk kasus “bermain tenis outdoor
(part 1)”

Kelembaban

Tinggi Normal

? Ya

d1,d2,d3,d4,d8,d12,d14 => [3+, 4-] d5,d6,d7,d9,d10,d11,d13 => [7+, 0-]


Cont…
• Dataset: atribut “kelembaban” & nilai: “tinggi”

• Value (Cuaca) => cerah, berawan, hujan


• => Scerah = [0+, 3-]
• => Sberawan = [2+, 0-]
• => Shujan = [1+, 1-]
Cont…
• Entropy (SCerah) = (-0/3 * log2 (0/3)) + (-3/3 *
log2 (3/3))
• =0
• Entropy (SBerawan) = (-2/2 * log2 (2/2)) + (-0/2
* log2 (0/2))
• =0
• Entropy (SHujan) = (-1/2 * log2 (1/2)) + (-1/2 *
log2 (1/2))
• =1

• Value (Suhu) => panas, sejuk


• => Spanas = [1+, 2-]
Cont…
• => Ssejuk = [2+, 2-]
• Entropy (SPanas) = (-1/3 * log2 (1/3)) + (-2/3 *
log2 (2/3))
• = 0.91829
• Entropy (SSejuk) = (-2/4 * log2 (2/4)) + (-2/4 *
log2 (2/4))
• =1

• Value (Berangin) => salah, benar


• => Ssalah = [2+, 2-]
• => Sbenar = [1+, 2-]
Cont…
• Entropy (SSalah) = (-2/4 * log2 (2/4)) + (-2/4 *
log2 (2/4))
• =1
• Entropy (SBenar) = (-1/3 * log2 (1/3)) + (-2/3 *
log2 (2/3))
• = 0.91829

• Gain (S,Cuaca) = Entropy(SKelembaban:tinggi) –


(3/7 * Entropy (SCerah)) – (2/7 * Entropy
(SBerawan)) – (2/7 * Entropy (SHujan))
• = 0.98522 – (3/7 * 0) – (2/7 * 0) – (2/7 * 1)
• = 0.69950
Cont…
• Gain (S,Suhu) = Entropy(SKelembaban:tinggi) –
(3/7 * Entropy (SPanas)) – (4/7 * Entropy
(SSejuk))
• = 0.98522 – (3/7 * 0.91829) – (4/7 * 1)
• = 0.02023

• Gain(S,Berangin) = Entropy(SKelembaban:tinggi)
– (4/7 * Entropy (SSalah)) – (3/7 * Entropy
(SBenar))
• = 0.98522 – (4/7 * 1) – (3/7 * 0.91829)
• = 0.02023
Cont…
• G
Node Atribut Nilai Sum Sum Sum Entropy Gain
(nilai) (ya) (tidak)
1.1 Cuaca Cerah 3 0 3 0

Berawan 2 2 0 0

Hujan 2 1 1 1

0.69950

Suhu Panas 3 1 2 0.91829

Sejuk 4 2 2 1

0.02023

Berangin Salah 4 2 2 1

Benar 3 1 2 0.91829
0.02023
Cont…
• Prediksi DT untuk kasus “bermain tenis outdoor
(part 2)”
Kelembaban

Tinggi Normal

? Ya

Cuaca

Cerah Hujan
Berawan

Tidak Ya ?

d1,d2,,d8, d3,d12, d4,d14,


=> [0+, 3-] => [2+, 0-] => [1+, 1-]
Cont…
• Dataset: atribut “kelembaban” & nilai: “tinggi” dan
atribut “cuaca” & nilai: “hujan”

• Value (Suhu) => sejuk


• => Ssejuk = [1+, 1-]
• Entropy (SSejuk) = (-1/2 * log2 (1/2)) + (-1/2 * log2
(1/2))
• =1
• Gain (S,Suhu) = Entropy(SKelembaban:tinggi &
Scuaca:hujan) – (2/2 * Entropy (SSejuk))
• = 1 – (2/2 * 1)
Cont…
• =0

• Value (Berangin) => salah, benar


• => Ssalah = [1+, 0-]
• => Sbenar = [0+, 1-]
• Entropy (SSalah) = (-1/1 * log2 (1/1)) + (-0/1 *
log2 (0/1))
• =0
• Entropy (SBenar) = (-0/1 * log2 (0/1)) + (-1/1 *
log2 (1/1))
• =0
Cont…
• Gain (S,Berangin) = Entropy(SKelembaban:tinggi
& Scuaca:hujan) – (1/2 * Entropy (SSalah)) –
(1/2 * Entropy (SBenar))
• = 1 – (1/2 * 0) – (1/2 * 0)
• =1
Node Atribut Nilai Sum Sum Sum Entropy Gain
(nilai) (ya) (tidak)
1.1.2 Suhu Sejuk 2 1 1 1

Berangin Salah 1 1 0 0

Benar 1 0 1 0

1
Cont… Kelembaban

• Prediksi DT Tinggi Normal

untuk kasus ? Ya

“bermain tenis
Cuaca
outdoor
Cerah Hujan
(part 3 -> Final)” Berawan

Tidak Ya ?

Berangin

Salah Benar

Ya Tidak
d4 d14
=> [1+, 0-] => [0+, 1-]
Cont…
• Algoritma C.45
Algoritma yang membentuk DT dan merupakan
perkembangan dari ID3
Untuk membentuk DT diperlukan sekumpulan
data (record) yang memiliki struktur sama
Tiap record berisikan sejumlah atribut dan
target atribut
Nilai atribut bersifat discrete / continuous
Cont…
 Untuk membangun pohon keputusan
menggunakan C.45, point utama yang harus
diperhatikan adalah memilih atribut sebagai
akar
 Selanjutnya, dibuat cabang untuk tiap-tiap nilai
di dalam akar tersebut
 Kemudian, membagi kasus dalam cabang
 Berikutnya, ulangi proses untuk setiap cabang
sampai semua kasus pada cabang memiliki
kelas yang sama
 Untuk memilih atribut dengan akar, didasarkan
pada nilai gain tertinggi dari atribut-atribut yang
ada
Cont…
 Untuk menghitung gain digunakan rumus sb:

 Note:
 S: Himpunan kasus
 A: Atribut
 N: jumlah partisi atribut A,
 |Si|: jumlah kasus pada partisi ke-i
 |S|: jumlah kasus dalam S

 Berdasarkan rumus di atas, akan diperoleh nilai


gain dari atribut yang paling tertinggi
Cont…
 Gain = salah satu atribut selection measure
yang digunakan untuk memilih test atribute tiap
node pada tree
 Atribut dengan informasi gain tertinggi dipilih
sebagai test atribut dari suatu node
 Untuk menghitung nilai entropy dapat
menerapkan formula berikut:

 Note:
• S: himpunan kasus
• A: atribut
Cont…
• N: jumlah partisi S
• Pi: proporsi dari Si terhadap S
Cont…
CONTOH SOAL 1 (Bermain Tenis Outdoor)
• Diketahui dataset SB:
Cont…
Jawab:
Menghitung jumlah kasus, jumlah kasus untuk
keputusan “yes”, jumlah kasus untuk keputusan
“no”, dan entropy dari semua kasus dan kasus
yang dibagi berdasarkan atribut “outlook”,
“temperature”, “humidity”, dan “windy”
 Setelah itu, lakukan perhitungan Gain untuk
masing-masing atribut
Hasil perhitungan ditunjukkan pada tabel
berikut:
Cont…
S No (S1) Yes Entropy GAIN
(S2)
Total 14 4 10 0.86309

Outlook 0.25850

Sunny 5 3 2 0.970944

Cloudy 4 0 4 0

Rainy 5 1 4 0.72192

Temperature 0.18382

Hot 4 2 2 1

Mild 6 2 4 0.91829

Cool 4 0 4 0
Cont…
S No (S1) Yes Entropy GAIN
(S2)
Humidity 0.37048

High 7 4 3 0.98522

Normal 7 0 7 0

Windy 0.00595

False 8 2 6 0.81127

True 6 2 4 0.91829

Note: semua hasil perhitungan pada tabel di


atas, telah dibahas dan dikalkulasi mengacu
pada contoh kasus algoritma id3 di slide
sebelumnya. Contoh kasus sama!
Cont…
 Hasil Pohon Keputusan part-1:
Humidity

High Normal

??? Yes
Cont…
 Hasil Pohon Keputusan
S No
(S )
part-1:
Yes
(S ) 1
Entropy
2
GAIN

Humidity - High 7 4 3 0.98522

Outlook 0.69950

Sunny 3 3 0 0

Cloudy 2 0 2 0

Rainy 2 1 1 1

Temperature 0.02023

Hot 3 2 1 0.91829

Mild 4 2 2 1
Cont…
 Hasil Pohon Keputusan
S No
(S )
part-1:
Yes
(S )
1
Entropy
2
GAIN

Windy 0.02023

False 4 2 2 1

True 3 2 1 0.91829

Note: semua hasil perhitungan pada tabel di


atas, telah dibahas dan dikalkulasi mengacu
pada contoh kasus algoritma id3 di slide
sebelumnya. Contoh kasus sama!
Cont…
 Hasil Pohon Keputusan part-2:
Humidity

High Normal

Outlook Yes
Sunny Rainy
Cloudy

No Yes ???
Cont…
 Hasil Pohon Keputusan
S No
(S )
part-1:
Yes
(S )
Entropy
1 2
GAIN

Humidity -High && 2 1 1 1


Outlook-Rainy
Temperature 0

Mild 2 1 1 1

Windy 1

False 1 0 1 0

True 1 1 0 0

Note: semua hasil perhitungan pada tabel di


atas, telah dibahas dan dikalkulasi mengacu
pada contoh kasus algoritma id3 di slide
sebelumnya. Contoh kasus sama!
Cont…
 Hasil Pohon Keputusan part-3:
Humidity

High Normal

Outlook Yes
Sunny Rainy
Cloudy

No Yes Windy

False True

Yes No
LATIHAN – ID3 & C.45
 Rancanglah pohon keputusan dari kasus berikut
dengan menggunakan algoritma ID3 & C.45.
Nama Usia Jenis Kelamin Hipertensi

Afgan Tua Laki-laki Ya

Desta Tua Laki-laki Ya

Ringgo Muda Laki-laki Tidak

Ruben Muda Laki-laki Tidak

Titi Muda Perempuan Tidak

Aura Tua Perempuan Tidak

Eli Tua Perempuan Tidak

Ari Muda Laki-laki Tidak


Node Atribut Nilai Sum Sum Sum Entropy Gain
(nilai) (ya) (tidak)
1 Usia Tua 4 2 2 1

Muda 4 0 4 0

0.31127

Jenis Laki-Laki 5 2 3 0.97095


Kelamin
Perempuan 3 0 3 0

0.20442
USIA

TUA MUDA

? TIDAK
d1,d2,d6,d7, [2+, 2-] d3,d4,d5,d8, [0+, 4-]
USIA

TUA MUDA

Jenis Kelamin TIDAK


d3,d4,d5,d8, [0+, 4-]
Laki Perempuan

Ya Tidak
d1,d2 [2+, 0-] d6,d7 [0+, 2-]

d1 = Afgan
d2 = …..
d3 = ……



C.45
S No (S1) Yes Entropy GAIN
(S2)
Total 8 6 2 0.81127

USIA 0.31127

Tua 4 2 2 1

Muda 4 4 0 0

Jenis_Kelamin 0.20442

Laki 5 3 2 0.97095

Perempuan 3 3 0 0
C.45
USIA

TUA MUDA

? TIDAK
C.45
S No Yes Entropy GAIN
(S1) (S2)
Usia:Tua 4 2 2 1

Jenis Kelamin 1

Laki 2 0 2 0

Perempuan 2 2 0 0

USIA

TUA MUDA

Jenis Kelamin TIDAK

Laki Perempuan

Ya Tidak

Anda mungkin juga menyukai