an as Algoritma c4.5

download an as Algoritma c4.5

of 165

Transcript of an as Algoritma c4.5

PENGEMBANGAN SKALABILITAS ALGORITMA KLASIFIKASI C4.5 DENGAN PENDEKATAN KONSEP OPERATOR RELASI (STUDI KASUS: PRA-PENGOLAHAN DAN KLASIFIKASI CITRA BATIK)

DISERTASIKarya tulis sebagai salah satu syarat untuk memperoleh gelar Doktor dari Institut Teknologi Bandung

Oleh VERONICA SRI MOERTINI NIM : 33503504 (Program Studi Teknik Informatika)

INSTITUT TEKNOLOGI BANDUNG 2007

ABSTRAK PENGEMBANGAN SKALABILITAS ALGORITMA KLASIFIKASI C4.5 DENGAN PENDEKATAN KONSEP OPERATOR RELASI (STUDI KASUS: PRA-PENGOLAHAN DAN KLASIFIKASI CITRA BATIK) Oleh Veronica Sri Moertini NIM : 33503504Klasifikasi adalah salah satu proses pada data mining yang bertujuan untuk menemukan pengetahuan atau pola yang berharga dari data yang berukuran relatif besar hingga sangat besar. Data tersebut saat ini kebanyakan dikelola menggunakan Database Management System (DBMS) baik sebagai database maupun data warehouse. Ada beberapa kelompok algoritma klasifikasi, di antaranya adalah pohon keputusan, Bayesian dan jaringan saraf. Algoritma C4.5 adalah salah satu algoritma klasifikasi yang populer pada kelompok algoritma pohon keputusan. Pada tahap belajar dari data pelatihan, algoritma C4.5 mengkonstruksi pohon keputusan. Pada tahap klasifikasi, pohon keputusan digunakan untuk memprediksi kelas dari sebuah kasus yang kelasnya belum diketahui. Prinsip kerja algoritma ini dalam proses belajar adalah: membaca seluruh sampel/kasus dari storage dan memuatnya ke memori, kemudian melakukan komputasi dengan membaca sampel-sampel di memori untuk mengkonstruksi pohon (yang juga disimpan di memori). Dengan pendekatan ini, salah satu kelemahan algoritma C4.5 yang termasuk dalam kategori skalabilitas adalah: algoritma tersebut hanya dapat digunakan untuk menangani sampel-sampel yang dapat disimpan secara keseluruhan dan pada waktu yang bersamaan di memori. Beberapa hasil penelitian sudah ditujukan untuk mengatasi masalah skalabilitas di atas. Pendekatan yang digunakan adalah: (a) Data dipartisi dan konstruksi pohon dilakukan secara parsial, kemudian digabungkan. Masalah: akurasi pohon gabungan ini buruk. (b) Pemanfaatan perintah Structured Query Language1 (SQL) pada DBMS untuk meringkas data pelatihan menjadi sebuah tabel keputusan. Kelemahannya: pada proses klasifikasi kasus baru masih diperlukan algoritma lain. (c) Pembuatan himpunan-AVC (Attribute-Value Classlabel ) pada setiap simpul pohon. Bila seluruh himpunan-AVC pada sebuah level pohon tidak1

Bahasa pemrograman yang sudah diterima sebagai bahasa standar pada DBMS.

ii

dapat dimuat di memori, data pelatihan dipartisi, disimpan di file sementara, kemudian himpunan-AVC dibuat hanya untuk partisi ini dan cabang dilanjutkan untuk setiap partisi. Jika algoritma ini akan diintegrasikan ke dalam DBMS, masalah yang ada adalah: algoritma ini tidak memanfaatkan fitur dan fungsifungsi yang dimiliki DBMS, sehingga sulit untuk diimplementasikan secara terintegrasi dengan DBMS. Bertitik tolak dari keterbatasan memori pada sistem komputer, dan ukuran data yang ditangani algoritma C4.5 di DBMS seharusnya dapat sangat besar, maka pada penelitian ini akan dilakukan pendekatan lain: mengembangkan skalabilitas algoritma C4.5 (menjadi C4.5Db) dengan menerapkan logika DBMS (operator seleksi dan proyeksi pada aljabar relasional) dan sekaligus mengintegrasikannya ke dalam Object-Relational DBMS (ORDBMS), untuk memanfaatkan skalabilitas tak terhingga dan pemrograman berorientasi obyek yang didukung oleh ORDBMS. Prinsip kerja algoritma C4.5Db adalah sbb.: Dengan memanfaatkan operator seleksi pada SQL, komputasi pada konstruksi pohon (induk) sampai level tertentu dilakukan dengan membaca sampel-sampel secara langsung pada tabel basisdata yang dapat berukuran sangat besar. Selanjutnya, operator proyeksi dan seleksi pada SQL dimanfaatkan untuk memuat himpunan sampel pada setiap sub-pohon (cabang) ke dalam memori untuk diakses pada komputasi perpanjangan setiap cabang. Pemuatan himpunan sampel pada cabang dilakukan satu demi satu, dan hasil konstruksi cabang ditempelkan pada pohon induk sehingga pada akhirnya terbentuk sebuah pohon yang utuh. Dengan pendekatan ini, ukuran himpunan sampel pada cabang yang dimuat ke memori dibatasi oleh memori, tetapi jumlah himpunan secara teoritis tidak dibatasi, sehingga sampel yang berjumlah sangat besar dapat ditangani. Selain itu, ukuran pohon yang dapat dikonstruksi juga dibatasi oleh memori. Kecepatan eksekusi algoritma C4.5Db, yang merupakan salah satu tolok ukur dari efisiensi pada teknik data mining, diatasi dengan pemanfaatan fungsi-fungsi yang ada di DBMS (melalui SQL), khususnya indeks (bitmap index), dan penelaahan partisi data di memori pada konstruksi cabang. Untuk menguji keberhasilan C4.5Db, dilakukan eksperimen-eksperimen perbandingan C4.5 dan C4.5Db yang sudah diintegrasikan ke dalam ORDBMS. Tabel yang berisi data sintetik yang sama, dengan jumlah rekord/sampel dan atribut yang bervariasi, dipresentasikan ke C4.5 dan C4.5Db. Proses (termasuk waktu eksekusi) diobservasi. Berdasarkan pengujian ini, dibuktikan bahwa skalabilitas C4.5Db didapati sesuai dengan harapan, sedangkan C4.5 berhenti pada suatu saat dimana seluruh sampel sudah tidak dapat lagi disimpan dalam memori. Waktu eksekusi C4.5Db juga lebih baik pada kasus dimana tabel memiliki jumlah atribut dan nilai unik sedikit dan diindeks dengan bitmap. Pada studi kasus, sebagai contoh pemanfaatan dari C4.5Db di ORDBMS, digunakan tabel yang berisi data sintetik transaksi penjualan batik (berisi profil pengguna dan citra batik yang sesuai, dengan mempertimbangkan motif, warna

iii

dan tingkat kontras). Tujuannya adalah untuk mendapatkan pohon keputusan dari data yang bermanfaat dalam membantu pemilihan batik yang sesuai bagi pemakai dengan profil tertentu. Karena untuk mengklasifikasi tabel ini perlu dilakukan prapengolahan citra batik, dengan tujuan untuk menemukan motif dan tingkat kontras pada citra batik, maka dikembangkan algoritma-algoritma pra-pengolahan citra batik. Di sini digunakan transformasi wavelet 2-dimensi dan teknik-teknik pada algoritma image retrieval berbasis bentuk dan tekstur. Uji coba dilakukan dengan 489 citra batik dengan tujuan untuk mencari algoritma yang terbaik dari algoritma-algoritma yang dikembangkan. Didapati bahwa algoritma pendeteksi kontras yang baik adalah yang menggunakan wavelet, sedangkan pengenalan motif yang terbaik adalah yang mengadopsi gabungan teknik pengenalan bentuk dan tekstur. Kemudian, eksperimen-eksperimen untuk membuat aturan-aturan dilakukan dengan atribut-atribut tabel yang bervariasi. Aturan-aturan yang dihasilkan kemudian dievaluasi dengan kriteria tingkat kepercayaan dan didapati hasil bahwa sebagian besar aturan berpotensi untuk dimanfaatkan. Kata kunci: klasifikasi, algoritma pohon keputusan C4.5, pengembangan skalabilitas, integrasi C4.5 ke dalam ORDBMS, pra-pengolahan citra batik, klasifikasi citra batik.

iv

ABSTRACT ENHANCING THE SCALABILITY OF C4.5 CLASSIFICATION ALGORITHM USING RELATION OPERATOR CONCEPT (CASE STUDY: PREPROCESSING AND CLASSIFYING BATIK IMAGES) By Veronica Sri Moertini NIM : 33503504Classification is one of the data mining functions, which aims to find knowledge or valuable pattern from relatively large to very large dataset, which is mostly stored in DBMS (in the form of database or datawarehouse). There are several groups of classification algorithms, which are decision tree, Bayesian, neural networks, etc. C4.5 algorithm is a popular decision tree classification algorithm. On learning stage, C4.5 constructs trees from training dataset, while on classification stage the trees are used to predict the classes of new cases with unknown classes. The basic principle of C4.5 in constructing trees is by loading the sample training dataset into memory and then constructing the trees from the samples stored in memory. Using this approach, one of the weaknesses of C4.5 concerning its scalability is in its inability to build trees from dataset having size that exeeds memory size. Previous research has been directed to solve the scalability of decision trees. The approaches are: (a) The dataset is partitioned. A sub-tree is constructed from each partition. At the end, the sub-trees are combined to form the whole trees. The disadvantage: the accuracy is poor. (b) SQL is used to summarize dataset into a decision table. The disadvantage: it needs other classification algorithm in classifying new cases. (c) Forming AVC-sets (Attribute-Value Classlabel sets) for each tree node. If the whole AVC-sets could not be stored in memory, the dataset is partitioned and each is stored as a separate file. The branches are then extended by reading each file. If this algorithm would be implemented as a DBMS internal function, the issue is: it is difficult to be implemented as an internal function of DBMSes as the approach does not utilize DBMS functions or features. In improving C4.5 scalability, the proposed approach is: C4.5 is enhanced by adopting DBMS foundation (selection and projection operator of relational algebra), called C4.5Db, while also integrating it into Object-Relational DBMS

v

(ORDBMS), to take advantage of the unlimited scalability and object-oriented programming supported by this DBMS. The basic method of C4.5Db is: by using SQL selection operator, the construction of (parent) tree up to a certain level is conducted by accessing samples from the database tabel, then, it enhances each branch by first loading a set of samples of this branch (using selection and projection operator) into memory then reading the samples stored in memory. With this approach, the set of samples that could be loaded into memory is limited by the memory size, but the number of sets are not limited, hence, it could handle very large size of dataset. The size of the tree that could be constructed, however, is limited by memory size. To gain fast C4.5Db execution in constructing trees, which is one of the criteria in evaluating the quality of data mining algorithms, SQL supported by query optimizer and bitmap index would be used. Accessing sets of samples stored in memory is also intended to maintain fast execution. In testing C4.5Db, a series of experiments aimed to compare C4.5 and C4.5Db are conducted. Tables containing the same synthetic data with various number of records or samples and attributes are presented both to C4.5 and C4.5Db. The process (including execution time) is observed. The result of these experiments shows that C4.5Db could handle very large size of samples (as expected), while C4.5 stops at certain size of samples. The execution time of C4.5Db is also better on cases where bitmap indexed tables have small attributes and distinct values. In the case study attempting to show the use of C4.5Db algorithm in solving real problem, tables filled with synthetic records of batik purchasing transaction are used as its training dataset. Each record contains batik wearers profiles (identified by personality, skin and hair color) and the suitable batik images (by considering motif, color and contrast color). The goal of the classification is to construct decision trees which is useful in helping people (having certain profiles) in selecting the right batiks. As batik image preprocessing (aimed to obtain motif and color contrast) is necessary step in preparing the dataset for C4.5Db, several preprocessing algorithms are designed. Two-dimensional discrete wavelet transform and several techniques found in shape-based and texture-based image retrieval algorithms are adopted in the algorithms. The experiments aimed to find the best algorithms are conducted using 489 real batik images. The result: the best algorithm of detecting color contrast is the one that uses wavelet, while motif is the one that adopts both texture and shape-based techniques. After the batik images stored in the table are pre-processed, experiments intended to obtain decision trees from the transaction tables are conducted by selecting a variety of table attributes. The rules of the trees are then evaluated using confidence measure. Many rules are found valuable and potentially useful. Keywords: classification, C4.5 decision tree algorithm, scalability, integrating C4.5 into ORDBMS, batik image pre-processing, classifying batik images.

vi

PENGEMBANGAN SKALABILITAS ALGORITMA KLASIFIKASI C4.5 DENGAN PENDEKATAN KONSEP OPERATOR RELASI (STUDI KASUS: PRA-PENGOLAHAN DAN KLASIFIKASI CITRA BATIK)

Oleh

Veronica Sri Moertini NIM : 33503504 (Program Studi Teknik Informatika)Institut Teknologi Bandung

Menyetujui Tim Pembimbing Tanggal ............................. Ketua Anggota

Dr. Ir. Benhard Sitohang

Dr. dr. Oerip S. Santoso

Dipersembahkan kepada bangsa Indonesia, semoga bermanfaat

viii

PEDOMAN PENGGUNAAN DISERTASIDisertasi Doktor yang tidak dipublikasikan terdaftar dan tersedia di Perpustakaan Institut Teknologi Bandung, dan terbuka untuk umum dengan ketentuan bahwa hak cipta ada pada pengarang dengan mengikuti aturan HaKI yang berlaku di Institut Teknologi Bandung. Referensi kepustakaan diperkenankan dicatat, tetapi pengutipan atau peringkasan hanya dapat dilakukan seizin pengarang dan harus disertai dengan kebiasaan ilmiah untuk menyebutkan sumbernya. Memperbanyak atau menerbitkan sebagian atau seluruh disertasi haruslah seizin Dekan Sekolah Pascasarjana, Institut Teknologi Bandung.

ix

KATA PENGANTARPuji syukur penulis panjatkan kepada Tuhan YME atas terselesaikannya buku disertasi ini. Berbagai pihak telah membantu selama penulis menempuh pendidikan jenjang Strata-3 (S3), meneliti maupun menyusun buku ini. Melalui buku ini, penulis ingin mengucapkan terima kasih yang tulus kepada: a. Dr. Ir. Benhard Sitohang, sebagai Ketua Tim Pembimbing, yang telah memberikan bimbingan, saran, kritik yang membangun dan dukungan dalam bentuk lainnya yang sangat berguna. b. Dr. dr. Oerip S. Santoso, sebagai anggota Tim Pembimbing, yang telah memberikan bimbingan, pengertian dan dukungan lainnya yang berharga, baik sebelum maupun selama penulis menempuh pendidikan jenjang S3. c. Almarhum Prof. Dr. Ir. Kudrat Soemintapoera, mantan Ketua Tim Pembimbing, yang telah memberikan dukungan dan konsultasi awal yang mendasari langkah-langkah penelitian. d. Tim penguji pada ujian-ujian disertasi, yaitu Prof. Dr. Ir. Tati L. R. Mengko; Dr. Ing. Farid Wazdi; Ir. Wahyu C. Wibowo, PhD.; Ir. Dwi H. Widyantoro, M.Sc., PhD.; Dr. Ir. Bambang R. Trilakso, yang telah mengevaluasi buku disertasi, memberi arahan dan saran untuk perbaikan buku ini. e. Program Studi Teknik Informatika, STEI ITB, yang telah memberikan bantuan/layanan teknis dan administratif selama penulis menempuh pendidikan S3. f. Universitas Katolik Parahyangan dan Fakultas MIPA yang telah memberikan dukungan, dosen Jurusan Ilmu Komputer yang telah membantu penulis secara langsung (Lionov, ST; Ir. Nico Saputra, MT; Kim Siung, ST, MSc dan T. Anung Basuki, ST, MSi) maupun para dosen lain yang telah memberikan bantuan secara tidak langsung. g. Romo Drs. C. Kuntoro Adi, MA, MSc, SJ di Milwaukee, WI, Amerika Serikat, yang telah memberikan dukungan moril, informasi penting maupun mencarikan buku dan makalah-makalah yang sangat bermanfaat. h. Teman-teman seperjuangan di Prodi Teknik Informatika STEI ITB, khususnya Pak Setyawan, Pak Juniadi, Pak Imam, Pak Dahlan, Bu Putri dan

x

Bu Wanti, yang telah memberikan dukungan moril maupun masukan-masukan yang berharga. i. Raden Ruhimat, SKom; Yoseph Adhitya, SKom, SSi, MT dan para mantan mahasiswa bimbingan lainnya, yang telah memberikan inspirasi dan membagikan pengetahuan selama penelitian ini berlangsung. j. Drs. Hardiyanto dan Dra. D. Ismoyowati yang telah membantu selama survei di Yogyakarta maupun mencari referensi-referensi batik yang berharga. k. Ibunda Yatmi K. Hardjosoeroso dan semua saudara-saudari, yang telah memberikan dukungan moril. l. Staf PT Dinamaritama Konsultan Rekayasa, khususnya Slamet, Asep, Sidin, Wendi, Tome, Sanca dan Leman, yang telah mengurus fasilitas yang penulis perlukan, mempersiapkan citra-citra untuk eksperimen dan mengurus perbanyakan dokumen-dokumen. m. Last but not least, suami penulis, Andojo Wurjanto, PhD., yang telah memberikan dukungan penuh (moril, materiil, fasilitas dan staf) sehingga pendidikan S3 di ITB dapat penulis tempuh dan selesaikan. Juga anak-anak, Avi P. Pertiwi dan Adi P. Hardaya, yang sering memberi hiburan yang menyegarkan hati.

Bandung, Juni 2007 Penulis

xi

DAFTAR ISI

ABSTRAK .............................................................................................................. ii ABSTRACT............................................................................................................ v PEDOMAN PENGGUNAAN DISERTASI.......................................................... ix KATA PENGANTAR ............................................................................................ x DAFTAR ISI......................................................................................................... xii DAFTAR LAMPIRAN........................................................................................ xiv DAFTAR GAMBAR ............................................................................................ xv DAFTAR ALGORITMA.................................................................................... xvii DAFTAR TABEL.............................................................................................. xviii DAFTAR SINGKATAN DAN LAMBANG ...................................................... xix Bab I Pendahuluan ................................................................................................ 1 I.1 Latar Belakang............................................................................................... 1 I.2 Masalah Penelitian......................................................................................... 9 I.3 Tujuan Penelitian ......................................................................................... 10 I.4 Ruang Lingkup dan Batasan Penelitian ....................................................... 12 I.5 Asumsi yang Digunakan.............................................................................. 13 I.6 Hipotesis ...................................................................................................... 13 I.7 Metodologi Penelitian.................................................................................. 13 I.8 Pelaksanaan Penelitian................................................................................. 15 I.9 Sistematika Disertasi ................................................................................... 16 Bab II Algoritma C4.5......................................................................................... 18 II.1 Bahasan Umum ......................................................................................... 18 II.2 Algoritma Konstruksi Pohon..................................................................... 20 II.3 Komputasi Gain Ratio pada Konstruksi Pohon C4.5................................ 22 II.4 Kompleksitas pada Konstruksi Pohon....................................................... 24 II.5 Partisi Himpunan Data pada Konstruksi Pohon ........................................ 25 II.6 Hasil Penelitian yang Terkait dengan Pengembangan C4.5...................... 26 BAB III Pengembangan Skalabilitas Algoritma C4.5 dan Integrasinya ke dalam ORDBMS.............................................................................................................. 28

xii

III.1 Pembentukan Partisi Himpunan Data dan Komputasi Gain Ratio dengan SQL ................................................................................................................... 29 III.1.1 Operator Seleksi dan Proyeksi pada Aljabar Relasional................... 29 III.1.2 Partisi Himpunan Data dan Estimasi Ruang Memori ....................... 30 III.1.3 Perintah SQL untuk Partisi Himpunan Data ..................................... 33 III.1.4 Perintah SQL untuk Menghitung Jumlah Sampel............................. 34 III.2 Pengembangan Algoritma pada Konstruksi Pohon .................................. 35 III.3 Fitur ORDBMS yang Mendukung Efisiensi Konstruksi Pohon .............. 39 III.4 Implementasi Algoritma........................................................................... 40 III.4.1 Arsitektur Sistem................................................................................ 42 III.4.2 Bahasan J48 ...................................................................................... 42 III.4.3 Struktur Data untuk Pohon Keputusan.............................................. 44 III.5 Eksperimen.............................................................................................. 46 III.5.1 Eksperimen Akurasi .......................................................................... 46 III.5.2 Eksperimen Skalabilitas dan Efisiensi .............................................. 48 Bab IV Pra-pengolahan dan Klasifikasi Citra Batik .......................................... 56 IV.1 Masalah pada Pemilihan Batik yang Serasi bagi Calon Pemakai............. 56 IV.2 Dasar Teori............................................................................................... 58 IV.2.1 Langkah-langkah Klasifikasi Data pada Tahap Belajar..................... 58 IV.2.2 Klasifikasi Warna Fesyen ................................................................. 60 IV.2.3 Motif Batik, Arti dan Impresi ........................................................... 61 IV.2.4 Batik sebagai Obyek ......................................................................... 64 IV.3 Penyiapan Data Transaksi Penjualan Sintetik dan Struktur Penyimpanannya ............................................................................................... 67 IV.4. Metoda Pra-pengolahan Citra Batik untuk Mengenali Tingkat Kontras dan Motif........................................................................................................... 70 IV.5 Pemilihan Atribut dan Eksperimen untuk Memproduksi Aturan-aturan.. 73 Bab V Kesimpulan dan Penelitian Lanjutan ....................................................... 81 V.1 Kesimpulan ............................................................................................... 81 V.2 Penelitian Lanjutan.................................................................................... 82 DAFTAR PUSTAKA ........................................................................................... 84 RIWAYAT HIDUP............................................................................................... 89

xiii

DAFTAR LAMPIRANLAMPIRAN A Entropi dan Information Gain .................................................... 91 LAMPIRAN B Overview ORDBMS, Studi Kasus: Oracle ................................. 94 LAMPIRAN C Pencarian Fitur ORDBMS yang Mendukung Efisiensi pada Algoritma C4.5.......................................................................... 104 LAMPIRAN D Deskripsi Tabel untuk Eksperimen .......................................... 116 LAMPIRAN E Algoritma Perolehan Kembali Citra dan Transformasi Wavelet 2Dimensi ..................................................................................... 120 LAMPIRAN F Algoritma Pengelompokan dan Klasifikasi Citra Batik Berbasis Bentuk, Tekstur dan Warna....................................................... 127

xiv

DAFTAR GAMBARGambar I.1. Langkah-langkah dalam KDD (Fayyad et al., 1996 )........................ 2 Gambar I.2. Pengelompokan teknik klasifikasi. .................................................... 4 Gambar I.3. Skema klasifikasi secara umum. ......................................................... 4 Gambar I.4. Diagram alir pelaksanaan penelitian................................................ 17 Gambar II.1. Proses klasifikasi data: (a) Tahap belajar. (b) Tahap pengujian dan penggunaan aturan-aturan untuk mengklasifikasi rekord baru (Han et al., 2001)...................................................................................... 19 Gambar II.2. Contoh pohon keputusan. ................................................................ 19 Gambar II.3. Model pohon keputusan................................................................... 21 Gambar II.4. Contoh hasil partisi himpunan data pada eksekusi Algoritma II.1 untuk satu rekur (Han et all, 2001). ................................................ 26 Gambar III.1. Pohon keputusan dan partisi himpunan data. ................................ 31 Gambar III.2. Ilustrasi prinsip kerja Algoritma III.1 (Generate_decision_tree_ext). ........................................................ 37 Gambar III.3. Arsitektur sistem yang mengimplementasikan Algoritma III.1. .... 42 Gambar III.4. Sebuah pohon dikonstruksi dengan memanggil prosedur tersimpan berbasis SQL (di sini, depth_Db = 2) dan J48 untuk melanjutkan konstruksi pohon di tiap cabang...................................................... 44 Gambar III.5. Pseudo-code untuk program utama dan konstruksi pohon hibrid pada C4.5Db.................................................................................... 45 Gambar III.6. Waktu eksekusi dalam konstruksi pohon untuk tabel dengan (a) 5, (b) 10, (c) 15, (d) 20, (e) 30 dan (f) 10 kolom, dimana tabel pada (f) memiliki jumlah nilai unik dua kali jumlah nilai unik tabel pada (b). ......................................................................................................... 50 Gambar III.7. Waktu eksekusi untuk tabel berukuran sangat besar..................... 51 Gambar IV.1 Skema klasifikasi tabel transaksi penjualan batik pada tahap belajar. ......................................................................................................... 59 Gambar IV.2. Langkah-langkah klasifikasi data transaksi penjualan batik.......... 60

xv

Setelah aturan dievaluasi, pada akhir bab juga akan diberikan ilustrasi pemanfaatan aturan atau algoritma C4.5Db pada sistem penjualan batik online...................................................................................... 60 Gambar IV.3. Contoh motif batik. ........................................................................ 64 Gambar IV.4. Motif lereng yang memberi impresi: (a) jelas-tegas-dinamis (b) rapi-sejuk (atas), rapi hangat (tengah) dan feminim (bawah). ..... 65 Gambar IV.5. Motif ceplok yang memberi impresi: (a) rapi berenergi (b) rapihangat (c) rapi matang klasik (d) rapi sejuk (e) tegas. ........... 66 Gambar IV.6. Motif buketan yang memberi impresi: (a) feminim (b) klasik (c) rapi dinamis. ................................................................................. 66 Gambar IV.7. Diagram kelas Batik dan Customer. ............................................. 68 Gambar IV.8. Rancangan tabel transaksi penjualan batik sintetik....................... 69 Gambar IV.9. Waktu eksekusi pengelompokan citra berbasis kontras dengan (a) Algoritma-2 (b) Algoritma-3 untuk citra berukuran 6464, 128128 dan 256256 piksel. ........................................................................ 71 Gambar IV.10. Waktu eksekusi Algoritma-3 s/d Algoritma-8. ........................... 72 Gambar IV.11. Pohon yang dihasilkan pada eksperimen ke-1. ........................... 75 Gambar IV.12. Pohon yang dihasilkan pada eksperimen ke-2. ........................... 75 Gambar IV.13. Pohon yang dihasilkan pada eksperimen ke-3. ........................... 75 Gambar IV.14. Pohon yang dihasilkan pada eksperimen ke-4. ........................... 76 Gambar IV.15. Pohon (tidak lengkap) yang dihasilkan pada eksperimen ke-5.. 79 Gambar IV.16. Skema sistem penjualan batik online yang memanfaatkan C4.5Db. ........................................................................................... 80

xvi

DAFTAR ALGORITMAAlgoritma II.1. Algoritma konstruksi pohon keputusan (Quinlan, 1993; Han et.al., 2001). ................................................................................ 22 Algoritma III.1 Algoritma konstruksi pohon keputusan yang dikembangkan pada algoritma C4.5Db........................................................................ 38

xvii

DAFTAR TABELTabel I.1. Kriteria teknik klasifikasi data dan faktor-faktor yang perlu diperhatikan....................................................................................... 14 Tabel III.1. Akurasi dan waktu eksekusi konstruksi pohon keputusan................ 48 Table III.2. Jumlah blok tabel dan indeks bitmap pada tabel dengan 5 kolom.... 54 Table IV.1. Warna kulit-rambut dan warna fesyen yang disarankan ................. 61 Tabel IV.2. Contoh motif batik klasik. ................................................................ 63 Table IV.3. Contoh motif, arti dan impresi batik................................................. 63 Tabel IV.4. Prosentase kesalahan Algoritma-1 dan Algoritma-2 ....................... 71 Tabel IV.5. Kesalahan Algoritma-3 s/d Algoritma-8.......................................... 72 Tabel IV.6. Kolom-kolom dan kelas untuk eksperimen. .................................... 73 Tabel IV.7. Prosentase Aturan yang Berpotensi Bermanfaat .............................. 77

xviii

DAFTAR SINGKATAN DAN LAMBANGSINGKATAN KDD DBMS RDBMS ORDBMS SQL C4.5 Nama Pemakaian pertama kali pada halaman 1 1 2 2 2 5

Knowledge Discovery in Databases Database Management System Relational Database Management System Object-Relational Database Management System Structured Query Language Nama algoritma klasifikasi pohon keputusan yang dikembangkan oleh Quinlan Implementasi algoritma C4.5 dengan bahasa Java yang menjadi modul pada aplikasi machine learning Weka System

J48

42 46 98 121 121 121 137 127 127 127 127 127

CPU API HSV RGB DWT CMY LL LH HL HH TWD

Central Processing Unit Application Programming Interface Hue Saturation Value Red Green Blue Discrete Wavelet Transform Cyan Magenta Yellow Low Low Low High High Low High High Transformasi Wavelet Diskret

xix

LAMBANG

Nama

Pemakaian pertama kali pada halaman 19 19 21 21 21 23 23 29 29

Simpul pada pohon keputusan Daun pada pohon keputusan an nk vi Cj X Atribut Nilai kelas Nilai atribut Nilai kelas yang terdapat pada sampel data Himpunan sampel data Operator seleksi Operator proyeksi

xx

Bab I PendahuluanI.1 Latar Belakang Data yang tersimpan di Database Management Systems (DBMS) dapat terus bertambah ukurannya dan makin lama menjadi makin besar. Beberapa tahun terakhir ini, para pengguna DBMS sudah mulai merasakan adanya kebutuhan untuk menambang data yang tersimpan di DBMS untuk mengekstraksi pengetahuan yang berharga dari data yang menumpuk ini (Fayyad et al., 1996; Berry et al., 1997; Han et al., 2001). Untuk menjawab kebutuhan ini, lahirlah teknik pencarian pengetahuan yang dinamakan (Fayyad et al., 1996): a. Seleksi. Dalam tahap ini dilakukan pemahaman terhadap masalah yang akan dicari solusinya melalui penemuan pengetahuan, pengetahuan sebelumnya yang relevan, penentuan tujuan dan pemilihan data yang akan dianalisis. b. Pra-pengolahan. Dalam tahap ini dilakukan proses pra-pengolahan data, termasuk pembersihan data. c. Transformasi. Dalam tahap ini dilakukan pengurangan dan/atau pengubahan tipe data, sehingga data siap untuk dipresentasikan ke teknik-teknik data mining. d. Data mining. Dalam tahap ini dilakukan pemilihan tugas data mining yang sesuai dengan tujuan dan algoritma data mining untuk pencarian pola. e. Interpretasi/evaluasi. Dalam tahap ini dilakukan visualisasi dan interpretasi terhadap pola yang ditemukan untuk dijadikan pengetahuan. Pengetahuan didefinisikan sebagai pola yang memenuhi kriteria interestingness measure tertentu (kesederhanaan, kepastian, potensi pemanfaatan atau kebaruan). Gambar I.1 menunjukkan ilustrasi langkah-langkah dalam KDD. Knowledge Discovery in Databases (KDD). Adapun langkah-langkah utama KDD adalah sebagai berikut

1

Gambar I.1. Langkah-langkah dalam KDD (Fayyad et al., 1996 ) Teknik data mining yang digunakan untuk mencari pola dari data di antaranya adalah teknik pengelompokan, klasifikasi, regresi dan analisis keranjang pasar. Secara ringkas, teknik data mining difungsikan untuk mendapatkan deskripsi dari data dan mendapatkan model dari data yang berguna untuk prediksi. Algoritma-algoritma data mining kebanyakan berasal atau merupakan bentuk pengembangan dari algoritma-algoritma dari bidang ilmu machine learning, statistika, inteligensia buatan dan jaringan saraf tiruan. Karena tidak dirancang untuk menangani data dalam ukuran yang sangat besar, sedangkan data mining dimaksudkan untuk menangani data dalam ukuran yang demikian, maka salah satu arah penelitian di bidang data mining adalah mengembangkan algoritmaalgoritma tersebut agar dapat menangani data yang berukuran sangat besar. Selain itu, integrasi teknik-teknik data mining ke dalam DBMS, khususnya ObjectRelational DBMS (ORDBMS2) yang merupakan teknologi DBMS terbaru, juga masih merupakan bidang penelitian yang aktif (Han et al., 2001; Saleem et al., 2003). Tujuan utama dari integrasi ini adalah untuk melebur algoritma data mining agar menjadi fungsi internal ORDBMS yang berkualitas, sehingga pengguna dapat menggunakannya sesuai dengan kebutuhan. Karena DBMS merupakan teknologi yang sudah matang, digunakan secara luas, dapat mengelola data dalam ukuran yang sangat besar, memfasilitasi kueri tabel yang mudah dengan Structured Query Language (SQL) dan memiliki banyak fitur yang mengakomodasi kebutuhan pengguna ORDBMS, maka pengembangan dan2

ORDBMS adalah Relational DBMS yang dikembangkan dengan menambahkan ekstensi obyekrelasional (lihat Lampiran B).

2

peleburan algoritma data mining ke dalam ORDBMS yang baik adalah dengan memanfaatkan semua ini. Skema Integrasi teknik data mining ke dalam ORDBMS. Keperluan integrasi data mining dengan Relational DBMS (RDBMS) dan ORDBMS ini secara lebih rinci dibahas pada (Han et al., 2001), (Chaudhuri, 1998), (Sarawagi et al., 1998) dan (Saleem et al., 2003). Han et al. (2001) menyatakan bahwa data mining dapat diintegrasikan ke dalam DBMS dengan skema tanpa kopling, kopling longgar, kopling setengah ketat, dan kopling ketat. Dari semuanya, kopling ketat adalah yang paling disukai karena dapat memfasilitasi implementasi fungsi-fungsi data mining yang efisien, unjuk-kerja yang tinggi dan pengolahan informasi yang terintegrasi. Pada kopling ketat, subsistem data mining diperlakukan sebagai salah satu komponen dari sistem informasi. Fungsi-fungsi data mining dioptimasi dengan memanfaatkan struktur data, skema pengindeksan dan teknik-teknik kueri yang ada pada DBMS. Khusus untuk ORDBMS, (Saleem et al., 2003) mengajukan konsep bahwa integrasi teknik-teknik data mining ke dalam ORDBMS dapat dilakukan dengan dua skema, yaitu: Skema-1: Peleburan teknik data mining sebagai skema di dalam basisdata. Di sini, teknik data mining dijadikan salah satu obyek basisdata dalam bentuk prosedur. Skema-2: Teknik-teknik data mining diimplementasikan di dalam host language untuk ORDBMS. Teknik klasifikasi dalam data mining dikelompokkan ke dalam teknik pohon keputusan, Bayesian (Nave Bayesian dan Bayesian Belief Networks), Jaringan Saraf Tiruan (Backpropagation), teknik yang berbasis konsep dari penambangan aturan-aturan asosiasi, dan teknik lain (k-Nearest Neighboor, algoritma genetik, teknik dengan pendekatan himpunan rough dan fuzzy.) (Lihat Gambar I.2.). Setiap teknik memiliki kelebihan dan kekurangannya sendiri. Data dengan profil tertentu mungkin paling optimal jika diklasifikasi dengan teknik tertentu, atau dengan kata lain, profil data tertentu dapat mendukung termanfaatkannya kelebihan dari teknik ini. Dengan demikian, sebaiknya DBMS menyediakan

3

semua teknik-teknik klasifikasi bagi pengguna, agar pengguna dapat memilih yang sesuai dengan kebutuhan.Teknik Klasifikasi Pohon KeputusanC4.5 Belief Networks CART CHAID ... RainForest ... ...

Lain-lainkNN

BayesianNave

Jaringan Saraf Backpropagation

Aturan Asosiasi

Algoritma Genetik Rough Set Fuzzy Set

Gambar I.2. Pengelompokan teknik klasifikasi. Secara umum, proses klasifikasi dapat dilakukan dalam dua tahap, yaitu proses belajar dari data pelatihan dan klasifikasi kasus baru (lihat Gambar I.3). Pada proses belajar, algoritma klasifikasi mengolah data pelatihan untuk menghasilkan sebuah model. Setelah model diuji dan dapat diterima, pada tahap klasifikasi, model tersebut digunakan untuk memprediksi kelas dari kasus baru untuk membantu proses pengambilan keputusan (Han et al.,2001; Quinlan, 1993). Kelas yang dapat diprediksi adalah kelas-kelas yang sudah terdefinisi pada data pelatihan. Karena proses klasifikasi kasus baru cukup sederhana, penelitian lebih banyak ditujukan untuk memperbaiki teknik-teknik pada proses belajar.training dataset

classification algorithm

model

test model

learning process (off-line) classification (on-line)new case(s) predicted class(es)

tested model

Gambar I.3. Skema klasifikasi secara umum.

4

Beberapa contoh algoritma pada kelompok algoritma pohon keputusan adalah C4.5, CART, S-Plus Tree, FACT, QUEST dan LMDT (Lim et al, 1998). Dalam membangun model yang berupa pohon keputusan, C4.5 menggunakan pendekatan teori informasi information gain (lihat Lampiran A), CART menggunakan Gini Index (Berry et al., 1997). S-Plus Tree adalah pengembangan dari CART yang menambahkan ukuran probabilitas pada pohon. FACT memanfaatkan uji hipotesis statistik, sedangkan QUEST merupakan pengembangan FACT dengan perbaikan pada teknik konstruksi pohon. LMDT bekerja berdasarkan ukuran statistik multivariat. Di antara algoritma-algoritma tersebut, algoritma C4.5 (Quinlan, 1993) termasuk yang populer (Berry et al., 1997; Han et al., 2001). Dibandingkan dengan algoritman yang lain, algoritma C4.5 memiliki kelebihan utama karena dapat menghasilkan model berupa pohon atau aturan yang mudah diinterpretasikan dan dikonversi ke aturan-aturan SQL, memiliki tingkat akurasi yang dapat diterima, dapat menangani atribut bertipe diskret dan numerik, serta efisien dalam menangani atribut bertipe diskret (Han et al., 2001; Lim et al., 1998). Berikut ini diberikan bahasan lebih lanjut tentang algoritma C4.5. Pada algoritma C4.5, model yang dihasilkan oleh proses belajar dari data pelatihan berupa sebuah pohon keputusan. Pohon keputusan ini kemudian dapat dimanfaatkan untuk memprediksi kelas dari kasus yang baru. Untuk mengkonstruksi pohon, algoritma C4.5 membaca seluruh sampel data pelatihan dari storage dan memuatnya ke memori. Pada komputasinya, algoritma C4.5 menelaah sampel demi sampel di memori untuk mengkonstruksi pohon (prinsip kerja C4.5 adalah memory based approach). (Pemuatan sampel ke memori dimaksudkan untuk menghindari pembacaan sampel ke storage yang berulang-ulang, yang dapat mengakibatkan tingginya akses ke input-output dan memperburuk waktu eksekusi algoritma.) Dengan demikian, satu kelemahan algoritma C4.5 yang masuk dalam kategori skalabilitas adalah algoritma ini hanya dapat digunakan jika data pelatihan dapat disimpan secara keseluruhan dan pada waktu yang bersamaan di memori. Padahal data mining ditujukan untuk menganalisis data dari yang berukuran kecil hingga sangat besar,

5

yang secara de facto dikelola oleh DBMS (baik sebagai basisdata maupun sebagai data warehouse). Berdasarkan hasil studi yang telah dilakukan, penulis mendapati tiga penelitian yang ditujukan untuk mengatasi masalah skalabilitas di atas. Pendekatan yang digunakan adalah: (a) Data dipartisi dan konstruksi pohon dilakukan secara parsial. Pada setiap saat, satu partisi dimuat di memori. Setelah semua partisi data diolah, pohon-pohon parsial digabungkan untuk menghasilkan pohon utuh. Masalah pada pendekatan ini adalah tingkat keakuratan pohon gabungan ini buruk (Han et al., 2001). Ini terjadi karena ukuran-ukuran statistik yang diperlukan untuk konstruksi pohon dihitung dari data parsial (lokal), yang mungkin tidak merepresentasikan statistik data secara keseluruhan (global). (b) Pemanfaatan perintah SQL dan fungsi-fungsi agregat pada DBMS untuk meringkas data pelatihan (yang disimpan sebagai tabel basisdata) menjadi sebuah tabel keputusan (algoritma Grouping and Counting (Lu et al., 2000)). Dengan pendekatan ini, data yang berukuran sangat besar dapat ditangani. Kelemahan dari pendekatan ini adalah: pada proses klasifikasi kasus baru (yang memanfaatkan tabel keputusan) masih diperlukan algoritma lain, yaitu k-Nearest Neighbor atau Naive Bayes. k-Nearest Neighbor memprediksi kelas pada kasus baru berdasarkan kelas dengan bobot terbesar yang dihitung dari kelas-kelas di tetangga terdekat. Naive Bayes memprediksi kelas pada kasus baru berdasarkan nilai terbesar dari nilai-nilai peluang keanggotaan terhadap kelas-kelas yang ada. Dengan penggunaan algoritma lain pada proses klasifikasi kasus baru ini, berarti algoritma ini menurunkan nilai interpretabilitas pada model untuk memperbaiki skalabilitas (lihat kriteria pada Tabel I.1). (c) Pembuatan himpunan-AVC (Attribute-Value Classlabel ) pada setiap simpul pohon (disimpan di memori) yang lalu digunakan untuk melanjutkan cabang di simpul ini (algoritma RainForest (Gehrke, 1998)). Bila seluruh himpunanAVC pada sebuah level pohon tidak dapat dimuat secara bersama-sama di memori, maka data pelatihan dipartisi, disimpan di file sementara, lalu

6

himpunan-AVC dibuat hanya untuk partisi ini. Kemudian, cabang dilanjutkan untuk setiap partisi. Dengan pendekatan ini, data yang berukuran sangat besar dapat ditangani. Jika algoritma ini akan diintegrasikan di ORDBMS agar menjadi fungsi internalnya, masalahnya adalah: algoritma ini tidak memanfaatkan fondasi DBMS (aljabar relasional) dan fungsi-fungsi ORDBMS yang sudah dioptimasi untuk mengakses data yang berukuran sangat besar. (Skema integrasi kopling ketat, yang sudah dibahas sebelumnya, menyatakan bahwa integrasi yang baik adalah yang memanfaatkan fungsi-fungsi DBMS.) Pada bisnis ritel fesyen atau penjualan kain secara online, misalnya, model prediksi dapat digunakan untuk membantu para pelanggan dalam memilih busana atau kain. Sistem pembantu pelanggan dalam pemilihan produk yang sangat beragam menjadi masalah yang tidak sederhana ketika aturan/pedoman panduan tidak tersedia atau jumlah aturan/pedoman yang ada sangat besar. Berdasarkan hasil studi didapati bahwa sampai saat ini calon pemakai batik yang berbelanja ke toko tradisional maupun online belum diberi panduan agar dapat memilih batik yang sesuai dengan profil pemakai, padahal pilihan batik sangat banyak. Batik, yang dipercaya sebagai produk Indonesia asli, sudah diproduksi dan dipasarkan secara luas. Beberapa contoh tipe batik yang dipasarkan adalah batik kraton, batik sudagaran, batik Belanda, batik Cina, batik Djawa Hokokai dan batik Indonesia yang juga disebut batik modern (Kerlogue, 2004; Doellah, 2002). Batik-batik ini berbeda dalam hal motif, teknik produksi, variasi warna, bahan warna dan bahan tekstil. Motif yang dirancang dengan arti filosofis tertentu akan memberikan impresi tertentu kepada pemakainya. Karena keberagaman motif dan warna batik, memilih batik yang sesuai dengan profil pemakai (meliputi kepribadian, warna kulit dan rambut) agar berpenampilan menarik, terkadang tidak mudah untuk dilakukan karena keterbatasan pengetahuan mereka tentang batik.

7

Pembuatan model prediksi dengan algoritma C4.5 yang akan dikembangkan terhadap data transaksi pembelian batik (berisi profil pemakai dan citra batik yang dibeli dan sudah sesuai dengan profil) dapat dilakukan untuk mendapatkan model yang berpotensi membantu pemilihan batik. Setelah diidentifikasi variabel apa saja yang mencirikan profil orang (terkait dengan busana yang dikenakan, khususnya batik), maka ditemukan tiga faktor, yaitu: kepribadian, warna kulit dan rambut (Hardisurya, 2004). Sedangkan yang penting untuk dipertimbangkan dalam pemilihan batik (sebagai busana) adalah motif, warna dan tingkat kontras (Doellah, 2002; Hardisurya, 2004). Karena, citra batik memiliki ciri-ciri tersendiri, maka untuk mengenali motif dan kontras warna pada citra ini diperlukan teknik-teknik khusus. (Ciri-ciri ini adalah adanya isen-isen atau polapola kecil yang digunakan untuk mengisi ruang kosong di antara pola yang besar, motif dan warna fesyen yang bervariasi. ) Wavelet (Mallat, 1999) dikenal sebagai teknik analisis sinyal yang relatif baru, yang memperbaiki kelemahan pada teknik Fourier. Dari hasil studi didapati bahwa transformasi wavelet 2-dimensi untuk citra memiliki kelebihankelebihan, antara lain: dapat mengenali tekstur, cepat, menghasilkan koefisien rata-rata dan detil pada beberapa tingkat resolusi. Selain itu, beberapa tahun terakhir ini algoritma-algoritma image retrieval (berbasis tekstur dan bentuk) sudah dikembangkan. Contoh algoritma image retrieval berbasis tekstur yang memanfaatkan wavelet adalah WBIIS (Wang et al., 1997), Windsurf (Bartolini, 2001) dan WALRUS (Natsev et al., 2004). Sedangkan yang berbasis bentuk diantaranya dikembangkan dengan memanfaatkan momen, Fourier descriptor (Lu, 1999) dan pencocokan tepi-tepi bentuk (Hirata et al, 1992; Sajjanhar, 1998). Teknik-teknik pada algoritma tersebut berpotensi untuk dimanfaatkan dalam proses pra-pengolahan citra batik agar citra batik dapat diklasifikasi.

8

I.2 Masalah Penelitian a. Masalah pada Penelitian Utama Dalam mengkonstruksi pohon, algoritma C4.5 memuat seluruh kasus atau rekord pada data pelatihan dari disk ke dalam memori, sehingga algoritma ini dibatasi oleh ketersediaan memori perangkat keras. Padahal, teknik-teknik data mining dimaksudkan untuk menangani data hingga mencapai ukuran yang sangat besar. Di sisi lain, DBMS sudah memiliki kemampuan untuk mengelola dan mengakses data yang berukuran sangat besar yang disimpan di disk (memori sekunder), diantaranya melalui SQL, pengoptimasi kueri dan pengindeksan. SQL dapat dimanfaatkan untuk mengembangkan algoritma C4.5 yang memory-based menjadi semi-memory-based (mendapatkan statistik data untuk konstruksi pohon dari tabel basisdata dengan SQL dan memuat partisi data ke memori juga dengan SQL) agar dapat menangani data yang berukuran sangat besar (secara teoritis hingga mencapai ukuran tak terhingga). Namun, penggunaan SQL untuk mendapatkan statistik data langsung dari tabel yang dilakukan berulang-ulang dapat memperburuk waktu eksekusi algoritma (time response), yang merupakan tolok ukur efisiensi pada data mining. Untuk mengatasi kendala tersebut, pengoptimasi kueri dan pengindeksan (khususnya bitmap) dapat dimanfaatkan. Pemuatan partisi data (dengan ukuran relatif kecil) ke memori juga dimaksudkan agar komputasi dapat dilakukan secara cepat. Dengan pendekatan ini, maka efisiensi dapat diperbaiki. b. Masalah pada Studi Kasus Pembuatan model prediksi, berupa aturan-aturan yang berguna dalam membantu pemilihan batik yang mengasosiasikan profil pemakai (diwakili oleh kepribadian, warna kulit dan rambut) terhadap batik yang sesuai (dicirikan oleh warna, motif dan tingkat kontras batik) belum pernah dilakukan, padahal model ini berpotensi untuk dimanfaatkan. Maka, eksperimen-eksperimen untuk mendapatkan model ini perlu dilakukan dengan terlebih dahulu menyediakan data pelatihan yang mengandung profil-profil pemakai dan batik yang sesuai (tersimpan di DBMS

9

sebagai citra). Model yang dihasilkan kemudian perlu dikaji untuk mendapatkan aturan-aturan yang berharga. Agar model prediksi dapat dibuat dari data pelatihan, citra batik perlu untuk dipraolah dengan tujuan untuk mengenali motif dan tingkat kontras. Isu utama pada pra-pengolahan citra batik dengan tujuan tersebut adalah tingkat akurasi dan kecepatan harus baik (dapat diterima). Citra batik dikenal memiliki ciri-ciri khusus (adanya isen-isen, motif dan warna yang bervariasi), sehingga memerlukan teknik analisis yang khusus. Karena itu perlu dikembangkan algoritma untuk mempraolah citra batik yang berfungsi untuk mengenali motif dan tingkat kontras warna yang cepat dan akurat. I.3 Tujuan Penelitian Tujuan penelitian ini adalah: a. Melakukan studi terhadap algoritma klasifikasi data mining, khususnya C4.5, untuk mendalami algoritma ini, mengetahui versi-versi turunannya dan hasil penelitian yang sudah ada yang terkait dengan upaya untuk mengembangkan dan mengintegrasikan algoritma ini ke dalam ORDBMS. b. Bertitik tolak dari keterbatasan memori sistem komputer dan data pelatihan yang tersimpan di ORDBMS dapat sangat besar, maka tujuan utama penelitian ini adalah mengembangkan skalabilitas algoritma pohon keputusan C4.5 dengan memanfaatkan fitur akses data yang tidak terhingga pada DBMS dan hasil pengembangan ini disebut C4.5Db, sekaligus mengintegrasikan algoritma ini ke dalam ORDBMS. Karena algoritma akan diintegrasikan dengan ORDBMS, pendekatan yang akan digunakan adalah konsep operator relasi pada aljabar relasional. Teknik yang akan dicoba: Jika seluruh data pelatihan tidak dapat dimuat ke memori, maka konstruksi pohon dilakukan dengan mengakses tabel ORDBMS secara langsung (memanfaatkan SQL untuk operator seleksi, non-memory-based approach). Setelah sampai pada level tertentu, konstruksi cabang-cabang pada pohon dilakukan dengan terlebih dahulu memuat satu demi satu partisi data untuk setiap cabang (subpohon) ke memori (pemuatan dilakukan dengan memanfaatkan SQL untuk operator seleksi dan proyeksi), lalu melanjutkan komputasinya dengan

10

mengakses partisi data di memori (memory-based approach).

Dengan

demikian, ukuran partisi data pada sub-pohon dibatasi oleh kapasitas memori, tetapi jumlah partisinya tidak, sehingga secara teoritis C4.5Db dapat digunakan untuk mengkonstruksi pohon dengan ukuran yang tidak terbatas. Karena efisiensi atau kecepatan eksekusi merupakan kriteria penting untuk mengukur kualitas teknik klasifikasi, efisiensi juga diperhatikan pada tahap implementasi algoritma di lingkungan ORDBMS. Studi eksploratif dan investigatif terhadap ORDBMS untuk mencari fitur-fitur yang mendukung efisiensi juga akan dilakukan dan hasilnya dimanfaatkan pada integrasi algoritma ke dalam ORDBMS. Dengan mempertimbangkan bahwa kopling ketat adalah yang terbaik (Han et al., 2001), maka integrasi algoritma C4.5 ke dalam ORDBMS akan diarahkan untuk menerapkan Skema-1 (lihat bagian Latar Belakang). Kontribusi utama pada bagian penelitian ini adalah dihasilkannya algoritma klasifikasi pohon keputusan yang dapat menangani data pelatihan dengan ukuran yang sangat besar (berisi jutaan sampel/kasus), berbentuk sederhana (mudah dipahami bagi yang sudah mengenal bahasa standar DBMS, yaitu SQL) dan dimanfaatkannya fungsi-fungsi DBMS pada integrasinya ke ORDBMS. c. Melakukan pengujian terhadap algoritma C4.5Db untuk mengukur keberhasilan pendekatan yang digunakan pada C4.5Db dengan tolok ukur algoritma C4.5. Eksperimen-eksperimen dilakukan untuk mengamati kemampuannya dalam mengkonstruksi model (berupa pohon keputusan) pada data pelatihan sintetik mulai dari yang berukuran kecil (ribuan kasus atau rekord) hingga sangat besar (jutaan kasus). Data yang sama akan dipresentasikan ke algoritma C4.5 dan C4.5Db, proses eksekusinya akan diobservasi dan waktu eksekusi untuk mengkonstruksi pohon keputusan akan dicatat (waktu eksekusi ini akan menjadi ukuran efisiensi algoritma). Perbandingan tidak dilakukan terhadap tiga pendekatan yang telah ada (partisi data, Grouping and Counting dan RainForest). d. Melakukan studi terhadap transformasi wavelet 2-dimensi, hasil penelitian teknik-teknik analisis pada algoritma image retrieval, khususnya yang memanfaatkan wavelet, untuk mendapatkan teknik yang mendukung

11

kecepatan dan akurasi pada teknik pra-pengolahan citra batik. Setelah itu, mengembangkan algoritma-algoritma pra-pengolahan citra batik yang berfungsi untuk mengenali motif dan tingkat kontras warna. Kontribusi utama pada bagian penelitian ini adalah dihasilkannya algoritma pengenal motif dan tingkat kontras warna untuk citra batik, karena sebelumnya belum ditemukan algoritma serupa. e. Mengumpulkan citra-citra batik nyata, lalu melakukan eksperimen-eksperimen untuk menguji keakuratan dan kecepatan dari algoritma-algoritma pada butir (d). f. Menggunakan hasil integrasi di atas (butir b) pada eksperimen-eksperimen untuk membuat model prediksi (pohon keputusan) dari tabel transaksi sintetik penjualan batik. Nilai-nilai atribut pada setiap rekord di tabel ini berisi profil pemakai dan batik yang sesuai untuknya (dengan mempertimbangkan motif, warna dan tingkat kontras). Aturan-aturan pada pohon keputusan yang dihasilkan kemudian dikaji dengan menggunakan salah satu tolok ukur interestingness measure pada data mining, yaitu potensi pemanfaatannya. Manfaat dari pra-pengolahan citra batik ditunjukkan dengan dihasilkannya aturan-aturan yang berpotensi untuk membantu pemilihan batik. Kontribusi utama pada bagian penelitian ini adalah dihasilkannya model prediksi (berupa aturan-aturan) yang mengasosiasikan profil orang (kepribadian, warna kulit dan rambut) dengan batik yang sesuai (diciri oleh motif, warna dan kontras) yang berpotensi untuk membantu pemilihan batik pada sistem penjualan batik online.

I.4 Ruang Lingkup dan Batasan Penelitian Ruang lingkup dan batasan penelitian ini adalah: a. Masukan algoritma pohon keputusan yang dikembangkan dan diintegrasikan ke dalam ORDBMS adalah sebuah tabel di basisdata. b. Algoritma pra-pengolahan data citra yang akan dikembangkan ditujukan khusus untuk citra batik. c. ORDBMS yang dipilih sebagai studi kasus adalah Oracle 10g. Pemilihan ini dilakukan karena DBMS ini sudah mengimplementasikan data warehouse

12

(yang mengelola data sangat besar), memiliki prosedur tersimpan Java yang bersifat open-source dan mengimplementasikan konsep berorientasi-obyek secara lengkap.

I.5 Asumsi yang Digunakan Data yang tersimpan di dalam ORDBMS dan perlu diklasifikasi adalah data yang tersimpan di sebuah tabel basisdata yang memiliki kolom-kolom bertipe diskret, numerik dan obyek citra. Pada tahap awal di dalam proses penemuan pengetahuan dari data, data perlu dipilih dan dikumpulkan terlebih dahulu, lalu disimpan ke dalam sebuah tabel.

I.6 Hipotesis Hipotesis pada penelitian ini adalah: a. Skalabilitas algoritma C4.5 pada fase pembuatan model (konstruksi pohon keputusan) dapat dikembangkan dengan pendekatan konsep operator relasi seleksi dan proyeksi pada aljabar relasional agar dapat menangani data yang tersimpan di tabel ORDBMS dengan ukuran yang sangat besar. b. Integrasi algoritma C4.5Db ke dalam ORDBMS akan memudahkan pengguna dalam mengklasifikasi data yang tersimpan di ORDBMS dan menjadikan proses klasifikasi data menjadi lebih efisien. c. Algoritma pengenal motif dan kontras warna yang cepat dan akurat (untuk pra-pengolahan citra batik) dapat dikembangkan dengan memanfaatkan transformasi wavelet 2-dimensi dan teknik-teknik pada algoritma image retrieval. d. Pra-pengolahan citra batik mendukung dihasilkannya pohon keputusan yang bermanfaat untuk membantu pemilihan batik yang sesuai dengan profil orang tertentu.

I.7 Metodologi Penelitian Algoritma klasifikasi data dapat dibandingkan dan dievaluasi berdasarkan kriteria (Han et al., 2001):

13

a. Keakuratan prediksi: Kemampuan model untuk dapat memprediksi label kelas terhadap data baru atau yang belum diketahui sebelumnya dengan baik. b. Kecepatan / efisiensi: Waktu komputasi yang diperlukan untuk membuat dan menggunakan model. c. Kehandalan: Kemampuan model untuk memprediksi dengan benar walaupun data mengandung derau atau ada nilai dari atribut yang hilang. d. Skalabilitas: Kemampuan untuk membangun model secara efisien untuk data berjumlah besar (aspek ini akan mendapatkan penekanan). e. Interpretabilitas: Model yang dihasilkan mudah dipahami. Untuk memenuhi kriteria di atas, faktor-faktor yang harus diperhatikan dalam penelitian untuk mengembangkan algoritma C4.5 diberikan pada Tabel I.1. Tabel I.1. Kriteria teknik klasifikasi data dan faktor-faktor yang perlu diperhatikan (Han et al., 2001). Kriteria Yang harus diperhatikanKecepatan/efisiensi Waktu kompleksitas algoritma, lalu-lintas masukan dan keluaran ke/dari disk minimal, grafik waktu eksekusi terhadap jumlah rekord / obyek tidak berbentuk eksponensial / cenderung landai. Kehandalan Ada mekanisme untuk menangani derau dan nilai atribut yang hilang. Keakuratan Kesalahan prediksi minimal atau dapat diterima. prediksi Skalabilitas Penggunaan ruang memori tidak dibatasi oleh memori atau dapat diakomodasi sistem. Interpretabilitas Representasi aturan-aturan keluaran algoritma mudah dipahami dan dikonversikan ke SQL.

Kehandalan, keakuratan prediksi dan interpretabilitas C4.5 diketahui sudah baik. Maka rencana penelitian dibuat untuk mencari solusi masalah skalabilitas dengan tidak mengesampingkan efisiensi, integrasi C4.5 ke dalam ORDBMS dan pemanfaatannya dengan tahapan sebagai berikut: 1. Pada pengembangan dan integrasi algoritma C4.5 ke dalam ORDBMS: a. Perumusan pengembangan algoritma C4.5 di dalam ORDBMS yang memanfaatkan operator seleksi dan proyeksi pada aljabar relasional dengan tujuan untuk meningkatkan skalabilitas dan memperhatikan efisiensi algoritma C4.5.

14

b. Pencarian fitur khusus ORDBMS (dari fitur umum seperti pengindeksan, pengoptimasi kueri, SQL yang sudah dikembangkan, prosedur tersimpan dan ekstensi tipe data ORDBMS) yang dapat mendukung efisiensi dan memanfaatkan fitur-fitur ini untuk mengintegrasikan algoritma C4.5 yang dikembangkan ke dalam ORDBMS. c. Eksperimen dilakukan dengan data sintetik dan nyata serta bertujuan untuk membuktikan peningkatan skalabilitas algoritma C4.5Db yang sudah diintegrasikan ke dalam ORDBMS (dengan membandingkannya terhadap algoritma C4.5). 2. Pada pra-pengolahan obyek-obyek citra batik: a. Pemilihan transformasi wavelet 2-dimensi yang cepat dan mendukung akurasi pengenalan pola pada citra batik. b. Studi teknik-teknik analisis citra pada algoritma image retrieval berbasis bentuk dan tekstur, khususnya yang memanfaatkan wavelet. c. Pengembangan algoritma-algoritma untuk mengenali motif dan tingkat kontras-warna citra batik. d. Eksperimen dilakukan dengan citra-citra batik nyata dan bertujuan untuk membandingkan waktu komputasi dan akurasi dari algoritma-algoritma pengenal motif dan kontras citra batik yang sudah dikembangkan. 3. Pada eksperimen untuk membuat pohon keputusan dari data transaksi penjualan batik sintetik: Data untuk eksperimen disimpan di sebuah tabel basisdata, dimana citra batik pada tabel tersebut sudah dipraolah. Proses belajar dari data dilakukan beberapa kali dan masing-masing menggunakan sejumlah atribut dan kelas yang berbeda. Pohon-pohon keputusan yang dihasilkan dari setiap eksperimen akan dikaji berdasarkan potensi pemanfaatannya dan dibandingkan untuk mendapatkan pohon keputusan yang terbaik.

I.8 Pelaksanaan Penelitian Pelaksanaan penelitian diberikan pada Gambar I.4.

15

I.9 Sistematika Disertasi Bab I, Pendahuluan, berisi: latar belakang, masalah penelitian, tujuan penelitian, ruang lingkup dan batasan penelitian, asumsi yang digunakan, hipotesis dan metodologi penelitian. Bab II, Algoritma C4.5, berisi: bahasan umum (masukan, keluaran dan langkahlangkah utama) algoritma C4.5, algoritma konstruksi pohon pada C4.5, komputasi gain ratio pada konstruksi pohon C4.5, kompleksitas algoritma, partisi himpunan data yang diterapkan pada konstruksi pohon, hasil penelitian yang terkait dengan pengembangan C4.5 baik yang terkait dengan skalabilitas maupun perbaikan lainnya. Bab III, Pengembangan Skalabilitas dan Integrasi Algoritma C4.5 ke dalam ORDBMS, berisi: bahasan tentang konsep pembentukan partisi himpunan data (operator seleksi dan proyeksi pada aljabar relasional, partisi himpunan data dan estimasi ruang memori), perintah SQL untuk komputasi gain ratio dan partisi himpunan data, pengembangan skalabilitas algoritma pada komputasi konstruksi pohon, fitur ORDBMS yang mendukung efisiensi konstruksi pohon, implementasi algoritma yang meliputi arsitektur sistem, bahasan J48, struktur data untuk pohon keputusan, eksperimen untuk pengujian akurasi, eksperimen skalabilitas dan efisiensi beserta bahasan hasilnya. Bab IV, Klasifikasi Tabel Citra Batik, berisi: masalah pada pemilihan kain batik pada toko kain/busana, dasar teori yang mendasari pencarian solusi masalah dengan menggunakan algoritma klasifikasi pohon keputusan (langkah-langkah klasifikasi, warna fesyen, motif batik, batik sebagai obyek yang memberikan impresi tertentu), algoritma pengenal motif dan kontras yang dirancang untuk mempraolah citra batik agar dapat diklasifikasi, pembuatan aturan-aturan dari data transaksi sintetik penjualan batik dan evaluasi aturannya, serta contoh pemanfaatan aturan pada sistem penjualan online.

16

Bab V, Kesimpulan dan Penelitian Lanjutan.1. Persiapan Penelitian:Studi Pustaka: Eksplorasi data mining, kegunaan, teknik, penerapan dan permasalahannya. Algoritma C4.5, ORDBMS. Teknik analisis citra: Fourier dan Wavelet.

Pengumpulan programprogram data mining, eksperimen dengan data nyata dan analisis hasil eksperimen.

Pendefinisian tujuan penelitian dan penyusunan proposal penelitian.

2. Penelitian PendahuluanStudi pustaka: Algoritma-algoritma perolehan kembali citra dengan wavelet, penambangan data citra, batik, sains basisdata, fitur-fitur ORDBMS. Eksperimen dengan C4.5 dan algoritma perolehan kembali citra berbasis wavelet dengan citra tekstur sintetik.

Penulisan makalah seminar dan jurnal nasional.

3.a. Pengembangan Teknik Pra-pengolahan Citra BatikSurvei dan pengumpulan citra batik, pengembangkan teknik prapengolahan citra batik, pembuatan program, eksperimen dengan citra batik.

3.b. Pengembangan Skalabilitas Algoritma C4.5 dan Integrasinya ke dalam ORDBMSPengembangan algoritma pada bagian komputasi konstruksi pohon. Pencarian fitur-fitur khusus yang mendukung efisiensi C4.5. dan integrasi algoritma ke dalam ORDBMS dengan memanfaatkan fitur-fitur tsb. Eksperimen dengan data nyata dan sintetik.

Penulisan makalah seminar internasional dan jurnal nasional.

Penulisan makalah konferensi internasional dan jurnal nasional.

4. Klasifikasi Tabel Citra Batik dan Penulisan DisertasiPerancangan dan implementasi arsitektur klasifikasi data, eksperimen dengan tabel yang berisi data transaksi penjualan batik sintetik.

Penulisan makalah seminar nasional dan penyusunan buku disertasi.

Gambar I.4. Diagram alir pelaksanaan penelitian.

17

Bab II Algoritma C4.5

II.1 Bahasan Umum Algoritma C4.5 adalah algoritma klasifikasi data dengan teknik pohon keputusan yang terkenal dan disukai karena memiliki kelebihan-kelebihan. Kelebihan ini misalnya: dapat mengolah data numerik (kontinyu) dan diskret, dapat menangani nilai atribut yang hilang, menghasilkan aturan-aturan yang mudah diinterpretasikan dan tercepat di antara algoritma-algoritma yang menggunakan memori utama di komputer (Quinlan, 1993; Han et al., 2001; Berry et al., 1997; Ruggieri, 2001). Bab 1 sudah membahas bahwa proses klasifikasi terdiri dari dua tahap, yaitu tahap belajar dari data pelatihan untuk menghasilkan model dan tahap klasifikasi yang menggunakan model untuk prediksi kelas. Pada tahap belajar dari data, algoritma C4.5 mengkonstruksi pohon keputusan dari data pelatihan, yang berupa kasuskasus atau rekord-rekord (tupel) dalam basisdata. Setiap kasus berisikan nilai dari atribut-atribut untuk sebuah kelas. Setiap atribut dapat berisi data diskret atau kontinyu (numerik). C4.5 juga menangani kasus yang tidak memiliki nilai untuk sebuah atau lebih atribut. Akan tetapi, atribut kelas hanya bertipe diskret dan tidak boleh kosong. Tiga prinsip kerja algoritma C4.5 pada tahap belajar dari data adalah: Pertama, pembuatan pohon keputusan. Obyektif dari algoritma penginduksi pohon keputusan adalah mengkonstruksi struktur data pohon (dinamakan pohon keputusan) yang dapat digunakan untuk memprediksi kelas dari sebuah kasus atau rekord baru yang belum memiliki kelas. C4.5 mengkonstruksi pohon keputusan dengan strategi divide dan conquer. Pada awalnya, hanya dibuat node akar dengan menerapkan algoritma divide dan conquer. Algoritma ini memilih pemecahan kasus-kasus yang terbaik dengan menghitung dan membandingkan gain ratio, kemudian pada node-node yang terbentuk di level berikutnya, algoritma divide dan conquer akan diterapkan lagi. Demikian seterusnya sampai terbentuk daun-

18

daun. Algoritma konstruksi pohon secara lengkap dibahas pada bagian II.2. Sebagai ilustrasi, dari data pelatihan pada Gambar II.1, C4.5 dapat menghasilkan pohon keputusan seperti terlihat pada Gambar II.2, menyatakan simpul dan elips menyatakan daun. dengan simbol kotak

Gambar II.1. Proses klasifikasi data: (a) Tahap belajar. (b) Tahap pengujian dan penggunaan aturan-aturan untuk mengklasifikasi rekord baru (Han et al., 2001).

Age? 40

Fair

Income?low high

Exc

Fair

Exc

Gambar II.2. Contoh pohon keputusan. Kedua, pemangkasan pohon keputusan dan evaluasi (opsional). Karena pohon yang dikonstruksi dapat berukuran besar dan tidak mudah dibaca, C4.5 dapat

19

menyederhanakan pohon dengan melakukan pemangkasan berdasarkan nilai tingkat kepercayaan (confidence level). Selain untuk pengurangan ukuran pohon, pemangkasan juga bertujuan untuk mengurangi tingkat kesalahan prediksi pada kasus (rekord) baru. Ketiga, pembuatan aturan-aturan dari pohon keputusan (opsional). Aturanaturan dalam bentuk if-then diturunkan dari pohon keputusan dengan melakukan penelusuran dari akar sampai ke daun. Setiap node dan syarat pencabangannya akan diberikan di if, sedangkan nilai pada daun akan menjadi ditulis di then. Setelah semua aturan dibuat, maka aturan akan disederhanakan (digabung atau diperumum). Sebagai contoh, aturan-aturan yang diturunkan dari pohon keputusan pada Gambar II.2 adalah:if Age < 31 or 31 v} , dimana v adalah sebuah nilai ambang.

Cara mencari v adalah sebagai berikut:

Mula-mula, sampel di X diurutkan

berdasarkan nilai dari a. Dimisalkan bahwa nilai yang terurut adalah v1,,vm. Jika

i [1, m 1] dan nilai v = (vi + vi +1 ) / 2 maka sampel yang dipecah dapatv dinyatakan dengan X 1v = {v j | v j v} dan X 2 = {v j | v j > v} .

Untuk setiap nilai v, gainv, dihitung dengan memperhatikan pemisahan sampel di atas. Information gain untuk a didefinisikan sebagai nilai maksimum dari semua gainv dan nilai v ditentukan sebagai nilai ambang threshold untuk atribut kontinyu ini. II.4 Kompleksitas pada Konstruksi Pohon Untuk pembahasan kompleksitas algoritma, digunakan notasi-notasi di bawah ini: Nd : jumlah nilai unik pada atribut diskret Nc : jumlah nilai unik pada atribut numerik atau kontinyu S : jumlah cabang atau split pada simpul, yang dapat bernilai Nd atau 2. |X| : kardinalitas sampel pada simpul

Dengan menggunakan notasi di atas, maka jumlah langkah yang diperlukan dalam konstruksi sebuah simpul adalah: |X| : untuk menghitung freq(C j , X ) .

-

Nd. |X| : untuk menghitung gain pada atribut diskret. N c . | X | .(log( X ) + 1) : untuk mengurutkan dan (dengan algoritma Quicksort) dan menghitung gain pada atribut kontinyu. (S+1).|X| : untuk mengkonstruksi partisi-partisi sampel S : untuk menghitung split info

-

Maka konstruksi sebuah simpul pohon akan memerlukan jumlah langkah : |X| + Nd. |X| + (S+1).|X| + S jika atribut split pada simpul bertipe diskret atau |X| + N c . | X | .(log( X ) + 1) + (S+1).|X| + S jika atribut bertipe kontinyu. Di sini terlihat bahwa, komputasi pada atribut kontinyu (O(N2.log(N)) memerlukan langkah yang lebih banyak dibandingkan dengan atribut diskret (O(N2)). Selain itu, karena jumlah nilai unik pada atribut kontinyu biasanya jauh lebih besar dibandingkan

24

dengan jumlah pada atribut diskret, maka komputasi pada atribut kontinyu memerlukan langkah yang jauh lebih besar. Dengan memperhatikan kompleksitas pada konstruksi sebuah simpul di atas, maka dapat disimpulkan bahwa: jumlah sampel pada himpunan data, jumlah dan jenis atribut, jumlah nilai unik pada atribut dan ukuran pohon (jumlah simpul dan daun)

berpengaruh terhadap waktu yang diperlukan untuk mengkonstruksi pohon atau efisiensi algoritma.II.5 Partisi Himpunan Data pada Konstruksi Pohon

Pada eksekusi Algoritma II.1, sampel data pada simpul pada langkah 10 lalu dipartisi menjadi sub-sub himpunan data yang juga disimpan di memori. Pada pemanggilan algoritma secara rekursif (langkah 13), setiap sub himpunan data lalu menjadi parameter masukan pada pemanggilan algoritma ini. Contoh dari partisi himpunan data menjadi sub-sub himpunan data ini diberikan pada Gambar II.1. Pada Gambar II.4, himpunan data sebelum dipartisi (atas) memiliki 5 atribut dan 14 sampel. Setelah dilakukan komputasi gain ratio untuk setiap atribut, ternyata didapati bahwa nilai gain ratio atribut age adalah tertinggi, sehingga age dijadikan test-attribute (langkah 6 dan 7). Selanjutnya, himpunan data dipartisi menjadi 3 sub himpunan data, s1 adalah partisi untuk age < 30, s2 untuk age 30-40 dan s3 untuk age > 40 (langkah 10) yang masing-masing memiliki 4 atribut dan jumlah sampel yang lebih sedikit dibandingkan dengan sampel orisinil. (Bahasan detil dari partisi data akan diberikan pada Bagian III.1.2.) Pemuatan seluruh dan partisi-partisi himpunan data pada memori ini menyebabkan algoritma C4.5 bergantung kepada ketersediaan memori pada sistem. Jika jumlah sampel pada himpunan data sangat besar, maka hal ini dapat menjadi masalah.

25

Gambar II.4. Contoh hasil partisi himpunan data pada eksekusi Algoritma II.1 untuk satu rekur (Han et all, 2001).

II.6 Hasil Penelitian yang Terkait dengan Pengembangan C4.5

Penelitian untuk mengembangkan C4.5 yang asli (versi 8) sudah dilakukan. Dari hasil studi yang penulis lakukan sampai dengan saat ini, penulis dapati bahwa penelitian antara lain sudah dilakukan untuk : (1) Memperbaiki teknik pemecahan kasus-kasus dengan menggunakan Gini index, statistik tabel kontingensi X2 dan G-statistic (Han et al., 2001). (2) Memperbaiki penanganan nilai atribut yang hilang dengan menghitung prediksi nilai terbaik dari nilai ini atau dengan memanfaatkan relasi antara atribut yang hilang dengan yang lainnya (Han et al., 2001).

26

(3) Memperbaiki penanganan atribut kontinyu untuk menghasilkan pohon keputusan yang berukuran lebih kecil tapi memiliki keakuratan prediksi yang tinggi (Quinlan, 1996). (4) Mengurangi tingkat kesalahan prediksi dengan teknik boosting (Ting et al., 2001; Zheng et al., 1998). (5) Meningkatkan waktu komputasi atau efisiensi dalam mengkonstruksi pohon dengan menggunakan binary tree dan counting sort (Ruggieri, 2001). Selain itu, sudah ada hasil-hasil penelitian untuk mengatasi masalahskalabilitas pada algoritma pohon keputusan C4.5 sebagaimana sudah dipaparkan

pada bagian Latar Belakang di Bab 1.

27

BAB III Pengembangan Skalabilitas Algoritma C4.5 dan Integrasinya ke dalam ORDBMSPada Bab 2 sudah dibahas bahwa prinsip kerja algoritma C4.5 pada proses belajar dari data terdiri dari tiga tahap, yaitu: a. Konstruksi atau pembuatan pohon keputusan dari himpunan data pelatihan. b. Pemangkasan pohon (opsional). c. Pembuatan aturan dari pohon (opsional). Masalah skalabilitas sebagai akibat dari pemuatan seluruh kasus-kasus pada himpunan data pelatihan terjadi pada tahap konstruksi pohon. Karena itu, penelitian ini akan berfokus kepada perbaikan algoritma untuk konstruksipohon keputusan, khususnya pada teknik pengaksesan sampel-sampel data.

Disebutkan pada Bab 1 bahwa karena algoritma akan diintegrasikan dengan ORDBMS, maka pendekatan yang dipilih untuk akses sampel data adalahkonsep operator relasi pada aljabar relasional, khususnya operator seleksi dan proyeksi, yang sudah menjadi fondasi DBMS. Konsep ini akan dimanfaatkan

pada algoritma untuk membaca data secara langsung ke tabel basisdata yang berukuran sangat besar maupun memuat partisi himpunan data (yang berukuran lebih kecil dibandingkan terhadap data asli) ke dalam memori untuk diproses lebih lanjut dengan cepat atau efisien. Dengan pendekatan tersebut, algoritma dirancang untuk memanfaatkan fungsi-fungsi yang tersedia di DBMS dan menggunakan dasar logika SQL agar lebih mudah dipahami (bagi yang sudah memahami SQL). Sedangkan integrasinya ke dalam ORDBMS akan memanfaatkan pengindeksan (khususnya bitmap), fungsi-fungsi kueri (dengan SQL), prosedur-prosedur tersimpan dan fitur lain yang disediakan ORDBMS.

28

III.1 Pembentukan Partisi Himpunan Data dan Komputasi Gain Ratio dengan SQL III.1.1 Operator Seleksi dan Proyeksi pada Aljabar Relasional

Dimisalkan X adalah sebuah tabel atau relasi yang memiliki atribut-atribut a1, a2, a3 dan a4 yang dinyatakan sebagai X = (a1, a2, a3, a4 ). Domain atribut-atribut tersebut adalah: a1, a2 Z , a1, a2 > 0 dan a1, a2 < 1000, a3 {v1, v2, ..., vm} dan a4 {v1, v2, ..., vn}. Operator seleksi dan proyeksi didefinisikan seperti di bawah ini (Conolly et al, 2002).a. Operator Seleksi (atau Restriksi),

Operasi seleksi diterapkan pada sebuah tabel dan menghasilkan tupel-tupel atau rekord-rekord yang memenuhi kondisi atau predikat tertentu. Representasi umum dari operasi seleksi adalah

predikat ( X )dengan X adalah nama tabel dan predikat adalah kondisi pada seleksi. Predikat dapat mengandung operator (AND) dan (OR). Sebagai contoh: -

a >500 ( X ) menghasilkan rekord(-rekord) pada X yang memenuhi kondisi a11

> 550, -

a 500 ( X ) menghasilkan rekord(-rekord) pada X yang memenuhi1 1

kondisi a1 550 dan -

a =v3

2

a1 =v4

( X ) menghasilkan rekord(-rekord) pada X yang memenuhi

kondisi a3 = v2 dan a1= v4.b. Operator Proyeksi,

Operasi seleksi diterapkan pada sebuah tabel dan menghasilkan tabel yang merupakan sub-himpunan vertikal (memiliki sebuah atribut atau sebagian atribut) dari tabel asli. Representasi umum dari operasi proyeksi adalah

a1 ,a2 ,...,as ( X )dengan X adalah nama tabel dan a1, a2, . . ., as adalah atribut-atribut yang dipilih.

29

Pada SQL, operator proyeksi diimplementasikan sebagai SELECT a1, a2, . . ., asFROM X, sedangkan operator seleksi pada klausul WHERE. Misalnya: SELECT a1, a2, . . ., as FROM X WHERE a1 550 dan SELECT a1, a2, . . ., as FROM X WHERE a3 = v2 AND a1= v4 .

Dalam kaitannya dengan partisi himpunan data yang diperlukan pada konstruksi pohon C4.5, operator seleksi dan proyeksi ini dapat dimanfaatkan untuk membentuk partisi-partisi pada simpul-simpul pohon yang lalu digunakan untuk membangun cabang pada simpul tersebut. Di bawah ini diberikan diskusi mengenai partisi himpunan data pada pohon keputusan C4.5.III.1.2 Partisi Himpunan Data dan Estimasi Ruang Memori

Dalam representasi model, pada Gambar III.1 ditunjukkan sebuah pohon keputusan beserta partisi-partisi himpunan datanya sampai kedalaman 2 level. Kotak menyatakan simpul pohon dan elips menyatakan daun, dimana daun tidak memiliki partisi himpunan data karena tidak memiliki cabang-cabang di bawahnya. Isi kotak, asi, menyatakan atribut split pada simpul ini, dengan indeks subskrip i menyatakan nomor simpul. Xi menyatakan himpunan data yang ditelaah untuk membangun cabang di bawah simpul-i. (asi dipilih berdasarkan nilai gain ratio pada Xi.) Pada pohon, himpunan data pada simpul-simpul di level-i himpunan data simpul level di atasnya merupakan partisi atau subset dari

(induknya), pada level-(i-1). Atau, dapat pula dinyatakan bahwa himpunan data pada simpul-simpul di level-i diperoleh dengan menerapkan sebuah fungsi filter tertentu, Hi, pada himpunan data pada simpul induknya, di level-(i-1). Dengan demikian, secara umum Xi dapat dituliskan sebagai X i = H i ( X i 1 ) (III.1)

dimana Hi adalah fungsi yang berisi operasi seleksi (memilih rekord-rekord yang memiliki atribut split pada simpul di induknya dengan nilai tertentu) dan proyeksi (mengeluarkan atribut split yang terdapat pada simpul induknya). Partisi himpunan data dan fungsi filter dibahas lebih lanjut di bawah ini.

30

X0

as0X1

Level - 0

X

2

Xm

as1X 11 X 1n

as2X 2s

asm

Level - 1

X mp

as11

...

as1n

...

as2s

...

asmp Level - 2

...

...

...

...

Gambar III.1. Pohon keputusan dan partisi himpunan data.

Jika diketahui himpunan data X0 = (a1, a2, a3, ..., ak), maka dapat didefinisikan himpunan atribut untuk X0, yaitu D = {a1, a2, a3, ..., ak}. Berdasarkan himpunan data dan atribut ini, maka himpunan partisi data dan fungsi-fungsi filter yang digunakan untuk membentuk partisi pada simpul-simpul anak dapat dirumuskan. Selain itu, kebutuhan ruang memori untuk menyimpan partisi-partisi himpunan data juga dapat diestimasi. Untuk ini, diasumsikan bahwa ruang memori yang diperlukan untuk menyimpan sebuah nilai atribut yang dapat bertipe integer, float atau diskret, adalah sebesar 1 word (untuk keperluan penyimpanan, nilai atribut diskret dapat diganti dengan sebuah nilai integer yang merepresentasikan nilai atribut diskret). Dengan demikian, estimasi kebutuhan ruang memori pada Level-0 adalah M X 0 =| X 0 | | D | word dimana |.| menyatakan kardinalitas himpunan.Pada Level -1:

Didefinisikan D0 = D {as0}, dimana as0 D. (Sebagai contoh, jika as0 = a3, maka D0 = { a1, a2, a4, a5, ..., ak } ). Partisi himpunan, Xi, pada simpul-simpul di Level-1 dapat dituliskan sebagai:1 0 Simpul-1: X = pred _ 1( as0 ) ( D 0 ( X )) atau

X 1 = H 1( X 0 )

dengan (III.2)

H 1 (.) = pred _ 1( as0 ) D 0

31

Simpul-2: X 2 = pred _ 2 ( as0 ) ( D 0 ( X 0 ))

atau

X 2 = H 2 ( X 0 ) dengan(III.3)

H 2 (.) = pred _ 2 ( as0 ) D 0 Simpul-m: X m = pred _ m ( as0 ) ( D 0 ( X 0 ))atau

X m = H m ( X 0 ) dengan(III.6)

H m (.) = pred _ m ( as0 ) D 0

Predikat yang terdapat pada operator , yang dinyatakan sebagai pred_i(as0), adalah predikat yang dikenakan pada atribut split pada simpul induknya, yaitu simpul-0. Estimasi kebutuhan ruang memori pada setiap simpul di Level-1 adalahM X i =| X i | | D 0 | word. Berdasarkan sifat dari operasi seleksi dan proyeksi yang

mengurangi jumlah rekord pada tabel, maka |Xi| < |X0|. Karena |D0| < |D|, maka disimpulkan bahwa M X i < M X 0 .Pada Level-2:

Untuk Simpul-11 s/d Simpul-1n, didefinisikan D1 = D0 {as1}, dimana as1 D0. Partisi himpunan, Xij, pada simpul-simpul ini dapat dituliskan sebagai:Simpul-11: X 11 = pred _ 11( as1 ) ( D1 ( X 1 )) atau

X 11 = H 11 ( X 0 ) dengan(III.7)

H 11 (.) = pred _ 11( as1 ) D1 pred _ 1( as0 ) D 0Simpul-1n: X 1n = pred _ 1n ( as1 ) ( D1 ( X 1 )) atau

X 1n = H 1n ( X 0 ) dengan(III.8)

H 1n (.) = pred _ 1n ( as1 ) D1 pred _ 1( as0 ) D 0

Untuk Simpul-m1 s/d Simpul mp, didefinisikan Dm = D0 {asm}, dimanaasm D0. Partisi himpunan, Xij, pada simpul-simpul ini dapat dituliskan

sebagai: m1 m Simpul-m1: X = pred _ m1( asm ) ( D m ( X ))

atau

X m1 = H m1 ( X 0 )(III.9)

m1 dengan H (.) = pred _ m1( asm ) D m pred _ 1( as0 ) D 0

32

-

Simpul-mp: X mp = pred _ mp ( asm ) ( D m ( X m ))

atau

X mp = H mp ( X 0 )(III.10)

mp dengan H (.) = pred _ mp ( as m ) D m pred _ 1( as0 ) D 0

Estimasi kebutuhan ruang memori pada setiap simpul di Level-2 adalahM X ij =| X ij | | D m |

word. Karena |Xij| < |Xi| dan |Dm| < |D0|, maka

M X ij < M X i < M X 0 .Pada Level 3:

Analogi dengan Level-1 dan Level-2 di atas, maka partisi himpunan data pada Simpul-mpq dapat didefinisikan sebagai:

X mpq = pred _ mpq ( as p ) ( D p ( X mp )) atau X mpq = H mpq ( X 0 )dengan

H mpq (.) = pred _ mpq ( as p ) D p pred _ mp ( asm ) D m pred _1( as0 ) D 0

(III.11)

Estimasi kebutuhan ruang memori pada setiap simpul di Level-3 adalahM X ijk =| X ijk | | D mp |

word.

Analogi

dengan

Level-2,

maka

M X ijk < M X ij < M X i < M X 0 .Pada level-level selanjutnya, partisi himpunan data dan filter pada simpul-simpul dapat dicari dengan melakukan analogi pada Level-3 di atas. Juga dapat ditunjukkan bahwa estimasi kebutuhan ruang memori untuk sebuah partisi data pada level yang makin dalam, akan makin kecil.

III.1.3 Perintah SQL untuk Partisi Himpunan Data

Perintah SQL mendukung implementasi fungsi-fungsi filter di atas dalam bentuk yang sederhana. Sebagai ilustrasi, tinjauan diberikan terhadap fungsi-fungsi filter di bawah ini:m - Pada level-1: H (.) = pred _ m ( as0 ) D 0

33

mp - Pada level-2: H (.) = pred _ mp ( as m ) D m pred _ 1( as0 ) D 0

- Pada level-3:

H mpq (.) = pred _ mpq ( as p ) D p pred _ mp ( asm ) D m pred _1( as0 ) D 0Pada fungsi-fungsi di atas, terlihat bahwa filter pada level yang lebih bawah (anak) memberikan tambahan sepasang operator seleksi dan proyeksi pada filter induknya. Pada perintah SQL, penambahan operator berimplikasi pada pengurangan atribut pada SELECT dan penambahan string operand pada klausul WHERE. Di bawah ini diberikan contohnya. Misalkan diketahui himpunan data X = (a1, a2, a3, a4 , a5), contoh representasi SQL pada ketiga level di atas dalam membentuk partisi data dapat disusun sbb:

Pada level-1, dimisalkan Hm(.) dapat ditulis sebagai

as0= a2 dan pred_m = a2 = male, maka filter

SELECT a1, a3, a4 , a5 FROM X WHERE

a2 = male.

Pada level-2, dimisalkan asm= a4 dan pred_mp = a4 < 500 maka filter Hmp(.)dapat ditulis sebagaiSELECT a1, a3, a5 FROM X WHERE a2 = male AND a4 < 500 .

Pada level-3, dimisalkan asp= a1 dan pred_mpq = a1 = brown maka filter Hmp(.) dapat ditulis sebagaiSELECT a3, a5 FROM X WHERE AND a1 = brown. a2 = male AND a4 < 500

III.1.4 Perintah SQL untuk Menghitung Jumlah Sampel

Pada Bab 2, sudah ditunjukkan bahwa perhitungan gain ratio pada sebuah atribut di himpunan data pelatihan memerlukan komputasi entropi untuk atribut tersebut, yang dinyatakan sebagai:

info( X ) = j =1

k

freq(C j , X ) |X|

freq(C j , X ) log 2 |X|

34

dengan k adalah jumlah kelas pada himpunan data X. freq(C j , X ) menyatakan jumlah sampel pada X yang memiliki nilai kelas Cj . |X| menyatakan kardinalitas (jumlah anggota) himpunan data X. Dengan memanfaatkan fungsi DBMS, freq(C j , X ) dapat diperoleh dengan perintah SQLSELECT C, COUNT(*) FROM tablename WHERE condition

dan hasilnya berupa sebuah tabel baru dengan kolom kelas C dan jumlah rekord (freq) yang memenuhi kondisi pada WHERE. Kondisi di sini bergantung kepada level simpul, dimana makin bawah posisi simpul, maka kondisi makin panjang, bertambah dengan satu operator seleksi untuk penambahan satu level (analogi dengan perintah SQL untuk memperoleh himpunan partisi data).III.2 Pengembangan Algoritma pada Konstruksi Pohon

Konsep

yang

dibahas

pada

sub-bab

III.1

dapat

dimanfaatkan

untuk

mengembangkan skalabilitas Algoritma II.1. Karena masalah utama yang terkait dengan skalabilitas pada algoritma ini adalah pemuatan seluruh sampel-sampel himpunan data ke dalam memori, maka hal ini akan dihindari. Pada DBMS, nilainilai atribut dan frekuensi sampel dengan nilai atribut yang sama pada himpunan data (untuk pemilihan test-attribute pada langkah 7) dapat langsung dari tabel basisdata (lihat bagian III.1.4). Tetapi pembacaan langsung ke basisdata dapat berakibat tingginya akses I/O dan memperlambat eksekusi (hal ini disimpulkan melalui eksperimen-eksperimen), sehingga pemuatan partisi himpunan data ke dalam memori masih akan diperlukan, tapi dibatasi untuk sub himpunan atau partisi data yang berukuran lebih kecil (lihat bagian III.1.3). Pada bagian III.1.3 ditunjukkan bahwa filter SQL pada level anak ternyata dapat dikonstruksi dengan menambahkan dan mengurangkan string tertentu pada filter di level induknya untuk mendapatkan partisi himpunan data yang kemudian digunakan untuk mengkonstruksi cabang di simpul anak ini. Pada Algoritma II.1 ditunjukkan bahwa konstruksi cabang di pohon dilakukan melalui pemanggilan algoritma secara rekursif dan partisi himpunan data dijadikan parameter pada

35

pemanggilan algoritma. Maka, pada algoritma yang dikembangkan, pemanggilan algoritma secara rekursif akan diberi parameter yang berupa string filter (yang diperbarui pada setiap pemanggilan). Pada bagian III.1.2 ditunjukkan bahwa makin dalam pohon, maka ruang memori yang diperlukan untuk menyimpan partisi himpunan data makin kecil. Sifat ini akan digunakan pada pengembangan algoritma, dimana pada kedalaman tertentu, pemuatan partisi himpunan data ke dalam memori hanya akan dilakukan untuk satu simpul pada setiap saat (yang lalu digunakan untuk membangun cabang pada simpul ini sampai tuntas, lalu memori dibebaskan lagi). Dengan memperhatikan bahasan pada bagian III.1, maka prinsip kerja algoritma untuk konstruksi pohon yang dikembangkan dan dapat menangani himpunan data yang (secara teoritis) berukuran tidak terbatas adalah (lihat Algoritma III.1): a. Sampai dengan kedalaman tertentu (diset sebagai parameter pengguna, yaitu

Max_depthDb), konstruksi pohon (induk) dilakukan dengan cara membacanilai-nilai atribut dan frekuensi sampel langsung dari basisdata (langkah 1 s/d 12). b. Selanjutnya, tiap cabang pohon dilanjutkan dengan memanggil Algoritma II.1 (langkah 22), dimana seluruh sampel pada himpunan data (yang menjadi parameter pada pemanggilan algoritma) akan dimuat di dalam memori. c. Pada butir (a), digunakan filter yang berisi klausul untuk mengekstraksi isi basisdata yang memenuhi kondisi tertentu (pada implementasinya akan berupa klausul WHERE seperti yang dibahas pada sub-bab III.1.3). Pada pemanggilan yang pertama (eksekusi rekur ke-1), filter tidak ada isinya (kosong). Lalu, pada setiap akhir rekur, filter akan diperbarui dan dijadikan parameter masukan pada pemanggilan algoritma ini secara rekursif (langkah ke 17 dan 18). Ilustrasi visual dari prinsip kerja Algoritma III.1 (Generate_decision_tree_ext ) diberikan pada Gambar III.2.

36

Buat pohon induk dengan mengakses tabel secara langsung (dengan operator seleksi) sampai kedalaman Max_depthDb.

pohon induk:Level - 0

Level - 1

pohon induk

pohon pass 1:Level - 1

tabel basisdata

i=1Level - 2

Muat partisi data, Xi, untuk simpul-i ke dalam memori dengan operator proyeksi dan seleksi.

Level - 3

pohon pass 2:

XiSelesaikan cabang pada simpul-i dengan menelaah partisi data di memori, Xi. Hapus Xi setelah selesai. Level - 1 Level - 2 Level - 3 Level - 4

pohon pass-i i=i+1Level - 5

T

i > jumlah simpul? pohon pass 3: stop

Ketr.: pada contoh, Max_depthDb = 2 (Max_depthDb: kedalaman pohon maksimum yang dikonstruksi dengan mengakses tabel basisdata secara langsung.)

Gambar III.2. Ilustrasi prinsip kerja Algoritma III.1 (Generate_decision_tree_ext).

37

_______________________________________________________________________________ Algorithm: Generate_decision_tree_ext Narrative: Generate a decision tree from the given training data. Input: The training samples (samples), maximum depth of tree built by accessing database directly (depth_Db), the WHERE clause string used to filtered out unwanted records in samples (Filter), list of attributes on samples, attribute-list Output: A decision tree. Method: (1) create a node N; (2) if depth_Db = 0 then read attribute-list from samples using Filter //access the database data dictionary (3) if depth_Db < Max_depthDb (4) if attribute-list is empty then (5) return N as a leaf node labeled with the most common class in samples; (6) read label and number of classes in samples using Filter (7) if samples are all of the same class, C then (8) return N as a leaf node labeled with the class C; (9) using Filter, select test-attribute from attribute-list with the highest gain ratio; (10) label node N with test-attribute; (11) for each known value ai of test-attribute; (12) grow a branch from node N for the condition test-attribute = ai; (13) using Filter, perform leaf test on sub samples having the condition test-attribute = ai; (14) if this branch is a candidate for leaf (15) attach a leaf labeled with the most common class in the sub samples; (16) else (17) update Filter for this nodes dataset partition (see III.3.3) and store in NewFilter (18) new_ attribute-list = attribute-list {test-attribute} (19) attach the node returned by Generate_decision_tree_ext (samples, (depth_Db+1), NewFilter, new_ attribute-list ); (20) else (21) new_samples = samples filtered using Filter (22) attach the node returned by Generate_decision_tree (new_samples, attribute-list);

Algoritma III.1 Algoritma konstruksi pohon keputusan yang dikembangkan pada algoritma C4.5Db.

Pada Algoritma III.1 terlihat bahwa logika algoritma sederhana dan diharapkan mudah dipahami bagi yang sudah mengenal SQL. Kesederhanaan logika dapat dirumuskan karena memanfaatkan SQL untuk filter (mengandung operator seleksi dan proyeksi) yang digunakan pada parameter pemanggilan algoritma secara rekursif. (Selanjutnya, algoritma konstruksi pohon tersebut akan digunakan pada algoritma C4.5Db, seperti sudah disebut pada Bab 1.) Beberapa aspek penting dari Algoritma III.1: a. Bersifat generik, dapat diimplementasikan di DBMS secara umum, karena: (1)

Filter yang digunakan pada pemilihan test-attribute dan pembuatan partisi datadikonstruksi dengan SQL yang merupakan bahasa standar pada DBMS.