TUGAS
“DATA MINING”
Nama Kelompok :
I Putu Ari Ratna Pratama (1208605055) Putu Mega Suryawan (1208605069) Ida Bagus Surya Winantara (1208605085)
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN ILMU KOMPUTER - FMIPA
UNIVERSITAS UDAYANA BUKIT JIMBARAN
2015
ALGORITMA ID3
Pengertian
ID3 (Iterative Dichotomiser Three) atau yang disebut juga denganInduction of Decision Treeadalah suatu algoritma matematika yang digunakan untuk menghasilkan suatu pohon keputusan yang mampu mengklasifikasi suatu obyek.
Pengertian laindari ID3 yaitu ID3 merupakan sebuah metode yang digunakan untuk membangkitkan pohon keputusan.
ID3 diperkenalkan pertama kali oleh Ross Quinlan (1979).ID3 merepresentasi konsep-konsep dalam bentuk pohon keputusan.Aturan-aturan yang dihasilkan oleh ID3 mempunyai relasi yang hirarkis seperti suatu pohon (mempunyai akar, titik, cabang, dan daun). Beberapa peneliti menyebut struktur model yang dihasilkan ID3 sebagai pohon keputusan (decision tree) sementara peneliti yang lain menyebutnya pohon aturan (rule tree).
Algoritma pada ID3 berbasis pada Occam’s razor: lebih memilih pohon keputusan yang lebih kecil (teori sederhana) dibanding yang lebih besar. Tetapi tidak dapat selalu menghasilkan pohon keputusan yang paling kecil dan karena itu occam’s razor bersifat heuristik. Occam’s razor diformalisasi menggunakan konsep dari entropi informasi.
Algoritma ID3
Input : sampel training, label training, atribut
Membuat simpul akar untuk pohon yang dibuat
Jika semua sampel positif, berhenti dengan suatu pohon dengan satu simpul akar, beri label (+)
Jika semua sampel negatif, berhenti dengan suatu pohon dengan satu simpul akar beri label (-)
Jika atribut kosong, berhenti dengan suatu pohon dengan satu simpul akar, dengan label sesuai nilai yang terbanyak yang ada pada label training
Untuk yang lain, Mulai
A atribut yang mengklasifikasikan sampel dengan hasil terbaik (berdasarkan gain ratio)
Atribut keputusan untuk simpul akar A
Untuk setiap nilai, v
i, yang mungkin untuk A,
- Tambahkan cabang di bawah akar yang berhubungan dengan A=v
i- Tentukan sampel Sv
isebagai subset dari sampel yang mempunyai nilai v
iuntuk atribut A
- Jika sampel Sv
ikosong,
Di bawah cabang tambahkan simpul daun dengan label = nilai yang terbanyak yang aa pada label training
Yang lain, tambah cabang baru di bawah cabang yang sekarang C4.5 (sampel training, label training, atribut-[A])
Berhenti
Adapun sample data yang digunakan oleh ID3 memiliki beberapa syarat, yaitu :
Deskripsi atribut-nilai. Atribut yang sama harus mendeskripsikan tiap contoh dan memiliki jumlah nilai yang sudah ditentukan.
Kelas yang sudah didefinisikan sebelumnya. Suatu atribut contoh harus sudah didefinisikan, karena mereka tidak dipelajari oleh ID3.
Kelas-kelas yang diskrit. Kelas harus digambarkan dengan jelas. Kelas yang continue dipecah-pecah menjadi kategori-kategori yang relatif, misalnya saja metal dikategorikan menjadi “hard, quite hard, flexible, soft, quite soft”.
Jumlah contoh (example) yang cukup. Karena pembangkitan induktif digunakan, maka dibutuhkan test case yang cukup untuk membedakan pola yang valid dari peluang suatu kejadian.
Pemillihan atribut pada ID3 dilakukan dengan properti statistik, yang disebut dengan information gain.Gain mengukur seberapa baik suatu atribut memisahkan training example ke dalam kelas target. Atribut dengan informasi tertinggi akan dipilih. Dengan tujuan untuk mendefinisikan gain, pertama-tama digunakanlah ide dari teori informasi yang disebut entropi.Entropi mengukur jumlah dari informasi yang ada pada atribut.
Rumus untuk menghitung entropi informasi adalah :
−¿
−¿ log
2p
¿+ ¿−p
¿+ ¿ log
2p
¿Entropy ( S) ≡−p
¿Rumus untuk menghitung gain adalah :
Gain ( S , A ) ≡ Entropy ( S ) −Σ | Sv |
| S | Entropy (Sv )
Contoh
Mencatat Keadaan 14 Minggu Permainan Tenis pada Setiap Sabtu Pagi
Ming gu
Ramalan_Cu aca
Suhu Kelemba ban
Angi n
Bermain_Te nis
M1 Cerah Panas Tinggi Lema
h
Tidak
M2 Cerah Panas Tinggi Kuat Tidak
M3 Mendung Panas Tinggi Lema h
Ya
M4 Hujan Sejuk Tinggi Lema
h
Ya
M5 Hujan Dingin Normal Lema h
Ya
M6 Hujan Dingin Normal Kuat Tidak
M7 Mendung Dingin Normal Kuat Ya
M8 Cerah Sejuk Tinggi Lema
h
Tidak
M9 Cerah Dingin Normal Lema h
Ya
M10 Hujan Sejuk Normal Lema
h
Ya
M11 Cerah Sejuk Normal Kuat Ya M12 Mendung Sejuk Tinggi Kuat Ya
M13 Mendung Panas Normal Lema h
Ya
M14 Hujan Sejuk Tinggi Kuat Tidak
Atribut Tujuan adalah Bermain Tenis yang memiliki value ya atau tidak.
Atribut adalah Ramalan_Cuaca, Suhu, Kelembaban, dan Angin.
Algoritma Dan Flowchart
Entropy adalah formula untuk menghitung homogenitas dari sebuah sample/contoh.
Solusi menggunakan entropy dari contoh kasus di atas :
S adalah koleksi dari 14 contoh dengan 9 contoh positif dan 5 contoh negatif, ditulis dengan notasi [9+,5-].
Positif di sini maksudnya value Bermain_Tenis = Ya sedangkan negatif sebaliknya.
Entropy dari S adalah :
Entropy(S) =
ci 1
- p
ilog
2p
ip
i =N Zi
Z
i= contoh positif + contoh negatif N = jumlah data
Entropy([9+,5-]) = - (9/14) log2 (9/14) - (5/14) log2 (5/14)
= - (0.6429) ((log (9/14))/log 2) - (0.3571) ((log (5/14))/log 2)
= - (0.6429) (-0.1919/0.3010) - (0.3571) (-0.4472/0.3010)
= - (0.6429) (-0.6375) - (0.3571) (-1.4857)
= 0.4098 + 0.5305
= 0.94029 Catatan :
Entropy(S) = 0, jika semua contoh pada S berada dalam kelas yang sama.
Entropy(S) = 1, jika jumlah contoh positif dan jumlah contoh negative dalam S adalah sama.
0 < Entropy(S) < 1, jika jumlah contoh positif dan jumlah contoh negatif dalam S tidak sama.
Gain(S,A) adalah Information Gain dari sebuah atribut A pada koleksi contoh S :
Gain(S,A) = Entropy(S) -
( )| |
|
|
A Values
v
S
Sv
Entropy(S
v)
1. Values(Angin) = Lemah, Kuat SLemah = [6+,2-]
SKuat = [3+,3-]
Gain(S,Angin) = Entropy(S) - (8/14)Entropy(S
Lemah) - (6/14)Entropy(S
Kuat)
= 0.94029 - (8/14)0.81128 - (6/14)1.0000
= 0.04813
2. Values(Kelembaban) = Tinggi, Normal
S
Tinggi= [3+,4-]
S
Normal= [6+,1-]
Gain(S,Kelembaban) = Entropy(S) - (7/14)Entropy(S
Tinggi) - (7/14)Entropy(S
Normal)
= 0.94029 - (7/14)0.98523 - (7/14)0.59167
= 0.15184
3. Values(Suhu) = Panas, Sejuk, Dingin
S
Panas= [2+,2-]
S
Sejuk= [4+,2-]
S
Dingin= [3+,1-]
Gain(S,Suhu) = Entropy(S) - (4/14)Entropy(S
Panas) - (6/14)Entropy(S
Sejuk) -
(4/14)Entropy(S
Dingin)
= 0.94029 - (4/14)1.00000 - (6/14)0.91830 - (4/14)0.81128
= 0.02922
4. Values(Ramalan_Cuaca) = Cerah, Mendung, Hujan
S
Cerah= [2+,3-]
S
Mendung= [4+,0-]
S
Hujan= [3+,2-]
Gain(S,Ramalan_Cuaca) = Entropy(S) - (5/14)Entropy(S
Cerah) - (4/14)Entropy(S
Mendung) -
(5/14)Entropy(S
Hujan)
= 0.94029 - (5/14)0.97075 - (4/14)1.00000 - (5/14)0.97075
= 0.24675
Jadi, information gain untuk 3 atribut yang ada adalah : Gain(S,Angin) = 0.04813
Gain(S,Kelembaban) = 0.15184 Gain(S,Suhu) = 0.02922
Gain(S,Ramalan_Cuaca) = 0.24675
Tampak bahwa attribute Ramalan_Cuaca akan menyediakan prediksi terbaik untuk target attribute Bermain_Tenis.
[M1, M2, ..., M14]
[9+,5-]
Ramalan_Cuaca
Hujan
Cerah Mendung
Ya
?
?
[M4, M5, M6, M10, M14]
[3+,2-]
[M1, M2, M8, M9, M11]
[2+,3-]
Untuk node cabang Ramalan_Cuaca = Cerah, SCerah = [M1, M2, M8, M9, M11]
Ming gu
Ramalan_Cu aca
Suhu Kelemba ban
Angi n
Bermain_Te nis
M1 Cerah Panas Tinggi Lema
h
Tidak
M2 Cerah Panas Tinggi Kuat Tidak
M8 Cerah Sejuk Tinggi Lema
h
Tidak
M9 Cerah Dingin Normal Lema
h
Ya
M11 Cerah Sejuk Normal Kuat Ya
1. Values(Suhu) = Panas, Sejuk, Dingin
S
Panas= [0+,2-]
S
Sejuk= [1+,1-]
S
Dingin= [1+,0-]
Gain(S
Cerah,Suhu) = Entropy(S
Cerah) - (2/5)Entropy(S
Panas) - (2/5)Entropy(S
Sejuk) -
(1/5)Entropy(S
Dingin)
= 0.97075 - (2/5)0.00000 - (2/5)1.00000 - (1/5)0.00000
= 0.57075
2. Values(Kelembaban) = Tinggi, Normal
S
Tinggi= [0+,3-]
S
Normal= [2+,0-]
Gain(S
Cerah,Kelembaban) = Entropy(S
Cerah) - (3/5)Entropy(S
Tinggi) - (2/5)Entropy(S
Normal)
= 0.97075 - (3/5)0.00000 - (2/5)0.00000
= 0.97075
3. Values(Angin) = Lemah, Kuat
S
Lemah= [1+,2-]
S
Kuat= [1+,1-]
Gain(S
Cerah,Angin) = Entropy(S
Cerah) - (3/5)Entropy(S
Lemah) - (2/5)Entropy(S
Kuat)
= 0.97075 - (3/5)0.91830 - (2/5)1.00000
= 0.01997
Atribut Kelembaban menyediakan prediksi terbaik pada level ini.
Untuk node cabang Ramalan_Cuaca = Hujan, SHujan = [M4, M5, M6, M10, M14]
Mingg u
Ramalan_Cua ca
Suhu Kelembab an
Angin Bermain_Teni s
M4 Hujan Sejuk Tinggi Lema
h
Ya [M1, M2, ..., M14]
[9+,5-]
Cerah
Ramalan_Cuaca
Hujan Mendung
[M1, M2, M8, M9, M11]
[2+,3-]
Ya ? Kelembaban
Tinggi Normal
Tidak Ya
[M4, M5, M6, M10, M14]
[3+,2-]
[M1, M2, M8]
[0+,3-]
[M9, M11]
[2+,0-]
M5 Hujan Dingin Normal Lema h
Ya
M6 Hujan Dingin Normal Kuat Tidak
M10 Hujan Sejuk Normal Lema
h
Ya
M14 Hujan Sejuk Tinggi Kuat Tidak
1. Values(Suhu) = Sejuk, Dingin (Tidak ada suhu = panas saat ini)
S
Sejuk= [2+,1-]
S
Dingin= [1+,1-]
Gain(S
Hujan,Suhu) = Entropy(S
Hujan) - (3/5)Entropy(S
Sejuk) - (2/5)Entropy(S
Dingin)
= 0.97075 - (3/5)0.91830 - (2/5)1.00000
= 0.01997
2. Values(Kelembaban) = Tinggi, Normal
S
Tinggi= [1+,1-]
S
Normal= [2+,1-]
Gain(S
Hujan,Kelembaban) = Entropy(S
Hujan) - (2/5)Entropy(S
Tinggi) - (3/5)Entropy(S
Normal)
= 0.97075 - (2/5)1.00000 - (3/5)0.91830
= 0.01997 3. Values(Angin) = Lemah, Kuat
S
Lemah= [3+,0-]
S
Kuat= [0+,2-]
Gain(S
Hujan,Angin) = Entropy(S
Hujan) - (3/5)Entropy(S
Lemah) - (2/5)Entropy(S
Kuat)
= 0.97075 - (3/5)0.00000 - (2/5)0.00000
= 0.97075
Atribut Angin menyediakan prediksi terbaik pada level ini.
Algoritma :
If Ramalan_Cuaca = Cerah AND Kelembaban = Tinggi THEN Bermain_Tenis = Tidak
If Ramalan_Cuaca = Cerah AND Kelembaban = Normal THEN Bermain_Tenis = Ya
If Ramalan_Cuaca = Mendung THEN Bermain_Tenis = Ya
If Ramalan_Cuaca = Hujan AND Angin = Kuat THEN Bermain_Tenis
= Tidak
If Ramalan_Cuaca = Hujan AND Angin = Lemah THEN Bermain_Tenis = Ya
Ramalan_Cuaca Suhu Kelembaban Angin Bermain_Tenis
Cerah Panas Tinggi Kuat Tidak
Cerah Panas Tinggi Lemah Tidak
Cerah Panas Normal Kuat Ya
Cerah Panas Normal Lemah Ya
Cerah Sejuk Tinggi Kuat Tidak
Cerah Sejuk Tinggi Lemah Tidak
Cerah Sejuk Normal Kuat Ya
Cerah Sejuk Normal Lemah Ya
Cerah Dingin Tinggi Kuat Tidak
Cerah Dingin Tinggi Lemah Tidak
Cerah Dingin Normal Kuat Ya
Cerah Dingin Normal Lemah Ya
Mendung Panas Tinggi Kuat Ya
Mendung Panas Tinggi Lemah Ya
Mendung Panas Normal Kuat Ya
Mendung Panas Normal Lemah Ya
Mendung Sejuk Tinggi Kuat Ya
Mendung Sejuk Tinggi Lemah Ya
Mendung Sejuk Normal Kuat Ya
Mendung Sejuk Normal Lemah Ya
Mendung Dingin Tinggi Kuat Ya
Mendung Dingin Tinggi Lemah Ya
Mendung Dingin Normal Kuat Ya
Mendung Dingin Normal Lemah Ya
Hujan Sejuk Tinggi Kuat Tidak
Hujan Sejuk Tinggi Lemah Ya
Hujan Sejuk Normal Kuat Tidak
Hujan Sejuk Normal Lemah Ya
Hujan Dingin Tinggi Kuat Tidak
Hujan Dingin Tinggi Lemah Ya
Hujan Dingin Normal Kuat Tidak
Hujan Dingin Normal Lemah Ya
Flowchart :
ALGORITMA C4.5
Pengertian
Algoritma C4.5 merupakan algoritma yang digunakan untuk membangun
sebuah pohon keputusan (decision tree) dari data.Algoritma C4.5 merupakan
pengembangan dari algoritma ID3 yang juga merupakan algoritma untuk
membangun sebuah pohon keputusan.Algoritma C4.5 secara rekursif
mengunjungi tiap simpul keputusan, memilih percabangan optimal, sampai tidak
ada cabang lagi yang mungkin dihasilkan.
Algoritma C4.5 merupakan salah satu algoritma machine learning. Dengan algoritma ini, mesin(komputer) akan diberikan sekelompok data untuk dipelajari yang disebut learning dataset.Kemudian hasil dari pembelajaran selanjutnya akan digunakan untuk mengolah data-data yangbaru yang disebut test dataset. Karena algoritma C4.5 digunakan untuk melakukan klasifikasi,jadi hasil dari pengolahan test dataset berupa pengelompokkan data ke dalam kelas-kelasnya.
Algoritma C4.5
Algoritma C4.5 menggunakan konsep information gain atau entropy reduction untuk memilih percabangan yang optimal. Misalkan terdapat sebuah variabel X dimana memiliki sejumlah k nilai yang mungkin dengan probabilitas p1, p2, …, pk. Entropy menggambarkan keseragaman data dalam variabel X.
Entropy variabel X (H(X)) dihitung dengan menggunakan persamaan sebagai berikut.
H ( X )=− ∑
j
P
jlog
2( P
j)
Misalkan terdapat sebuah kandidat simpul yang akan dikembangkan (S), yang membagi data T ke dalam sejumlah subset T1, T2, …, Tk. Dengan menggunakan persamaan entropy diatas, nilai entropy tiap subset dihitung (HS(Ti)). Kemudian total bobot subset simpul S dihitung dengan menggunakan persamaan sebagai berikut.
H
s( T ) = ∑
i=1 k
P
iH
s( T
i)
dimana Pi merupakan proporsi record pada subset i. Semakin seragam sebuah subset terhadap kelas-kelas pembaginya, maka semakin kecil nilai entropy. Nilai entropy paling kecil adalah 0, yang dicapai ketika record subset berada pada satu kelas yang sama. Sedangkan nilai entropy paling tinggi adalah 1, yang dicapai ketika record subset terbagi sama rata pada untuk tiap kelas. Semakin kecil nilai entropy, semakin baik subset tersebut.
Dari nilai-nilai entropy yang didapat, nilai information gain untuk simpul S
dihitung melaui persamaan sebagai berikut.
gain(S )=H (T )−H
s(T )
Pada algoritma C4.5, nilai information gain dihitung untuk seluruh simpul yang mungkin dikembangkan. Simpul yang dikembangkan adalah simpul yang memiliki nilai information gain yang paling besar.
Contoh
Berikut ini adalah uraian langkah-langkah dalam algoritma C4.5 untuk menyelesaikan kasussuatu pertandingan tenis akan dilakukan atau tidak, berdasarkan keadaan cuaca, suhu,kelembaban, dan angin. Data yang telah ada pada Tabel 1, akan digunakan untuk membentukpohon keputusan. Pada Tabel 1, atribut-atributnya adalah Cuaca, Suhu, Kelembaban, dan Berangin. Setiap atributmemiliki 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 (lihat Tabel 2).
Tabel 1. Learning Dataset
No Cuaca Suhu Kelembaba
n
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
Kemudian hitung entropi dengan rumus sebagai berikut :
Entropi ( S ) = ∑
j=1 k
−P
jlog
2P
jKeterangan :
S adalah himpunan (dataset) kasus
k adalah banyaknya partisi S
Pj adalah probabilitas yang di dapat dari Sum(Ya) dibagi Total Kasus
Jadi Entropi ( S ) = ( − ( 10 14 ) × log
2( 10 14 ) ) + ( − ( 14 4 ) × log
2( 14 4 ) ) =0.8631
Tabel 2. Hasil Perhitungan Pada Dataset
Total Kasus Sum (Ya) Sum (Tidak) Entropi Total
14 10 4 0.8631
Setelah mendapatkan entropi dari keseluruhan kasus, lakukan analisis pada setiap atribut dannilai-nilainya dan hitung entropinya seperti yang ditampilkan pada Tabel 3.
Tabel 3. Analisis Atribut, Nilai, Banyaknya Kejadian Nilai, Entropi dan Gain
Node Atribut Nilai Sum
(Nilai)
Sum (Ya)
Sum (Tidak)
Entropi Gain
1 Cuaca Berawa
n
4 4 0 0
Hujan 5 4 1 0.7219
Cerah 5 2 3 0.9709
0.2585
Suhu Dingin 4 4 0 0
Panas 4 2 2 1
Sejuk 6 4 2 0.9182
0.1838 Kelembaba
n
Tinggi 7 3 4 0.9852
Normal 7 7 0 0
0.3705
Berangin Salah 8 6 2 0.8112
Benar 6 2 4 0.9182
0.0059
Untuk menghitung gain setiap atribut rumusnya adalah :
¿ S
i∨ ¿
¿ S∨¿× Entropi(S
i)
¿
Gain ( A )=Entropi ( S)− ∑
i=1 k
¿
Jadi Gain (Cuaca)=0.8631− ( ( 14 4 ) × 0+ ( 14 5 ) × 0.7219+ ( 14 5 ) ×0.9709 ) =0.2585
Hitung pula Gain (Suhu), Gain (Kelembaban), dan Gain (Berangin). Hasilnya dapat dilihat padaTabel 3.Karena nilai gain terbesar adalah Gain (Kelembaban).Maka Kelembaban menjadi nodeakar (root node).Kemudian pada kelembaban normal, memiliki 7 kasus dansemuanya memiliki jawaban Ya (Sum(Total) / Sum(Ya) = 7/7 = 1).Dengan demikian kelembaban normal menjadi daun atau leaf.Lihat Tabel 3 yang selnya berwarna hijau.
Gambar. Pohon Keputusan Node 1 (root node)
Berdasarkan pembentukan pohon keputusan node 1 (root node), Node 1.1 akan dianalisis lebihlanjut. Untuk mempermudah, Tabel 1 difilter, dengan mengambil data yang memilikiKelembaban = Tinggi sehingga jadilah Tabel 4.
Tabel 4. Data yang Memiliki Kelembaban = Tinggi
No Cuaca Suhu Kelembaba
n
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 Cerah Sejuk Tinggi Salah Tidak
6 Berawan Sejuk Tinggi Benar Ya
7 Hujan Sejuk Tinggi Benar Tidak
Kemudian data di Tabel 4 dianalisis dan dihitung lagi entropi atribut Kelebaban Tinggi danentropi setiap atribut serta gainnya sehingga hasilnya seperti data pada Tabel 5. Setelah itutentukan pilih atribut yang memiliki gain tertinggi untuk dibuatkan node berikutnya.
Tabel 5. Hasil Analisis Node 1.1 Kelembaban
Tinggi
Sum (Ya) Sum (Tidak) Entropi
7 3 4 0.9852
Node Atribut Nilai Sum
(Nilai)
Sum (Ya)
Sum (Tidak)
Entropi Gain
1 Cuaca Berawa
n
2 2 0 0
Hujan 2 1 1 1
Cerah 3 0 3 0
0.6995
Suhu Dingin 0 0 0 0
Panas 3 1 2 0.9182
Sejuk 4 2 2 1
0.0202
Berangin Salah 4 2 2 1
Benar 3 2 1 0.9182
0.0202
Dari Tabel 5, gain tertinggi ada pada atribut Cuaca, dan Nilai yang dijadikan daun
atau leafadalah Berawan dan Cerah. Jika divualisasi maka pohon keputusan
tampak seperti Gambar (Pohon Keputusan Analisis Node 1.1).Untuk menganalisis
node 1.1.2, lakukan lagi langkah-langkah yang sama seperti sebelumnya.Hasilnya
ditampilkan pada Tabel 6 dan Gambar (Pohon Keputusan Akhir).
Gambar. Pohon Keputusan Analisis Node 1.1
Tabel 6.Hasil Analisi Node 1.1.2.
No Cuaca Suhu Kelembaba
n
Berangin Main
1 Hujan Sejuk Tinggi Salah Ya
2 Hujan Sejuk Tinggi Benar Tidak
Kelembaban Tinggi & Hujan
Sum (Ya) Sum (Tidak) Entropi
2 1 1 1
Node Atribut Nilai Sum
(Nilai)
Sum (Ya)
Sum (Tidak)
Entropi Gain
1 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
Gambar. Pohon Keputusan Akhir ALGORITMA CART
Pengertian
Metode CART ini pertama kali diajukan oleh Leo Breiman et al. pada tahun 1984.Pohon keputusan yang dihasilkan CART merupakan pohon biner dimana tiap simpul wajib memiliki dua cabang. CART secara rekursif membagi records pada data latihan ke dalam subset-subset yang memiliki nilai atribut target (kelas) yang sama.
Algoritma CART
Algoritma CART mengembangkan pohon keputusan dengan memilih percabangan yang paling optimal bagi tiap simpul.Pemilihan dilakukan dengan menghitung segala kemungkinan pada tiap variabel.
Misalkan Ф(s|t) merupakan nilai “kebaikan” kandidat cabang s pada simpul t, maka nilai Ф(s|t) dapat dihitung sebagai berikut:
¿ P ( j | t
L) − P( j∨t
R)∨¿
∅ ( s | t ) =2 P
LP
R∑
j=1
¿kelas
¿
Dimana
t
L=simpul anak kiri dari simpult t
R=simpul anak kanan dari simpul t
P
L= jumlah record pada t
Ljumlah seluruh record pada datalatihan P
R= jumlahrecord padat
Rjumlah seluruhrecord pada datalatihan P( j∨t
L)= jumlah record kelas j pada t
Ljumlahrecord pada simpult P( j∨t
R)= jumlahrecord kelas j pada t
Rjumlahrecord pada simpult
Nilai
¿ P ( j | t
L) − P( j∨t
R)∨¿
∑
j=1¿kelas
¿ maksimal ketika record yang berada pada
cabang kiri atau kanan simpul memiliki kelas yang sama (seragam). Nilai maksimal yang dicapai sama dengan jumlah kelas pada data. Misalkan jika data
terdiri atas dua kelas, maka nilai maksimal
¿ P ( j | t
L) −P( j∨t
R)∨¿
∑
j=1¿kelas
¿ adalah 2.
Semakin seragam record pada cabang kiri atau kanan, maka semakin tinggi
nilai
¿ P ( j | t
L) − P( j∨t
R)∨¿
∑
j=1¿kelas
¿ . Nilai maksimal 2P
LP
Rsebesar 0.5 dicapai ketika
cabang kiri dan kanan memiliki jumlah record yang sama. Kandidat percabangan yang dipilih adalah kandidat yang memiliki nilai Ф(s|t) paling besar.
Contoh
Anda diberi data mengenai 8 orang nasabah yang pernah memperoleh kredit dari Bank Indra. Data tersebut meliputi besarnya tabungan (yang berjenis kategorial:
rendah, sedang, atau tinggi), besarnya aset (yang berjenis kategorial: rendah, sedang, atau tinggi), besarnya pendapatan pertahun (dalam ribuan dollars, yang berjenis numerik dan berskala ration) dan risiko kredit (yang berjenis kategorial:
risiko baik atau buruk)
Nasabah Tabungan Aset Pendapatan Risiko Kredit
A Sedang Tinggi 75 Baik
B Rendah Rendah 50 Buruk
C Tinggi Sedang 25 Buruk
D Sedang Sedang 50 Baik
E Rendah Sedang 100 Baik
F Tinggi Tinggi 25 Baik
G Rendah Rendah 25 Buruk
H Sedang Sedang 75 Baik
Klasifikasi Cart
Noktah yang berbentuk elips disebut dengan noktah keputusan. Noktah jenis ini adalah notkah yang masih akan bercabang karena pada noktah ini suatu record belum ditentukan klasifikasinya.
Noktah keputusan pertama biasanya disebut noktah dasar
Noktah yang berbentuk persegi panjang disebut dengan noktah terminasi
Pembahasan Permasalahan
Pertama, kita memiliki data dari 8 nasabah seperti tertera di tabel sebelumnya dan ingin memperoleh pengetahuan yang dapat diaplikasikan kepada mereka yang berpotensi menjadi nasabah ke-9, ke-10, etc sehingga dengan mengetahui aset, tabungan, dan pendapatan, ,kita dapat menentukan risiko kredit mereka
Kedua, data itu kelak akan kita jadikan input bagi suatu algoritma
Ketiga, sebagai keluaran dari algoritma, kita akan memperoleh pengetahuan yang secara sederhana dapat direpresentasikan dalam bentuk pohon keputusan
Langkah-Langkah Algoritma CART :
Pertama, susun calon cabang (candidate split). Penyusunan ini dlakukan terhadap seluruh variabel prediktor. Daftar yang berisi calon cabang disebut daftar calon cabang mutakhir.
Calon cabang prediktor tabungan
Tabungan=rendah, dan tabungan={sedang, tinggi}
Tabungan=sedang, dan tabungan={rendah, tinggi}
Tabungan=tinggi, dan tabungan={rendah, sedang}
Calon cabang prediktor aset
Aset=rendah, dan aset={sedang, tinggi}
Aset=sedang, dan aset={rendah, tinggi}
Aset=tinggi, dan aset={rendah, sedang}
Calon cabang preditor pendapatan
Pendapatan ≤ 25.000 dan pendapatan > 25.000
Pendapatan ≤ 50.000 dan pendapatan > 50.000
Pendapatan ≤ 75.000 dan pendapatan > 75.000
Nama Calon Cabang Calon Cabang Kiri Calon Cabang Kanan
1 tabungan=rendah tabungan={sedang, tinggi}
2 tabungan=sedang tabungan={rendah, tinggi}
3 tabungan=tinggi tabungan={rendah, sedang}
4 aset=rendah aset={sedang, tinggi}
5 aset=sedang aset={rendah, tinggi}
6 aset=tinggi aset={rendah, sedang}
7 pendapatan <= 25.000 pendapatan > 25.000 8 pendapatan <= 50.000 pendapatan > 50.000 9 pendapatan <= 75.000 pendapatan > 75.000
Kedua, menilai kinerja keseluruhan calon cabang yang ada di daftar calon
cabang mutakhir dengan jalan menghitung nilai besaran kesesuaian. Kinerja
setiap calon cabang akan diukur melalui ukuran yang disebut dengan
kesesuaian (goodness). Kesesuain dari calon cabang s pada noktah keputusan
t dilambangkan dengan ( ɸ s|t)
¿ P ( j | t
L) − P( j∨t
R)∨¿
∅ ( s | t ) =2 P
LP
R∑
j=1
¿kelas