Pohon Keputusan Decision Tree

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