• Tidak ada hasil yang ditemukan

LANDASAN TEORI

2.4 Pohon Keputusan Induksi

Sejak akhir tahun 1970 sampai awal tahun 1980, J.RossQuinlan, peneliti mesin pembelajaran, mengembangkan algoritma pohon keputusan yang dikenal dengan nama ID3 (Iterative Dichotomiser). Quinlan kemudian memperkenalkan C4.5 (pengganti ID3) yang menjadi tolak ukur pembanding supervised learning algorithm. Pada tahun 1984 kelompok ahli statistic (L. Breiman, J.Friedman, R. Olshen, and C. Stone) menerbitkan buku Classification and Regression Trees (CART), dideskripsikan sebagai generasi pohon keputusan biner.

Menurut Han,J., Kamber,M (2006) ID3, C45 dan CART memiliki karakteristik yang sama dalam membangun pohon keputusan, yaitu top-down dan divide-conquer. Top-down artinya pohon keputusan dibangun dari simpul akar ke simpul daun. Divide-conquer artinya training data secara rekursif dipartisi ke dalam bagian-bagian yang lebih kecil saat pembangunan pohon. Biner tidaknya pohon keputusan ditentukan oleh attribbute selection measures atau algoritma yang digunakan. Secara umum algoritma dasar dalam pembangunan pohon keputusan adalah sebagai berikut.

Algoritma dasar untuk pohon keputusan menurut Han,J., Kamber,M (2006) :

Algorithm: Generate_decision_tree.

Narative : Generate a decision tree from the given training data.

Input: The training samples, samples, represented by discrete-valued attribute; the set of candidate attributes, attribute-list.

Output: A decision tree.

Method:

(1) create a node N;

(2) if samples are all of the same class, C then

(3) return N as a leaf node labeled with the class C; (4) if attribute-list is empty then

(5) return N as a leaf node labeled with the most common class in

samples;//majority voting

information gain;

(7) label node N with test-attribute;

(8) for each known value ai of test-attribute;

(9) grow a branch from node N for the condition test-attribute = ai;

(10) let si be the set of samples in samples for which test-attribute = ai; // a partition

(11) if si is empty then

(12) attach a leaf labeled with the most common class in samples;

(13) else attach the node returned by Generate_decision_tree (si, attribute-listtest- attribute);

Algoritma di atas dapat dijelaskan sebagai berikut. Awalnya pohon hanya memiliki sebuah simpul, N, yang mewakili seluruh training data di D. Jika seluruh tuples di D memiliki kelas yang sama, maka simpul N diubah menjadi daun dan dilabeli dengan nama kelas tersebut. Sebaliknya, jika tuple-tuple di D memiliki kelas yang berbeda-beda, maka dipanggil attribute_selection_method untuk menentukan kriteria terbaik dalam mempartisi data dengan menggunakan attribute selection measures. Kemudian, simpul N dilabeli dengan splitting attribute yang diperoleh dari Attribute_selection_method dan sebuah cabang akan dibangkitkan untuk setiap hasil pengujian pada simpul N. Selanjutnya, tuple-tuple di D akan dipartisi sesuai dengan hasil pengujian tersebut. Terdapat tiga skenario yang mungkin dalam mempartisi D. Misalkan A adalah splitting attribute pada simpul N dan A memiliki sejumlah k nilai berbeda {a1, a2, ..., ak} pada training data.

i. Jika A memiliki nilai-nilai yang diskrit, maka sebuah cabang akan dibentuk untuk setiap nilai A (sehingga total akan terbentuk sebanyak k cabang). Partisi Di terdiri dari tuple-tuple pada D yang memiliki nilai a1 untuk atribut A. Selanjutnya, atribut A dihapus dari attribute_list. Gambar 2.3 memperlihatkan pembagian atribut A yang bernilai diskrit.

Color ?

orange purple blue green

red

Gambar 2.3 Jika atribut A di simpul uji bernilai diskrit (Sumber : Han,J., Kamber,M (2006))

ii. Jika A memiliki nilai-nilai yang kontinu, maka hasil pengujian pada simpul N akan menghasilkan dua cabang, yaitu untuk A ≤ split point dan A > split

point. Split point merupakan keluaran dari attribute_selection_method sebagai bagian dari kriteria untuk melakukan partisi. Selanjutnya, D dipartisi sehingga D1 terdiri dari tuple-tuple di mana A ≤ split point dan D2 adalah sisanya. Gambar 2.4 memperlihatkan pembagian atribut A yang bernilai kontinu.

Income?

>42000 <=42000

Gambar 2.4 Jika atribut A di simpul uji bernilai kontinu (Sumber : Han,J., Kamber,M (2006))

iii. Jika A memiliki nilai-nilai yang diskrit dan pohon yang dihasilkan harus biner, maka bentuk pengujian di simpul N adalah “A Є SA?” SA adalah splitting subset berupa himpunan bagian dari nilai-nilai A. Splitting subset diperoleh dari attribute_selection_method sebagai bagian dari kriteria untuk melakukan partisi. Pada umumnya, cabang kiri dilabeli dengan ”ya” dan akan menghasilkan D1 berisi tuple-tuple yang memenuhi pengujian. Sebaliknya, cabang kanan dilabeli ”tidak” dan menghasilkan D2 berisi tuple-tuple yang tidak memenuhi pengujian. Gambar 2.5 memperlihatkan pembagian atribut A yang bernilai diskrit dan pohon keputusan yang dihasilkan harus biner.

color ε {red,green}?

yes no

Gambar 2.5 Jika atribut A di simpul uji bernilai diskrit dan pohon keputusan yang dihasilkan harus biner

(Sumber : Han,J., Kamber,M (2006))

Algoritma akan melakukan proses yang sama secara rekursif terhadap setiap partisi yang dihasilkan. Proses ini berakhir hanya jika salah satu dari kondisi berikut dipenuhi.

(i) Seluruh tuples di D memiliki kelas yang sama.

(ii) Tidak ada lagi atribut yang tersisa di attribute_list. Pada kasus ini, simpul N akan diubah menjadi daun dan dilabeli dengan mayoritas kelas di D.

(iii) Tidak terdapat tuple di suatu cabang (Di kosong). Pada kasus ini, sebuah daun dibuat dan dilabeli dengan mayoritas kelas di D.

2.4.1 ID3 (Iterative Dichotomiser)

Menurut Santosa, B (2007) ID3 menggunakan kriteria information gain untuk memilih atribut yang akan digunakan untuk pemisahan obyek. Atribut yang mempunyai information gain tertinggi dibandingkan dengan atribut yang lain relatif terhadap set y dalam suatu data, dipilih untuk melakukan pemecahan. Adapun untuk menghitung information gain digunakan persamaan 2.4 pada subbab 2.5 tentang Attribute Selection Measures.

2.4.2 CART (Classification and Regression Tree)

CART adalah singkatan dari classification and regression tree. Dalam CART menurut Santosa,B(2007) setiap simpul dipecah menjadi dua bagian. Ada

dua langkah penting yang harus diikuti untuk mendapatkan tree dengan performansi yang optimal. Yang pertama adalah pemecahan obyek secara berulang berdasarkan atribut tertentu. Yang kedua, pruning (pemangkasan) dengan menggunakan data validasi. Misalkan kita mempunyai variabel independent x1, x2, x3, ... , xn

Pemecahan secara berulang berarti membagi obyek ke dalam kotak-kotak bernilai variabel x

dan variabel dependent atau output y.

1, x2 atau xp. Cara ini diulang sehingga dalam suatu kotak sebisa mungkin berisi observasi dari kelompok / kelas yang sama. Misalkan untuk pemecahan pertama, kita buat kotak yang memuat semua observasi dengan xi ≤ si, sementara kotak lain berisi observasi dengan nilai xi > si. Selanjutnya satu kotak dipecah lagi menjadi dua kotak dengan cara yang sama dengan menggunakan variabel xi

Langkah berikutnya sesudah dilakukan pemecahan obyek/data secara berulang adalah melakukan pruning. Pruning dilakukan untuk memangkas tree yang mungkin terlalu besar dan terjadi fenomena overfitting. Overfitting merupakan noise yang ada di dalam data training, bukan pola yang termasuk ke dalam data testing atau data validasi. Pruning terdiri dari beberapa langkah pemilihan secara berulang simpul yang akan dijadikan simpul daun. Dengan mengubah simpul menjadi simpul daun artinya tidak akan dilakukan pemecahan lagi. Dengan demikian ukuran tree akan berkurang. Proses pruning akan menghasilkan tawar-menawar antara kesalahan klasifikasi (misclassification error) dalam data validasi dan jumlah simpul pohon keputusan dalam tree yang dipangkas untuk mencapai tree yang bisa menangkap pola sesungguhnya dan bukan hanya noise dalam data training. Untuk itu perlu digunakan suatu kriteria. Kriteria itu dinamakan kompleksitas ongkos (cost complexity). Yaitu, ongkos yang dibutuhkan untuk membuat tree secara berurutan dipangkas menjadi lebih kecil hingga tinggal simpul akar. Dalam urutan ini akan dipilih tree yang memberi kesalahan klasifikasi paling kecil dalam data validasi.

yang sama atau variabel yang lain. Proses ini dilanjutkan hingga memperoleh kotak yang semakin kecil ukurannya. Idenya adalah membuat kotak yang isinya seseragam mungkin atau ’pure’. Yang dimaksud pure adalah bila satu kotak hanya berisi observasi dari satu kelas.

Kriteria kompleksitas ongkos yang digunakan dalam CART adalah jumlah antara kesalahan klasifikasi untuk data validasi dengan faktor pinalti yang berhubungan dengan ukuran tree. Faktor pinalti ini didasarkan pada suatu parameter, α, yaitu pinalti untuk setiap simpul. Semakin besar ukuran tree, semakin banyak jumlah simpul, semakin tinggi pinalti yang dikenakan. Sehingga kriteria kompleksitas ongkos untuk suatu tree adalah seperti persamaan 2.1 berikut.

C = Err(T) + α|L(T)|...2.1

dimana Err(T) adalah kesalahan klasifikasi pada data validasi yang dihasilkan tree T, L(T) adalah jumlah daun (leaf) dan α adalah ongkos tiap simpul. Nilai α ini bervariasi mulai dari nol. Jika α = 0 maka tidak ada pinalti untuk tree yang dihasilkan dan tidak perlu ada pemangkasan. Jika nilai α lebih besar maka komponen ongkos dari pinalti akan mendominasi kompleksitas ongkos dan tree terbaik adalah tree dengan satu simpul. Jadi akan dicari kombinasi terbaik antara besarnya tingkat kesalahan klasifikasi dengan jumlah daun.

Dokumen terkait