MKB3462 KECERDASAN BUATAN Muhammad Zidny Naf’an, M.Kom.
Decision Tree (DT) Learning • Menemukan fungsi2 pendekatan yang bernilai diskrit • Jenis decision tree: – ID3 (iterative dychotomizer version 3) – ASSISTANT – C4.5
Decision Tree (DT) Learning • DT merupakan bagian dari proses klasifikasi • Hal-hal yang berhubungan dengan klasifikasi: – Meramalkan kategori label kelas ( nominal atau terpisah) – Menggolongkan data Contoh aplikasi klasifikasi adalah: • Persetujuan kredit • Target marketing • Diagnosa medis • Analisis keefektifan tindakan
Terminologi • Data set: kumpulan sampel data • Atribut: field/kolom • Data learning (data latih): data yang digunakan untuk membangun decision tree • Data testing (data uji): data untuk menguji kemampuan decision tree dalam menangani masalah baru
ID3 • Iterative Dichotomiser Three • Membangun decision tree secara top down • Diawali: – Atribut mana yang pertama kali menjadi root?
• Perlu adanya seleksi atribut: – information gain, – entropy
Entropy • Parameter untuk mengukur heterogenitas (keberagaman) dari suatu kumpulan sample data • Semakin heterogen, entropy semakin besar • Rumus: 𝑐
𝐸𝑛𝑡𝑟𝑜𝑝𝑦 𝑆 ≡
−𝑝𝑖 𝑙𝑜𝑔2 𝑝𝑖 𝑖
c: jumlah nilai yang ada pada atribut target (jumlah kelas klasifikasi) pi: menyatakan jumlah sampel untuk kelas i
Information Gain • Mengukur efektivitas suatu atribut dalam mengklasifikasikan data • Rumus: 𝐺𝑎𝑖𝑛 𝑆, 𝐴 ≡ 𝐸𝑛𝑡𝑟𝑜𝑝𝑦 𝑆 − 𝑣∈𝑉𝑎𝑙𝑢𝑒𝑠(𝐴)
𝑆𝑣 𝐸𝑛𝑡𝑟𝑜𝑝𝑦 𝑆𝑣 𝑆
A: atribut V: menyatakan suatu nilai yang mungkin untuk atribut A 𝑉𝑎𝑙𝑢𝑒𝑠(𝐴) : himpunan nilai-nilai yang mungkin untuk atribut A 𝑆𝑣 : jumlah sampel untuk nilai v 𝑆 : jumlah seluruh sampel data 𝐸𝑛𝑡𝑟𝑜𝑝𝑦 𝑆𝑣 : Entropy untuk sampel-sampel yang memiliki nilai v
Tahapan Algoritma Decision Tree 1. Siapkan data training 2. Pilih atribut sebagai root (akar) n
Entropy( S ) pi * log 2 pi i 1
n
| Si | Gain( S , A) Entropy( S ) * Entropy( S i ) i 1 | S |
3. Buat cabang untuk tiap-tiap nilai 4. Ulangi proses untuk setiap cabang sampai semua kasus pada cabang memiliki kelas yg sama 8
1. Siapkan data training
9
2. Pilih atribut sebagai akar • Untuk memilih atribut akar, didasarkan pada nilai Gain tertinggi dari atribut-atribut yang ada. Untuk mendapatkan nilai Gain, harus ditentukan terlebih dahulu nilai Entropy
• Rumus Entropy:
n
Entropy( S ) pi * log 2 pi i 1
– S = Himpunan Kasus – n = Jumlah Partisi S – pi = Proporsi dari Si terhadap S n
• Rumus Gain: – – – – –
| Si | Gain( S , A) Entropy( S ) * Entropy( S i ) i 1 | S |
S = Himpunan Kasus A = Atribut n = Jumlah Partisi Atribut A | Si | = Jumlah Kasus pada partisi ke-i | S | = Jumlah Kasus dalam S
10
Perhitungan Entropy dan Gain Akar
11
Penghitungan Entropy Akar • Entropy Total • Entropy (Outlook)
• Entropy (Temperature) • Entropy (Humidity) • Entropy (Windy) 12
Penghitungan Entropy Akar NODE 1
JML KASUS TIDAK YA (Si) ENTROPY (S) (Si) 14 10 4 0,86312
ATRIBUT TOTAL OUTLOOK CLOUDY RAINY SUNNY
4 5 5
4 4 2
0 1 3
0 0,72193 0,97095
4 4 6
0 2 2
4 2 4
0 1 0,91830
7 7
4 7
3 0
0,98523 0
8 6
2 4
6 2
0,81128 0,91830
TEMPERATURE COOL HOT MILD
HUMADITY HIGH
NORMAL
WINDY FALSE TRUE
13
GAIN
Penghitungan Gain Akar
14
Penghitungan Gain Akar NODE 1
ATRIBUT TOTAL OUTLOOK
JML KASUS (S) 14
YA (Si) 10
TIDAK (Si) 4
ENTROPY
GAIN
0,86312 0,25852
CLOUDY RAINY SUNNY
4 5 5
4 4 2
0 1 3
0 0,72193 0,97095
TEMPERATURE
0,18385 COOL
HOT MILD
4 4 6
0 2 2
4 2 4
0 1 0,91830
HUMADITY
0,37051 HIGH NORMAL
7 7
4 7
3 0
0,98523 0
WINDY
0,00598 FALSE TRUE
8 6
2 4
6 2
0,81128 0,91830
15
Gain Tertinggi Sebagai Akar •
•
Dari hasil pada Node 1, dapat diketahui bahwa atribut dengan Gain tertinggi adalah HUMIDITY yaitu sebesar 0.37051 – Dengan demikian HUMIDITY dapat menjadi node akar Ada 2 nilai atribut dari HUMIDITY yaitu HIGH dan NORMAL. Dari kedua nilai atribut tersebut, nilai atribut NORMAL sudah mengklasifikasikan kasus menjadi 1 yaitu keputusannya Yes, sehingga tidak perlu dilakukan perhitungan lebih lanjut
1. HUMIDITY
High
Normal
1.1 ?????
Yes
– Tetapi untuk nilai atribut HIGH masih perlu dilakukan perhitungan lagi 16
1. Siapkan data training
17
2. Buat cabang untuk tiap-tiap nilai • Untuk memudahkan, dataset di filter dengan mengambil data yang memiliki kelembaban HUMADITY=HIGH untuk membuat table Node 1.1 OUTLOOK Sunny Sunny Cloudy Rainy Sunny Cloudy Rainy
TEMPERATURE Hot Hot Hot Mild Mild Mild Mild
HUMIDITY High High High High High High High
WINDY FALSE TRUE FALSE FALSE FALSE TRUE TRUE 18
PLAY No No Yes Yes No Yes No
Perhitungan Entropi Dan Gain Cabang NODE 1.1
JML KASUS TIDAK YA (Si) (S) (Si) 7 3 4
ATRIBUT HUMADITY OUTLOOK
ENTROPY
GAIN
0,98523 0,69951
CLOUDY RAINY SUNNY
2 2 3
2 1 0
0 1 3
0 1 0
TEMPERATURE
0,02024 COOL HOT MILD
0 3 4
0 1 2
0 2 2
0 0,91830 1
WINDY
0,02024 FALSE TRUE
4 3
2 1
2 2
1 0,91830
19
Gain Tertinggi Sebagai Node 1.1 • Dari hasil pada Tabel Node 1.1, dapat diketahui bahwa atribut dengan Gain tertinggi adalah OUTLOOK yaitu sebesar 0.69951 1. HUMIDITY
– Dengan demikian OUTLOOK dapat menjadi node kedua High
• Artibut CLOUDY = YES dan SUNNY= NO sudah mengklasifikasikan kasus menjadi 1 keputusan, sehingga tidak perlu dilakukan perhitungan lebih lanjut – Tetapi untuk nilai atribut RAINY masih perlu Cloudy dilakukan perhitungan lagi
Yes
Normal
1.1 OUTLOOK
Yes
Sunny
Rainy
1.1.2 ?????
No
20
3. Ulangi proses untuk setiap cabang sampai semua kasus pada cabang memiliki kelas yg sama OUTLOOK Rainy Rainy
TEMPERATURE HUMIDITY Mild High Mild High
NODE 1.2
WINDY FALSE TRUE
PLAY Yes No
JML KASUS YA (Si) TIDAK (Si) ENTROPY (S)
ATRIBUT HUMADITY HIGH & OUTLOOK RAINY TEMPERATURE
2
1
1
GAIN
1 0
COOL HOT MILD
0 0 2
0 0 1
0 0 1
0 0 1
WINDY
1 FALSE TRUE
1 1
1 0
0 1
0 0
21
Gain Tertinggi Sebagai Node 1.1.2 1. HUMIDIT Y
• Dari tabel, Gain Tertinggi adalah WINDY dan menjadi node cabang dari atribut RAINY
High
1.1 OUTLOOK
• Karena semua kasus sudah masuk dalam kelas – Jadi, pohon keputusan pada Gambar merupakan pohon keputusan terakhir yang terbentuk
Normal
Cloudy
Yes
Sunny
Rainy
1.1.2 WINDY
Yes False
Yes
No True
No
22
Cara Lain memilih Atribut • Gain Ratio • Gini Index
Gain Ratio for Attribute Selection (C4.5) • Hasil Information gain akan bias untuk atribut dengan nilai atribut yang besar • Algoritma C4.5 (a successor of ID3) menggunakan gain ratio untuk mengatasi masalah tersebut v |D | | Dj | j SplitInfoA ( D) log 2 ( ) |D| j 1 | D |
– GainRatio(A) = Gain(A)/SplitInfo(A) • Ex.
– GainRatio(income) = 0.029/1.557 = 0.019 • The attribute with the maximum gain ratio is selected as the splitting attribute 24
Gini Index (CART) • If a data set D contains examples from n classes, gini index, gini(D) is n defined as 2 gini( D) 1 p j j 1
where pj is the relative frequency of class j in D • If a data set D is split on A into two subsets D1 and D2, the gini index gini(D) is defined as |D1| |D2 | gini A ( D)
|D|
gini( D1)
|D|
gini( D 2)
• Reduction in Impurity: gini( A) gini( D) giniA ( D) • The attribute provides the smallest ginisplit(D) (or the largest reduction in impurity) is chosen to split the node (need to enumerate all the possible splitting points for each attribute) 25
Computation of Gini Index • Ex. D has 9 tuples in buys_computer = “yes” and 5 in “no” 2
2
9 5 gini( D) 1 0.459 14 14
• Suppose the attribute income partitions D into 10 in D1: {low, medium} and 4 in D2 10 4 giniincome{low,medium} ( D) Gini( D1 ) Gini( D2 ) 14 14
Gini{low,high} is 0.458; Gini{medium,high} is 0.450. Thus, split on the {low,medium} (and {high}) since it has the lowest Gini index • All attributes are assumed continuous-valued • May need other tools, e.g., clustering, to get the possible split values • Can be modified for categorical attributes 26
Comparing Attribute Selection Measures The three measures, in general, return good results but – Information gain: • biased towards multivalued attributes
– Gain ratio: • tends to prefer unbalanced splits in which one partition is much smaller than the others
– Gini index: • biased to multivalued attributes • has difficulty when # of classes is large • tends to favor tests that result in equal-sized partitions and purity in both partitions 27
Other Attribute Selection Measures • CHAID: a popular decision tree algorithm, measure based on χ2 test for independence • C-SEP: performs better than info. gain and gini index in certain cases • G-statistic: has a close approximation to χ2 distribution • MDL (Minimal Description Length) principle (i.e., the simplest solution is preferred): – The best tree as the one that requires the fewest # of bits to both (1) encode the tree, and (2) encode the exceptions to the tree • Multivariate splits (partition based on multiple variable combinations) – CART: finds multivariate splits based on a linear comb. of attrs. • Which attribute selection measure is the best?
– Most give good results, none is significantly superior than others 28
Decision Tree Induction: An Example • Training data set: Buys_computer age
income
student
credit_rating
buys_computer
<=30 <=30 31…40 >40 >40 >40 31…40 <=30 <=30 >40 <=30 31…40 31…40 >40
high high high medium low low low medium low medium medium medium high medium
no no no no yes yes yes no yes yes yes no yes no
fair excellent fair fair fair excellent excellent fair fair fair excellent excellent fair excellent
no no yes yes yes no yes no yes yes yes yes yes no
29
Tools
References • Romi Satrio Wahono, Klasifikasi, http://romisatriawahono.net/lecture/dm/rom i-dm-04-klasifikasi-june2015.pptx