21
1. Pohon Keputusan Decision Tree
Pohon keputusan merupakan salah satu metode klasifikasi yang menggunakan representasi struktur pohon tree dimana setiap simpul internal
internal node merupakan sebuah atribut, setiap cabang merupakan nilai atribut, dan setiap simpul daun leaf node atau simpul terminal merupakan label class, serta
simpul yang paling atas adalah simpul akar root node Han, et al, 2006: 291.
Gambar 2.3 Bentuk Pohon Keputusan
Berikut penjelasan mengenai 3 jenis simpul yang terdapat pada pohon keputusan:
a. Simpul Akar
Simpul akar merupakan simpul yang paling atas, pada simpul ini tidak mempunyai input dan bisa tidak mempunyai output atau mempunyai
output lebih dari satu. b.
Simpul Internal Simpul internal merupakan simpul percabangan dari simpul akar, pada
simpul ini hanya ada satu input dan mempunyai minimal dua output.
Simpul Internal Simpul Akar
Simpul Daun
22 c.
Simpul Daun Simpul daun merupakan simpul terakhir, pada simpul ini hanya terdapat
satu input dan tidak mempunyai output, simpul ini sering disebut simpul terminal serta merupakan suatu keputusan.
Dalam kaitannya dengan sebuah basis data, himpunan data dapat berupa tabel, sedangkan sampel adalah record. Himpunan data dapat memiliki atribut yang
dapat bertipe diskrit maupun kontinu. Ilustrasi dari pohon keputusan berdasarkan tipe atributnya dapat dijelaskan pada Gambar 2.4 Han, et al, 2001.
Gambar 2.4 Ilustrasi Model Pohon Keputusan Berdasarkan Tipe Atributnya
Berdasarkan Gambar 2.4 jika atribut prediktor bertipe diskret , maka
cabang simpul dibuat untuk setiap nilai pada atribut diskrit tersebut , , …
. Sedangkan jika atribut prediktor bertipe kontinu atau numerik
, maka cabang simpul dibuat untuk dua buah nilai yaitu
�ℎ
dan
�ℎ
, dimana
�ℎ
adalah nilai ambang dari . Konsep dasar pohon keputusan ditunjukkan pada
Gambar 2.5.
23
Algoritma: Pembentukan_Pohon_Keputusan, Pembentukan pohon keputusan dari
tupel pelatih pada partisi data, .
Masukan:
Partisi data, , yang merupakan satu set data tupel pelatihan dan label kelas
yang berkaitan;
Daftar_atribut, kumpulan beberapa atribut;
Metode_seleksi_atribut, sebuah prosedur untuk menentukan kriteria terbaik pemecahan data tupel ke dalam kelas masing-masing. Kriteria ini terdiri dari
pemecahan_atribut dan kemungkinannya, baik pemecahan simpul atau pemecahan bagian.
Hasil: pohon keputusan Metode:
1 Bentuk sebuah simpul �;
2
jika tupel di ada pada kelas yang sama, , maka
3 kembali
� sebagai simpul daun yang diberi label kelas ; 4
jika daftar_atribut kosong maka
5 kembali
� sebagai simpul yang diberi label dengan kelas terbanyak di ; kelas terbanyak
6
berlaku metode_seleksi_atribut , daftar_atribut untuk menemukan
pemecahan kriteria terbaik; 7
beri label � dengan kriteria_pemecahan; 8
jika pemecahan_atribut bernilai diskrit dan beberapa pemecahan diperbolehkan maka tidak terbatas untuk pohon biner
9 daftar_atribut
daftar_atribut – pemecahan_atribut; hapus pemecahan_atribut
10
Untuk setiap j dari pemecahan_kriteria
11 kemudian
menjadi kumpulan data tupel di dengan hasil ; partisi
12
jika kosong maka
13 Lampirkan sebuah simpul daun dengan label kelas terbanyak
di untuk simpul �;
14
Untuk lainnya lampirkan simpul kembali dengan pembentukan
_pohon_keputusan , daftar _atribut pada
�; berakhir untuk
15 kembali �;
Gambar 2.5 Algoritma Dasar Pohon Keputusan
24 Berdasarkan Gambar 2.5, input algoritma dasar terdiri dari partisi data ,
daftar atribut attribute list, dan metode seleksi atribut attribute selection method. Proses untuk membangun sebuah pohon keputusan seperti yang ditunjukkan pada
Gambar 2.5 di atas adalah sebagai berikut: 1.
Pohon dimulai dengan simpul tunggal � yang merepresentasikan tupel training pada langkah 1.
2. Jika semua tupel di berasal dari kelas yang sama, maka simpul � menjadi
daun dan diberi label kelas tersebut langkah 2 dan 3. Langkah 4 dan 5 merupakan kondisi akhir. Semua kondisi akhir dijelaskan pada akhir algoritma.
3. Jika tidak, maka metode seleksi atribut digunakan untuk memilih atribut split,
yaitu atribut terbaik dalam memisahkan tupel ke dalam kelas masing-masing langkah 6. Atribut tersebut menjadi atribut tes pada simpul
� langkah 7. 4.
Terdapat dua kemungkinan yang dapat mempartisi . Apabila � atribut split pada simpul
� dan � memiliki sejumlah nilai yang berbeda { , , …
�
} maka pada data training dapat terjadi langkah 8 dan 9:
a. Jika � memiliki nilai-nilai bersifat diskrit, maka sebuah cabang dibentuk
untuk setiap nilai �. Nilai total cabang yang akan dibentuk sebanyak
cabang. Partisi terdiri dari record yang terdapat pada yang memiliki
nilai untuk atribut �. Selanjutnya atribut � dihapus dari daftar atribut.
b. Jika � memiliki nilai yang bersifat kontinu, maka hasil pengujian simpul
� akan menghasilkan dua cabang. Kedua cabang tersebut adalah � split point dan
� split point. Split point merupakan keluaran metode seleksi atribut sebagai bagian dari kriteria untuk melakukan partisi. Selanjutnya
25 dipartisi, sehingga
terdiri dari record dimana � split point dan
adalah sisanya. 5.
Cabang akan dibuat untuk setiap nilai pada atribut tes dan tupel pada data training akan dipartisi lagi langkah 10 dan langkah 11.
6. Proses pembentukan ini menggunakan proses rekursif untuk membentuk
pohon pada setiap data partisi langkah 14. 7.
Proses rekursif akan berhenti jika telah mencapai kondisi sebagai berikut: a.
Semua tupel pada simpul berada di dalam satu kelas langkah 2 dan 3. b.
Tidak ada atribut lainnya yang dapat digunakan untuk mempartisi tupel lebih lanjut langkah 4. Selanjutnya dalam hal ini, akan diterapkan jumlah
terbanyak langkah 5. Hal tersebut berarti mengubah sebuah simpul menjadi daun dan memberi label dengan kelas pada jumlah terbanyak.
Sebagai alternatifnya, distribusi kelas pada simpul ini dapat disimpan. c.
Tidak ada tupel yang digunakan untuk mencabang, suatu partisi kosong
langkah 12. Selanjutnya dalam hal ini, sebuah daun dibuat dan diberi label dengan kelas yang memiliki kelas terbanyak di langkah 13.
8. Kembali menghasilkan pohon keputusan langkah 15 Han, et al, 2012:331-
336; Neni Miswaningsih, 2015: 37-39. Pohon keputusan memiliki beberapa cara dalam menentukan ukuran data
dalam bentuk pohon, salah satunya adalah dengan algoritma C4.5. Algoritma C4.5 menggunakan information gain sebagai penentu simpul akar, internal, dan daun.
Misalkan � merupakan simpul partisi dari . Apabila terdapat nilai
information gain tertinggi maka akan terpilih sebagai atribut pemisah untuk simpul
26 �. Perhitungan informasi yang dibutuhkan untuk mengklasifikasi pada tupel
dinyatakan sebagai berikut: = − ∑
log
=
.
dimana merupakan banyaknya jenis kategori nilai pada atribut C,
=
|
,�
| | |
merupakan probabilitas dari tupel yang mempunyai kelas . Info merupakan rata-rata dari informasi yang dibutuhkan untuk mengetahui label kelas dari tupel .
juga sering dikenal sebagai entropy dari tupel . Sebagai ilustrasi
diberikan Tabel 2.1. Tabel 2.1 Banyaknya Kelas pada Tupel
Kelas
frekuensi − log
−log −log
− log − p log
− log
Apabila diberikan tupel dengan dua pengklasifikasian yaitu kelas , dan
, dengan frekuensi
dan serta adalah proporsi dari setiap kelas, maka
= +
untuk analog dengan perhitungan
. Perhitungan
− log dilakukan untuk mentransformasi masing-masing
proporsi kelas menjadi informasi dalam bentuk bit atau bilangan basis 2. Informasi tersebut dapat juga dipandang sebagai jumlah informasi yang dapat dikodekan
menjadi satu atau nol.
27 Nilai
− log akan positif bila
lebih besar dari nol dan kurang dari satu. Ketika
= maka nilai dari − log adalah nol, sehingga nilai
− log diantara bilangan positif atau nol pada data training. Nilai
= − ∑
log
=
adalah nol jika dan hanya jika semua data memiliki klasifikasi yang sama dimana probabilitasnya adalah satu. Sebagai contoh diberikan Tabel 2.2.
Tabel 2.2 Contoh Perhitungan Kelas
frekuensi 9
5 0,643
0,357 − log
0,637 1,485
− log 0,409
0,531 Tabel 2.2 merupakan data penjualan komputer, dimana
adalah membeli komputer dan
adalah tidak membeli komputer. Berdasarkan Tabel 2.2 = ,
+ , = ,
, nilai ≠ , artinya data belum
memiliki klasifikasi kelas yang sama, sehingga dibutuhkan perhitungan lanjutan untuk menemukan simpul akar dalam pembentukan pohon keputusan.
Selanjutnya misalkan terdapat atribut � yang memiliki nilai yang berbeda
{ , , …
�
}. Atribut � dapat digunakan untuk membagi ke dalam partisi { , , … ,
�
}, dimana memuat tupel yang memiliki nilai
dari �. Sebagai
ilustrasi perhitungan entropy, diberikan Tabel 2.3. Tabel 2.3 Kelas Tupel D Berdasarkan Partisi Atribut
� �
Kelas Total
Total
28 Tabel 2.3 menunjukkan jumlah tupel
dengan partisi atribut � yang
mempunyai nilai kategori ,
serta pengklasifikasian sebanyak dua kelas yaitu , . Dimana
, … , merupakan jumlah sampel pada subset yang mempunyai
nilai ,
yang berada pada kelas ,
kemudian ,
merupakan jumlah sampel yang mempunyai nilai
, , dan
, merupakan jumlah sampel
kategori kelas , , maka nilai dari entropy atribut � dapat dihitung sebagai
berikut: � =
× − log
− log
− log
+ × −
log −
log −
log
Rumus secara umum dalam mencari nilai entropy dari subset � sebagai
berikut:
�
= � = ∑
| | | |
� =
× .
dimana � adalah entropy dari subset �, v merupakan banyaknya jenis kategori
nilai pada subset �,
| | | |
merupakan bobot dari subset dan jumlah sampel pada subset yang mempunyai nilai dari
�, dibagi dengan jumlah tupel dari . Entropy dari subset
� merupakan informasi harapan yang dibutuhkan untuk mengklasifikasi suatu tupel dari berdasarkan partisi dari atribut
�. Menurut Han, et al 2012: 337, nilai information gain dari atribut
� pada subset dapat dihitung dengan persamaan berikut:
� = − � .
29 Information gain didefinisikan sebagai perbedaan diantara informasi asli
yang dibutuhkan dengan jumlah informasi baru yang didapatkan dari partisi �.
Atribut � yang memiliki nilai information gain tertinggi dipilih sebagai pemisah
atribut pada simpul �
Proses untuk menghitung nilai � bergantung dari nilai suatu atribut. Jika
adalah atribut diskrit, maka tupel dibagi menjadi sub tupel … , dimana
jumlah nilai pada atribut dan
adalah sub tupel yang memiliki nilai atribut . Jika
adalah atribut kontinu, maka sub tupel dibagi menjadi dua sub tupel
�
dan
�
dengan = { |
} dan = { | }, dimana
merupakan sebuah nilai ambang split point. Nilai split information digunakan pada pencarian nilai gain ratio untuk
mengatasi bias terhadap atribut yang memiliki banyak nilai unik. Persamaan split information dan gain ratio dinyatakan sebagai berikut:
�
= − ∑ | |
| | × | |
| |
� =
.
� = �
� .
Apabila atribut tersebut memiliki nilai gain ratio terbesar maka atribut tersebut terpilih sebagai atribut split pada konstruksi pohon keputusan Han, et al,
2012: 337-339. Sebagai contoh penerapan decision tree C4.5 dengan perhitungan manual pada sebuah kasus pelanggan AllElectronic. Tabel 2.4 merupakan data
training dari database pelanggan AllElectronic atau disebut dengan partisi tupel .
30 Tabel 2.4 Keputusan Membeli Komputer
RID age income
student credit_rating
Class_ buys_computer
1 youth
high no
fair no
2 youth
high no
excellent no
3 middle_aged
high no
fair yes
4 senior
medium no
fair yes
5 senior
low yes
fair yes
6 senior
low yes
excellent no
7 middle_aged
low yes
excellent yes
8 youth
medium no
fair no
9 youth
low yes
fair yes
10 senior
medium yes
fair yes
11 youth
medium yes
excellent yes
12 middle_aged
medium no
excellent yes
13 middle_aged
high yes
fair yes
14 senior
medium no
excellent no
Sumber: Han, et al, 2006: 299
Kasus yang tertera pada Tabel 2.4 akan dibuat pohon keputusan untuk menentukan membeli komputer atau tidak dengan melihat umur, pendapatan, status
pelajar, dan peringkat kredit. Pertama menghitung informasi yang dibutuhkan untuk mengklasifikasikan
partisi data menggunakan persamaan 2.1 dengan = , adalah banyaknya
kategori nilai pada kelas membeli komputer. Tabel 2.5 merupakan total kasus pelanggan yang berada pada kelas yes dan no.
Tabel 2.5 Kelas Membeli Komputer Class_buys_computer
yes no
9 5
= − log −
log = ,
Selanjutnya menghitung informasi harapan yang dibutuhkan untuk klasifikasi data berdasarkan partisi dari setiap atribut. Sebagai contoh partisi pada
31 atribut age. Banyaknya data yang berada dalam kelas yes atau no berdasarkan
atribut age dapat dilihat pada Tabel 2.6. Tabel 2.6 Kelas Membeli Komputer Berdasarkan Partisi Atribut Age
age Class_buys_computer
yes no
youth 2
3 middle_aged
4 senior
3 2
Digunakan persamaan 2.2 untuk menghitung informasi harapan yang dibutuhkan untuk klasifikasi data berdasarkan partisi dari atribut age dengan
adalah banyaknya kategori pada atribut age.
��
= × − log
− log + × − log
− log + × log
− log = ,
Oleh karena itu didapatkan information gain yang dihitung menggunakan persamaan 2.3.
= −
��
= , − ,
= ,
Pergitungan gain ratio atribut age dapat dihitung menggunakan persamaan 2.5 namun terlebih dahulu perlu dihitung nilai split information menggunakan
persamaan 2.4 dengan adalah banyaknya jenis kategori nilai pada atribut age.
��
= − × log −
× log − × log = ,
= ,
, = ,
32
Setelah perhitungan gain ratio dari setiap atribut maka akan dipilih nilai yang terbesar sebagai atribut yang menjadi simpul akar dari pohon keputusan dan nilai dari
atribut tersebut menjadi cabang. Perhitungan lanjutan yang analog dengan perhitungan simpul akar perlu dilakukan apabila setiap cabang belum menunjukkan keputusan akhir.
Pada saat pembangunan pohon keputusan, akan banyak ditemukan adanya cabang yang noise atau outlier pada data training. Pemangkasan pohon dapat
dilakukan untuk menghapus cabang-cabang tersebut sehingga dapat mempercepat proses klasifikasi. Pohon yang dipangkas akan menjadi lebih kecil dan lebih mudah
dipahami. Pemangkasan pohon dilakukan selain untuk pengurangan ukuran pohon, juga bertujuan untuk mengurangi tingkat kesalahan klasifikasi pada kasus baru.
Contoh pemangkasan pohon keputusan ditunjukkan Gambar 2.6 dan Gambar 2.7.
Gambar 2.6 Pohon Keputusan Sebelum Pemangkasan Han, et al, 2006:305
Gambar 2.7 Pohon Keputusan Sesudah Pemangkasan Han, et al, 2006: 305
33 Setelah pemangkasan pohon, kemudian dilakukan pembentukan aturan
keputusan, yaitu membuat aturan keputusan dari pohon yang telah dibentuk. Aturan tersebut dapat dalam bentuk if-then diturunkan dari pohon keputusan dengan
melakukan penelusuran dari akar sampai ke daun. Setiap simpul dan percabangan akan diberikan if, sedangkan nilai pada daun akan ditulis then. Setelah semua aturan
dibuat, maka aturan dapat disederhanakan digabungkan.
2. Naïve Bayes