Analisis Akurasi Algoritma Pohon Keputusan Dan K-Nearest Neighbor (k-NN)

(1)

TESIS

HULIMAN

117038025

PROGRAM STUDI S2 TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2013


(2)

TESIS

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Magister Teknik Informatika

HULIMAN 117038025

PROGRAM STUDI S2 TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2013


(3)

Judul : ANALISIS AKURASI ALGORITMA POHON KEPUTUSAN DAN K-NEAREST NEIGHBOR (k-NN)

Kategori : -

Nama : Huliman

Nomor Induk Mahasiswa : 117038025

Program Studi : S2 Teknik Informatika

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Dr. Erna Budhiarti Nababan, M.IT Prof. Dr. Herman Mawengkang

Diketahui/disetujui oleh

Program Studi S2 Teknik Informatika Ketua,

Prof. Dr. Muhammad Zarlis NIP. 19570701 198601 1 003


(4)

ANALISIS AKURASI ALGORITMA POHON KEPUTUSAN DAN K-NEAREST NEIGHBOR (k-NN)

TESIS

Saya mengakui bahwa tesis ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, 25 Juli 2013

Huliman 117038025


(5)

Sebagai sivitas akademika Universitas Sumatera Utara, saya yang bertanda tangan di bawah ini:

Nama : Huliman

NIM : 117038025

Program Studi : S2 Teknik Informatika Jenis Karya Ilmiah : Tesis

Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Sumatera Utara Hak Bebas Royalti Non-Eksklusif (Non-Exclusive Royalty Free Right) atas tesis saya yang berjudul:

ANALISIS AKURASI ALGORITMA POHON KEPUTUSAN DAN K-NEAREST NEIGHBOR (k-NN)

Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non-Eksklusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media, memformat, mengelola dalam bentuk database, merawat, dan mempublikasikan tesis saya tanpa meminta izin dari saya selama tetap mencantumkan nama saya sebagai penulis dan sebagai pemegang dan/atau sebagai pemilik hak cipta.

Demikian pernyataan ini dibuat dengan sebenarnya.

Medan, 25 Juli 2013

Huliman


(6)

PANITIA PENGUJI TESIS

Ketua : Prof. Dr. Herman Mawengkang Anggota : 1. Dr. Erna Budhiarti Nababan, M.IT

2. Prof. Dr. Muhammad Zarlis 3. Prof. Dr. Tulus


(7)

DATA PRIBADI

Nama Lengkap (berikut gelar) : Huliman, S.Kom

Tempat dan Tanggal Lahir : Medan, 15 Desember 1985

Alamat Rumah : Jl. Platina Raya Komplek The Ivory Blok E-17 Kel. Titipapan

Kec. Medan Deli

Telepon/Faks/HP : (061) 77053205 / 0852 7515 0011 E-mail : usu.huliman@gmail.com

Instansi Tempat Bekerja : 1) SMA Dr. Wahidin Sudirohusodo 2) STMIK TIME Medan

Alamat Kantor : 1) Jl. K.L. Yos Sudarso Km. 16,5 Pajak Rambe Kel. Martubung Kec. Medan Labuhan

2) Jl. Merbabu No. 32 AA-BB Medan

DATA PENDIDIKAN

SD : SD Dr. Wahidin Sudirohusodo TAMAT: 1997 SLTP : SLTP Dr. Wahidin Sudirohusodo TAMAT: 2000 SLTA : SMU Dr. Wahidin Sudirohusodo TAMAT: 2003 S1 : Sistem Informasi STMIK IBBI TAMAT: 2007 S2 : Teknik Informatika USU TAMAT: 2013


(8)

Pertama-tama penulis memanjatkan puji syukur kehadirat Tuhan Yang Maha Esa atas segala limpahan rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan tesis ini dengan baik dan tepat waktu.

Tesis ini disusun sebagai salah satu syarat untuk memperoleh ijazah Magister Teknik Informatika pada Program Studi S2 Teknik Informatika, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara (Fasilkom TI USU).

Dalam kesempatan ini, penulis hendak memberikan penghargaan dan mengucapkan terima kasih yang sebesar-besarnya kepada:

1. Bapak Prof. Dr. dr. Syahril Pasaribu, D.T.M.&H., M.Sc. (C.T.M.), Sp.A.(K.) selaku Rektor Universitas Sumatera Utara, atas kesempatan yang diberikan kepada penulis untuk mengikuti dan menyelesaikan pendidikan Pasca Sarjana. 2. Bapak Prof. Dr. Muhammad Zarlis, selaku Dekan Fakultas Ilmu Komputer dan

Teknologi Informasi Universitas Sumatera Utara, sekaligus Ketua Program Studi S2 Teknik Informatika dan penguji tesis yang telah memberikan masukan dan motivasi yang tidak ternilai harganya kepada penulis.

3. Bapak Prof. Dr. Herman Mawengkang, selaku pembimbing utama yang senantiasa memberikan arahan kepada penulis hingga selesainya tesis ini.

4. Ibu Dr. Erna Budhiarti Nababan, M.IT, selaku pembimbing kedua yang telah meluangkan waktu, tenaga, dan pikiran, serta kesabaran dalam menuntun dan mengarahkan penulis menjadi seorang peneliti sejati.

5. Bapak Prof. Dr. Tulus, selaku penguji tesis yang benar-benar memberikan masukan dan arahan yang berarti bagi penulis.

6. Bapak Prof. Dr. Drs. Iryanto, M.Si, selaku penguji tesis yang telah memberikan arahan dan motivasi yang luar biasa kepada penulis dalam penelitian ini.

7. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM, selaku Sekretaris Program Studi S2 Teknik Informatika yang telah memberikan perhatian dan masukan dalam pengerjaan tesis ini.

8. Seluruh dosen Program Studi S2 Teknik Informatika, Fasilkom TI USU yang telah memberikan bekal pengetahuan kepada penulis.


(9)

dahsyat” kepada penulis.

10. Ibu Madjakani Widjaja, yang senantiasa menjadi inspirator dan motivator bagi penulis serta memberikan doa sehingga penulis dapat menyelesaikan studi ini dengan baik dan tepat waktu.

11. Kedua orang tuaku, saudara, dan istri tercinta, Cristiena yang telah memberikan kasih sayang dan dengan penuh ketulusan mendoakan penulis agar selalu diberikan kekuatan lahir dan batin dalam menyelesaikan studi ini.

12. Perg. Dr. Wahidin Sudirohusodo, Medan Labuhan, tempat penulis mengabdikan diri sebagai Guru Bidang Studi Teknologi Informasi dan Komunikasi (TIK). 13. STMIK TIME Medan, tempat penulis mengabdikan diri sebagai Dosen Mata

Kuliah Algoritma dan Pemrograman sejak tahun 2007.

14. Rekan mahasiswa Program Studi S2 Teknik Informatika, Fasilkom TI USU Angkatan 2011 atas kerja sama dan kekompakan selama studi dan penelitian. 15. Seluruh staf/pegawai dan sivitas akademika Program Studi S2 Teknik

Informatika, Fasilkom TI USU atas kerja sama-nya selama studi dan penelitian.

Penulis menyadari sepenuhnya bahwa masih adanya kekurangan dalam penyajian tesis ini. Oleh karena itu, penulis mengharapkan masukan dan saran yang bersifat membangun demi penyempurnaan tesis ini di masa mendatang. Akhir kata, penulis berharap tesis ini dapat bermanfaat bagi para pembaca yang memiliki minat di bidang ilmu komputer dan teknologi informasi.

Medan, 25 Juli 2013

Huliman


(10)

Perkembangan teknologi basis data modern telah memungkinkan ruang penyimpanan yang besar dan hal ini menjadi latar belakang dikembangkannya konsep data mining. Salah satu fungsi utama data mining adalah fungsi klasifikasi yang digunakan untuk memprediksi kelas dan menghasilkan informasi berdasarkan data historis. Pada fungsi klasifikasi, terdapat banyak algoritma yang dapat digunakan untuk mengolah input menjadi output yang diinginkan, sehingga harus diperhatikan aspek performance dari masing-masing algoritma tersebut. Tujuan penelitian ini adalah untuk menganalisis dan membandingkan performance algoritma klasifikasi pohon keputusan (C4.5) dan k-Nearest Neighbor (k-NN) dari sudut pandang akurasi. Data sets penelitian berasal dari UCI data sets, yaitu BreastCancer, Car, Diabetes, Ionosphere, dan Iris. Adapun metode evaluasi yang digunakan pada kedua macam algoritma adalah 10-fold cross validation. Hasil evaluasi berupa confusion matrix untuk penilaian precision, recall, F-measure, dan success rate. Hasil analisis perbandingan akurasi menunjukkan bahwa nilai keakuratan algoritma pohon keputusan lebih baik dengan variasi 2.28% - 2.5% dibandingkan algoritma k-NN pada implementasi terhadap 5 data sets penelitian. Kata Kunci: Klasifikasi, Pohon Keputusan, k-NN, 10-fold Cross Validation, Confusion Matrix, Akurasi.


(11)

K-NEAREST NEIGHBOR (k-NN) ALGORITHM

ABSTRACT

The development of modern database technology has enabled large space of storage and this concept has become the background of the data mining applications. One of the main functions of data mining is the classification that is used to predict the class and generate information based on historical data. In the classification, there is a lot of algorithms that can be used to process the input into the desired output, thus it is very important to observe and measure the performance of each algorithm. The purpose of this research is to analyze and compare the performance of decision tree (C4.5) and k-Nearest Neighbor (k-NN) algorithm from the point of view of accuracy. Data sets are derived from UCI data sets, namely BreastCancer, Car, Diabetes, Ionosphere, and Iris. The evaluation method used in both kinds of algorithms is 10-fold cross validation. Evaluation result for each algorithm is a confusion matrix for measuring the precision, recall, F-measure, and success rate. Comparative analysis of the accuracy showed that the accuracy of the decision tree algorithm is better by variation of 2.28% - 2.5% compared to k-NN algorithm in the implementation for 5 research data sets.

Keywords: Classification, Decision Tree, k-NN, 10-fold Cross Validation, Confusion Matrix, Accuracy.


(12)

Hal

HALAMAN JUDUL i

PERSETUJUAN ii iiiiiiii

PERNYATAAN ORISINALITAS iii

PERSETUJUAN PUBLIKASI iv

PANITIA PENGUJI v

RIWAYAT HIDUP vi

UCAPAN TERIMA KASIH vii

ABSTRAK ix

ABSRACT x

DAFTAR ISI xi

DAFTAR TABEL xiv

DAFTAR GAMBAR xxxxxxxxxxxxv

BAB 1 : PENDAHULUAN

1.1. Latar Belakang 1 1.2. Perumusan Masalah 3 1.3. Batasan Masalah 3 1.4. Tujuan Penelitian 4 1.5. Manfaat Penelitian 4

BAB 2 : TINJAUAN PUSTAKA

2.1. Algoritma Pohon Keputusan 5 2.1.1. Pohon Keputusan ID3 7 2.1.2. Pohon Keputusan C4.5 9 2.2. Algoritma k-Nearest Neighbor (k-NN) 11 2.3. Data Mining 13 2.4. Jenis Data dalam Data Mining 20

2.5. Teknik Klasifikasi 24 2.6. Pengukuran Akurasi 26


(13)

2.8. Perbedaan dengan Riset yang Lain 30 2.9. Kontribusi Riset 30

BAB 3 : METODOLOGI PENELITIAN

3.1. Pendahuluan 31

3.2. Data yang Digunakan 31 3.2.1. Data Set BreastCancer 32 3.2.2. Data Set Car 32 3.2.3. Data Set Diabetes 33 3.2.4. Data Set Ionosphere 33 3.2.5. Data Set Iris 33 3.3. Analisis Sistem 34 3.3.1. Pohon Keputusan 34 3.3.2. k-Nearest Neighbor (k-NN) 36 3.3.3. Metode 10-fold Cross Validation 38 3.3.4. Confusion Matrix 38

3.4. Desain Sistem 40

3.4.1. Aplikasi Training Sets dan Testing Sets 42 3.4.2. Aplikasi Perhitungan Akurasi 44

BAB 4 : HASIL DAN PEMBAHASAN

4.1. Data Set BreastCancer 46

4.2. Data Set Car 48

4.3. Data Set Diabetes 50 4.4. Data Set Ionosphere 52 4.5. Data Set Iris 54 4.6. Analisis Perbandingan Akurasi 57 4.6.1. Penilaian Precision 57 4.6.2. Penilaian Recall 58 4.6.3. Penilaian F-measure 60 4.6.4. Penilaian Success Rate 61


(14)

5.1. Kesimpulan 63

5.2. Saran 64

DAFTAR PUSTAKA 65


(15)

Nomor Keterangan Hal

2.1. Confusion Matrix 28

2.2. Table of Confusion 28

3.1. Data Sets Penelitian 31

3.2. Informasi Atribut Data Set BreastCancer 32

3.3. Informasi Atribut Data Set Car 32

3.4. Informasi Atribut Data Set Diabetes 33

3.5. Informasi Atribut Data Set Iris 34

3.6. Table of Confusion Kelas “tested_negative” 39 3.7. Table of Confusion Kelas “tested_positive” 39 3.8. Nilai Akurasi berdasarkan Confusion Matrix Diabetes.arff 40 4.1. Nilai Akurasi Pohon Keputusan terhadap BreastCancer.arff 47 4.2. Nilai Akurasi k-NN terhadap BreastCancer.arff 48 4.3. Nilai Akurasi Pohon Keputusan terhadap Car.arff 49 4.4. Nilai Akurasi k-NN terhadap Car.arff 50 4.5. Nilai Akurasi Pohon Keputusan terhadap Diabetes.arff 51 4.6. Nilai Akurasi k-NN terhadap Diabetes.arff 52 4.7. Nilai Akurasi Pohon Keputusan terhadap Ionosphere.arff 53 4.8. Nilai Akurasi k-NN terhadap Ionosphere.arff 54 4.9. Nilai Akurasi Pohon Keputusan terhadap Iris.arff 55 4.10. Nilai Akurasi k-NN terhadap Iris.arff 56 4.11. Perbandingan Precision Pohon Keputusan dan k-NN 57 4.12. Perbandingan Recall Pohon Keputusan dan k-NN 59 4.13. Perbandingan F-Measure Pohon Keputusan dan k-NN 60 4.14. Perbandingan Success Rate Pohon Keputusan dan k-NN 61


(16)

Nomor Keterangan Hal

2.1. Konsep Pohon Keputusan 5

2.2. Struktur Pohon Keputusan 6

2.3. Pohon Keputusan Sebelum dan Setelah Dipangkas 11

2.4. Ilustrasi Kedekatan Kasus Pasien 12

2.5. Ilmu Data Mining 16

2.6. Peranan Bidang Ilmu Lain terhadap Data Mining 16 2.7. Tingkatan Pemanfaatan Data untuk Pengambilan Keputusan 17

2.8. Tahapan KDD pada Data Mining 18

2.9. Data Cube pada Data Warehouse 22

2.10. Contoh Model Klasifikasi 24

2.11. Prosedur 5-fold Cross Validation 26

2.12. Hasil Prediksi Kelas 27

3.1. Diagram Alir Perhitungan Akurasi Pohon Keputusan pada Diabetes.arff 35 3.2. Diagram Alir Perhitungan Akurasi k-NN pada Diabetes.arff 37

3.3. Metode 10-fold Cross Validation 38

3.4. Confusion MatrixDiabetes.arff 39

3.5. Interface WEKA 3.7.8 42

3.6. Tahapan Preprocess 43

3.7. Tahapan Classify 44

3.8. Interface Confusion Matrix for Accuracy 44 4.1. Perhitungan Akurasi Pohon Keputusan terhadap BreastCancer.arff 46 4.2. Perhitungan Akurasi k-NN terhadap BreastCancer.arff 47 4.3. Perhitungan Akurasi Pohon Keputusan terhadap Car.arff 48 4.4. Perhitungan Akurasi k-NN terhadap Car.arff 49 4.5. Perhitungan Akurasi Pohon Keputusan terhadap Diabetes.arff 51 4.6. Perhitungan Akurasi k-NN terhadap Diabetes.arff 52 4.7. Perhitungan Akurasi Pohon Keputusan terhadap Ionosphere.arff 53 4.8. Perhitungan Akurasi k-NN terhadap Ionosphere.arff 54 4.9. Perhitungan Akurasi Pohon Keputusan terhadap Iris.arff 55 4.10. Perhitungan Akurasi k-NN terhadap Iris.arff 56

4.11. Grafik Perbandingan Precision 58

4.12. Grafik Perbandingan Recall 59

4.13. Grafik Perbandingan F-measure 60


(17)

Perkembangan teknologi basis data modern telah memungkinkan ruang penyimpanan yang besar dan hal ini menjadi latar belakang dikembangkannya konsep data mining. Salah satu fungsi utama data mining adalah fungsi klasifikasi yang digunakan untuk memprediksi kelas dan menghasilkan informasi berdasarkan data historis. Pada fungsi klasifikasi, terdapat banyak algoritma yang dapat digunakan untuk mengolah input menjadi output yang diinginkan, sehingga harus diperhatikan aspek performance dari masing-masing algoritma tersebut. Tujuan penelitian ini adalah untuk menganalisis dan membandingkan performance algoritma klasifikasi pohon keputusan (C4.5) dan k-Nearest Neighbor (k-NN) dari sudut pandang akurasi. Data sets penelitian berasal dari UCI data sets, yaitu BreastCancer, Car, Diabetes, Ionosphere, dan Iris. Adapun metode evaluasi yang digunakan pada kedua macam algoritma adalah 10-fold cross validation. Hasil evaluasi berupa confusion matrix untuk penilaian precision, recall, F-measure, dan success rate. Hasil analisis perbandingan akurasi menunjukkan bahwa nilai keakuratan algoritma pohon keputusan lebih baik dengan variasi 2.28% - 2.5% dibandingkan algoritma k-NN pada implementasi terhadap 5 data sets penelitian. Kata Kunci: Klasifikasi, Pohon Keputusan, k-NN, 10-fold Cross Validation, Confusion Matrix, Akurasi.


(18)

K-NEAREST NEIGHBOR (k-NN) ALGORITHM

ABSTRACT

The development of modern database technology has enabled large space of storage and this concept has become the background of the data mining applications. One of the main functions of data mining is the classification that is used to predict the class and generate information based on historical data. In the classification, there is a lot of algorithms that can be used to process the input into the desired output, thus it is very important to observe and measure the performance of each algorithm. The purpose of this research is to analyze and compare the performance of decision tree (C4.5) and k-Nearest Neighbor (k-NN) algorithm from the point of view of accuracy. Data sets are derived from UCI data sets, namely BreastCancer, Car, Diabetes, Ionosphere, and Iris. The evaluation method used in both kinds of algorithms is 10-fold cross validation. Evaluation result for each algorithm is a confusion matrix for measuring the precision, recall, F-measure, and success rate. Comparative analysis of the accuracy showed that the accuracy of the decision tree algorithm is better by variation of 2.28% - 2.5% compared to k-NN algorithm in the implementation for 5 research data sets.

Keywords: Classification, Decision Tree, k-NN, 10-fold Cross Validation, Confusion Matrix, Accuracy.


(19)

1.1. Latar Belakang

Teknologi komputasi dan media penyimpanan telah memungkinkan manusia untuk mengumpulkan dan menyimpan data dari berbagai sumber dengan jangkauan yang amat luas. Berkaitan dengan ini, teknologi basis data modern telah menghasilkan ruang penyimpanan yang besar. Namun, teknologi untuk membantu menganalisa, memahami, atau bahkan memvisualisasikan data belum banyak tersedia. Hal inilah yang melatarbelakangi dikembangkannya konsep data mining.

Data mining adalah suatu istilah yang digunakan untuk menemukan pengetahuan yang tersembunyi di dalam database atau bisa disebut dengan Knowledge Discovery in Database (KDD). Data mining merupakan proses semi otomatik yang menggunakan teknik statistik, matematika, kecerdasan buatan, dan machine learning untuk mengekstraksi dan mengidentifikasi informasi pengetahuan potensial dan berguna yang bermanfaat yang tersimpan di dalam database besar. (Turban, et al., 2005)

Menurut Gartner Group, data mining adalah suatu proses menemukan hubungan yang berarti, pola, dan kecenderungan dengan memeriksa dalam sekumpulan besar data yang tersimpan dalam penyimpanan dengan menggunakan teknik pengenalan pola seperti teknik statistik dan matematika. (Larose, 2005)

Secara umum, terdapat enam fungsi dalam data mining untuk menemukan atau menggali pengetahuan dalam data yang berukuran besar, yaitu fungsi deskripsi, estimasi, prediksi, klasifikasi, clustering, dan asosiasi. Ketiga fungsi pertama dikenal sebagai fungsi minor (fungsi tambahan) dan ketiga fungsi terakhir dikenal sebagai fungsi mayor (fungsi utama). Setiap fungsionalitas akan menghasilkan pengetahuan atau pola yang berbeda satu sama lain dan masing-masing fungsionalitas memiliki algoritma yang dapat diterapkan.

Untuk setiap fungsi data mining, diperlukan algoritma dan metode yang sesuai untuk pengolahan input menjadi output yang diinginkan. Atas dasar inilah, terdapat


(20)

fungsi klasifikasi terdiri dari Statistical-Based Algorithms, Distance-Based Algorithms, Decision Tree-Based Algorithms, Neural Network-Based Algorithms, dan Rule-Based Algorithms. (Dunham, 2003)

Statistical-Based Algorithms meliputi Regression dan Bayesian Classification. Distance-Based Algorithms meliputi Simple Approach dan k-Nearest Neighbor (k-NN). Decision Tree-Based Algorithms meliputi ID3, C4.5, C5.0, CART, dan Scalable DT Techniques. Neural Network-Based Algorithms meliputi Propagation, NN Supervised Learning, Radial Basis Function Networks, dan Perceptrons. Rule-Based Algorithms meliputi Generating Rules from a DT, Generating Rules from a Neural Net, dan Generating Rules Without a DT or NN. (Dunham, 2003)

Demikian juga dengan fungsi data mining lainnya seperti clustering, aturan asosiasi, deskripsi, estimasi, dan prediksi, juga memiliki sejumlah algoritma untuk digunakan.

Menurut Wu, et al. (2007), terdapat sejumlah algoritma fungsi data mining yang dipilih menjadi Top 10algorithm data mining. Hasilnya, diperoleh bahwa algoritma klasifikasi menjadi mayoritas dalam Top 10 algorithm. Adapun algoritma klasifikasi yang terbaik dalam Top 10 algorithm data mining adalah pohon keputusan C4.5, k-Nearest Neighbor (k-NN), Naive Baiyes, dan Classification and Regression Trees (CART).

Galathiya, et al. (2012) melakukan penelitian dengan melakukan pengembangan pada algoritma pohon keputusan C4.5 dan melakukan perbandingan terhadap algoritma Naive Bayes, Sequential Minimal Optimization (SMO), dan multilayer perceptron dengan menggunakan sejumlah data sets dan pengujian akurasi berdasarkan kepada Correctly Classified Instances dan Relative Absolute Error. Hasilnya, algoritma pohon keputusan C4.5 yang dikembangkan memiliki tingkat akurasi sekitar 1-3% lebih baik pada 7 data sets dari total 9 data sets.

Othman & Yau (2007) melakukan penelitian berjudul “Comparison of Different Classification Techniques using WEKA for Breast Cancer”. Metode pengujian yang digunakan berupa percentage split sebesar 75%, artinya 75% data digunakan sebagai data training dan 25% sisanya sebagai data testing. Pengujian akurasi berdasarkan kepada Correctly Classified Instances, Incorrectly Classified Instances, dan Time


(21)

Taken. Hasilnya, algoritma Naive Bayes memiliki tingkat akurasi tertinggi dan waktu pembangunan model tercepat dibandingkan dengan Radial Basis Function, Decision Tree and Pruning, Single Conjunctive Rule Learner, dan Nearest Neighbors Algorithm.

Defiyanti & Pardede (2010) melakukan penelitian dengan melakukan perbandingan kinerja algoritma pohon keputusan Iterative Dichotomiser 3 (ID3) dan C4.5 dalam klasifikasi Spam-mail. Pengukuran kinerja didasarkan atas jumlah data dan jumlah atribut. Hasilnya, diperoleh bahwa algoritma ID3 memiliki kinerja (precision, recall, dan accuracy) yang lebih baik dibandingkan C4.5.

Berdasarkan latar belakang tersebut di atas, penulis mencoba melakukan penelitian untuk membandingkan akurasi dua macam algoritma yang merupakan bagian dari Top 10 algorithmdata mining, yaitu algoritma pohon keputusan C4.5 dan k-Nearest Neighbor (k-NN) pada sejumlah data sets. Adapun sumber data sets adalah UC Irvine Machine learning Repository (UCI Machine learning Repository) dimana setiap data sets memiliki jumlah data (instances) dan jumlah atribut (attributes) yang berbeda. Pengukuran akurasi menghasilkan confusion matrix untuk penilaian precision, recall, dan F-measure. Atas dasar inilah, penulis tertarik untuk mengambil

judul: ANALISIS AKURASI ALGORITMA POHON KEPUTUSAN DAN K-NEAREST NEIGHBOR (k-NN).

1.2. Perumusan Masalah

Algoritma yang sesuai untuk pengolahan input menjadi output yang diharapkan harus mempertimbangkan aspek performance. Pada penelitian ini, rumusan masalah adalah bagaimana melakukan pengukuran dan perbandingan performance algoritma pohon keputusan dan k-NN dari sudut pandang akurasi berdasarkan confusion matrix menggunakan metode evaluasi 10-fold cross validation.

1.3. Batasan Masalah

Rumusan masalah di atas, dibatasi dengan beberapa hal sebagai berikut:

1. Data yang akan digunakan adalah 5 data sets yang diperoleh dari UC Irvine Machine learning Repository (UCI Machine Learning Repository), meliputi: Breast Cancer, Car, Diabetes, Ionosphere, dan Iris.


(22)

3. Hasil pengujian akurasi berupa confusion matrix untuk penilaian precision, recall, F-measure, dan success rate.

1.4. Tujuan Penelitian

Adapun tujuan penelitian ini adalah untuk melakukan pengukuran akurasi dan menganalisis perbandingan tingkat akurasi algoritma klasifikasi pohon keputusan dan k-NN berdasarkan confusion matrix menggunakan metode evaluasi 10-fold cross validation.

1.5. Manfaat Penelitian

Manfaat yang diharapkan dari hasil penelitian ini adalah sebagai berikut:

1. Dapat mengetahui lebih dalam tentang fungsi klasifikasi pada data mining. 2. Dapat mengetahui penilaian akurasi algoritma pohon keputusan dan k-NN

berdasarkan confusion matrix, meliputi precision, recall, F-measure, dan success rate.

3. Dapat mengetahui metode evaluasi 10-fold cross validation.

4. Hasil penelitian dapat menjadi rujukan para pembaca dalam memahami performance algoritma klasifikasi, terutama aspek akurasi pada data mining.


(23)

2.1. Algoritma Pohon Keputusan

Salah satu metode data mining yang umum digunakan adalah pohon keputusan. Metode pohon keputusan mengubah fakta yang sangat besar menjadi pohon keputusan yang merepresentasikan rule. Pohon keputusan adalah salah satu metode klasifikasi yang paling populer karena mudah untuk diinterpretasikan oleh manusia. Konsep dari pohon keputusan adalah mengubah data menjadi model pohon keputusan (decision tree) dan aturan-aturan (rule), ditunjukkan pada Gambar 2.1 berikut.

Gambar 2.1. Konsep Pohon Keputusan

Data dalam pohon keputusan biasanya dinyatakan dalam bentuk tabel dengan atribut dan record. Atribut menyatakan suatu parameter yang dibuat sebagai kriteria dalam pembentukan tree. Misalkan, untuk menentukan bermain tenis atau tidak, kriteria yang diperhatikan adalah cuaca, angin dan temperatur. Salah satu atribut merupakan atribut yang menyatakan data solusi per-item data yang disebut dengan target atribut. Atribut memiliki nilai-nilai yang dinamakan dengan instance. Misalkan atribut cuaca mempunyai instances berupa cerah, berawan, dan hujan.

Proses pada pohon keputusan adalah mengubah bentuk data (tabel) menjadi model pohon keputusan, mengubah model pohon keputusan menjadi aturan (Jayanti, et al., 2008). Manfaat utama dari penggunaan pohon keputusan adalah kemampuannya untuk mem-break down proses pengambilan keputusan yang kompleks menjadi lebih sederhana sehingga pengambilan keputusan akan lebih menginterpretasikan solusi permasalahan. Pohon keputusan juga berguna untuk mengeksplorasi data, yaitu menemukan hubungan tersembunyi antara sejumlah calon variabel input dengan sebuah variabel target.


(24)

tree dihubungkan dengan sebuah aturan, dimana premis terdiri atas sekumpulan node-node yang ditemui, dan kesimpulan dari aturan terdiri atas kelas yang terhubung dengan leaf dari path. Gambar 2.2 menunjukkan struktur pohon keputusan.

Gambar 2.2. Struktur Pohon Keputusan (Defiyanti & Pardede, 2010)

Bagian awal dari pohon keputusan ini adalah titik akar (root), sedangkan setiap cabang dari pohon keputusan merupakan pembagian berdasarkan hasil uji dan titik akhir (leaf) merupakan pembagian kelas yang dihasilkan.

Pohon keputusan mempunyai tiga (3) tipe simpul, yaitu:

1. Simpul akar (root)  tidak memiliki cabang yang masuk dan memiliki cabang lebih dari satu, terkadang tidak memiliki cabang sama sekali. Simpul ini biasanya berupa atribut yang paling memiliki pengaruh terbesar pada suatu kelas tertentu. 2. Simpul internal (node)  hanya memiliki satu cabang yang masuk dan memiliki lebih dari satu cabang yang keluar.

3. Simpul daun (leaf)  simpul akhir yang hanya memiliki satu cabang yang masuk dan tidak memiliki cabang sama sekali sekaligus menandai bahwa simpul tersebut merupakan label kelas.

Tahapan awal adalah pengujian simpul akar. Jika pada pengujian simpul akar menghasilkan sesuatu, maka proses pengujian juga dilakukan pada setiap cabang berdasarkan hasil dari pengujian. Hal ini berlaku juga untuk simpul internal dimana suatu kondisi pengujian baru akan diterapkan pada simpul daun. Pada umumnya proses dari sistem pohon keputusan adalah mengadopsi strategi pencarian top-down untuk solusi ruang pencariannya. Pada proses mengklasifikasikan sampel yang tidak


(25)

diketahui, nilai atribut akan diuji pada pohon keputusan dengan cara melacak jalur dari titik akar sampai titik akhir, kemudian akan diprediksikan kelas yang ditempati sampel baru tersebut.

Pohon keputusan banyak digunakan dalam proses data mining karena memiliki beberapa kelebihan, yaitu:

1. Tidak memerlukan biaya yang mahal saat membangun algoritma. 2. Mudah untuk diinterpetasikan.

3. Mengakomodasi data yang hilang.

4. Mudah mengintegrasikan dengan sistem basis data. 5. Memiliki nilai ketelitian yang lebih baik.

6. Dapat menemukan hubungan tak terduga dan suatu data. 7. Dapat menggunakan data pasti/mutlak atau data kontinu.

2.1.1. Pohon Keputusan ID3

Algoritma ID3 atau Iterative Dichotomiser 3 (ID3) merupakan sebuah metode yang

digunakan untuk membuat pohon keputusan yang telah dikembangkan oleh J. Ross Quinlan pada sekitar akhir 1970-an dan awal 1980-an (Han, et al., 2006).

Algoritma pada metode ini menggunakan konsep dari entropy informasi. Algoritma ini melakukan pencarian secara rakus/menyeluruh (greedy) pada semua kemungkinan pohon keputusan.

Secara ringkas, langkah kerja algoritma ID3 dapat digambarkan sebagai berikut (Defiyanti & Pardede, 2010):

1. Hitung entropy dan information gain dari setiap atribut dengan menggunakan rumus:

� = −�+ �+− �− �−

dimana:

S = ruang (data) sampel yang digunakan untuk training

P+ = jumlah yang bersolusi positif (mendukung) pada data sampel untuk kriteria tertentu

P- = jumlah yang bersolusi negatif (tidak mendukung) pada data sampel untuk kriteria tertentu


(26)

�� , � = � − ∑ || | �| � � � ∈ � � �

dimana:

S = ruang (data) sampel yang digunakan untuk training A = atribut

V = suatu nilai yang mungkin untuk atribut A Nilai(A) = himpunan yang mungkin untuk atribut A |Sv| = jumlah sampel untuk nilai V

|S| = jumlah seluruh sampel data

Entropy(Sv) = entropy untuk sampel-sampel yang memiliki nilai V

Tujuan dari pengukuran nilai information gain adalah untuk memilih atribut yang akan dijadikan cabang pada pembentukan pohon keputusan. Dalam hal ini, dipilih atribut yang memiliki nilai information gain terbesar.

2. Bentuk simpul yang berisi atribut tersebut.

3. Ulangi proses perhitungan information gain yang akan terus dilaksanakan sampai semua data telah termasuk dalam kelas yang sama. Atribut yang telah dipilih tidak diikutkan lagi dalam perhitungan nilai information gain.

ID3 berhenti jika atribut sempurna mengklasifikasikan training sets atau secara rekursif mengoperasikan nilai n, dimana n adalah banyaknya nilai kemungkinan dari suatu untuk mendapatkan atribut terbaik.

Adapun sampel data yang digunakan oleh ID3 memiliki beberapa syarat, yaitu:

a) Deskripsi atribut-nilai. Atribut yang sama harus mendeskripsikan tiap contoh dan memiliki jumlah nilai yang sudah ditentukan.

b) Kelas yang sudah didefinisikan sebelumnya. Suatu atribut contoh harus sudah didefinisikan, karena mereka tidak dipelajari oleh ID3.

c) Kelas-kelas yang diskrit. Kelas harus digambarkan dengan jelas. Kelas yang kontinu dipecah-pecah menjadi kategori-kategori yang relatif, misalnya saja metal dikategorikan menjadi “hard, quite hard, flexible, soft, quite soft”.


(27)

d) Jumlah contoh (example) yang cukup. Karena pembangkitan induktif digunakan, maka dibutuhkan test case yang cukup untuk membedakan pola yang valid dari peluang suatu kejadian.

2.1.2. Pohon Keputusan C4.5

Algoritma Classification version 4.5 atau biasanya disebut C4.5 adalah pengembangan dari algoritma ID3. Oleh karena pengembangan tersebut, algoritma C4.5 mempunyai prinsip dasar kerja yang sama dengan algoritma ID3. Menurut Khoonsari, et al. (2012), C4.5 memiliki beberapa kelebihan yaitu:

a) C4.5 dapat menangani atribut kontinu dan diskrit.

b) C4.5 dapat menangani training data dengan missing value. c) Hasil pohon keputusan C4.5 akan dipangkas setelah dibentuk. d) Pemilihan atribut yang dilakukan dengan menggunakan gain ratio.

Information gain pada ID3 lebih mengutamakan pengujian yang menghasilkan banyak keluaran. Dengan kata lain, atribut yang memiliki banyak nilai yang dipilih sebagai splitting atribut. Sebagai contoh, pembagian terhadap atribut yang berfungsi sebagai unique identifier, seperti product_ID¸ akan menghasilkan keluaran dalam jumlah yang banyak, di mana setiap keluaran hanya terdiri dari satu tuple. Partisi semacam ini tentu saja bersifat pure, sehingga informasi yang dibutuhkan untuk mengklasifikasi D berdasarkan partisi seperti ini sebesar Infoproduct_ID(D)=0. Sebagai akibatnya, information gain yang dimiliki atribut product_ID menjadi maksimal. Padahal, jelas sekali terlihat bahwa partisi semacam ini tidaklah berguna. Oleh karena itu, algoritma C4.5 yang merupakan suksesor dari ID3 menggunakan gain ratio untuk memperbaiki information gain, dengan rumus gain ratio adalah:

�� � � , � = � ��� , �, � dimana:

S = ruang (data) sampel yang digunakan untuk training A = atribut

Gain(S,A) = informationgain pada atribut A SplitInfo(S,A) = splitinformation pada atribut A


(28)

Atribut dengan nilai gain ratio tertinggi dipilih sebagai atribut test untuk simpul. Pendekatan ini menerapkan normalisasi pada information gain dengan menggunakan apa yang disebut sebagai split information. SplitInfo menyatakan entropy atau informasi potensial dengan rumus:

� � , � = − ∑

=

dimana:

S = ruang (data) sampel yang digunakan untuk training A = atribut

Si = jumlah sampel untuk atribut i

Pada saat pembangunan pohon keputusan, banyaknya cabang mungkin mencerminkan adanya noise atau outlier pada training data. Pemangkasan pohon dapat dilakukan untuk mengenali dan menghapus cabang-cabang tersebut. Pohon yang dipangkas akan menjadi lebih kecil dan lebih mudah dipahami. Pohon semacam itu biasanya juga menjadi lebih cepat dan lebih baik dalam melakukan klasifikasi.

Ada dua metode pemangkasan pohon keputusan, yaitu:

a. Prepruning yaitu menghentikan pembangunan suatu subtree lebih awal, yaitu dengan memutuskan untuk tidak lebih jauh mempartisi data training. Pada pendekatan prepruning, sebuah pohon dipangkas dengan cara menghentikan pembangunannya jika partisi yang akan dibuat dianggap tidak signifikan.

b. Postpruning yaitu menyederhanakan pohon dengan cara membuang beberapa cabang subtree setelah pohon selesai dibangun. Metode postpruning ini merupakan metode standar untuk algoritma C4.5.


(29)

Gambar 2.3 memperlihatkan perbedaan pohon keputusan sebelum dan setelah dipangkas.

Gambar 2.3. Pohon Keputusan Sebelum dan Setelah Dipangkas (Han, et al., 2006)

Pemangkasan pohon juga dapat digunakan untuk mengatasi overfitting. Overfitting terjadi karena ada noise data training, yaitu data yang tidak relevan sehingga mengakibatkan pohon memiliki subtree yang panjang dan tidak seimbang. Misalnya, internal node memiliki kelas YA = 5 dan TIDAK = 1. Data yang berada pada kelas TIDAK merupakan noise, sehingga apabila data tersebut diolah akan menghasilkan pohon dengan subtree yang panjang. Overfitting juga dapat terjadi karena data training yang sedikit.

2.2. Algoritma k-Nearest Neighbor (k-NN)

Nearest Neighbor adalah pendekatan untuk mencari kasus dengan menghitung kedekatan antara kasus baru dengan kasus lama, yaitu berdasarkan pada pencocokan bobot dari sejumlah fitur yang ada. Misalkan, diinginkan untuk mencari solusi terhadap seorang pasien baru dengan menggunakan solusi dari pasien terdahulu. Untuk mencari kasus pasien mana yang akan digunakan maka dihitung kedekatan kasus pasien baru dengan semua kasus pasien lama. Kasus pasien lama dengan jarak terdekat yang akan diambil solusinya untuk digunakan pada kasus pasien baru.


(30)

Gambar 2.4. Ilustrasi Kedekatan Kasus Pasien (Larose, 2005)

Seperti tampak pada Gambar 2.4, terdapat tiga pasien lama A, B, dan C. Ketika ada pasien baru (New), maka solusi yang akan diambil adalah solusi dari pasien terdekat dari pasien baru. Seandainya d1 adalah kedekatan antara pasien baru dan pasien A, d2 adalah kedekatan antara pasien baru dengan pasien B, dan d3 adalah kedekatan antara pasien baru dengan pasien C, maka terlihat bahwa d1 lebih dekat daripada d2 dan d3. Dengan demikian, solusi dari pasien A yang akan digunakan untuk memberikan solusi pada pasien baru.

Algoritma k-NN merupakan distance-based algorithm yang menggunakan prinsip similarity untuk menyelesaikan kasus klasifikasi. Algoritma k-NN sangat sederhana. Algoritma ini bekerja berdasarkan jarak minimum dari data baru terhadap K tetangga terdekat yang telah ditetapkan. Setelah diperoleh K tetangga terdekat, prediksi kelas dari data baru, akan ditentukan berdasarkan mayoritas K tetangga terdekat. (Dunham, 2003)

Adapun penjelasan cara kerja algoritma k-NN adalah: 1. Tentukan parameter k sebagai jumlah tetangga terdekat.

2. Hitung jarak antara data baru dengan semua data training dengan rumus Euclidean Distance sebagai berikut.

� ( , ) = √∑ ( ℎ− ℎ) ℎ=

dimana: ti = {ti1, … , tik} dan tj = {tj1, … , tjk}

3. Urutkan jarak tersebut dan tetapkan tetangga terdekat berdasarkan jarak minimum ke-k.


(31)

4. Periksa kelas dari tetangga terdekat.

5. Gunakan mayoritas sederhana dari kelas tetangga terdekat sebagai nilai prediksi data baru.

Berikut ini ditunjukkan algoritma k-NN dalam bentuk pseudocode (Dunham, 2003).

Input:

T // Training data

K // Number of neighbors T // Input tuple to classify Output:

C // Class to which t is assigned k-NN algorithm:

// Algorithm to classify tuple using k-NN N=0

// Find set of neighbors, N, for t for each d T do

if |N| ≤ K, then N = N {d}; else

if u N such that sim(t,u) ≤ sim(t,d), then

begin

N = N – {u}; N = N {d}; end

// Find class for classification

c = class to which the most u N are classified;

2.3. Data Mining

Data mining adalah suatu istilah yang digunakan untuk menemukan pengetahuan yang tersembunyi di dalam database atau bisa disebut dengan Knowledge Discovery in Database (KDD). Data mining merupakan proses semi otomatik yang menggunakan


(32)

mengekstraksi dan mengidentifikasi informasi pengetahuan potensial dan berguna yang bermanfaat yang tersimpan di dalam database besar. (Turban, et al., 2005 ). Menurut Gartner Group, data mining adalah suatu proses menemukan hubungan yang berarti, pola, dan kecenderungan dengan memeriksa dalam sekumpulan besar data yang tersimpan dalam penyimpanan dengan menggunakan teknik pengenalan pola seperti teknik statistik dan matematika (Larose, 2005).

Secara umum, terdapat enam fungsi dalam data mining untuk menemukan atau menggali pengetahuan dalam data yang berukuran banyak, yaitu fungsi deskripsi, estimasi, prediksi, klasifikasi, clustering, dan asosiasi. Ketiga fungsi pertama dikenal sebagai fungsi minor (fungsi tambahan) dan ketiga fungsi terakhir dikenal sebagai fungsi mayor (fungsi utama). Setiap fungsionalitas akan menghasilkan pengetahuan atau pola yang berbeda satu sama lain dan masing-masing fungsionalitas memiliki algoritma yang dapat diterapkan.

Ada beberapa macam definisi data mining menurut para ahli, diantaranya: 1. Proses penemuan pola yang menarik dari data yang tersimpan dalam jumlah besar. 2. Ekstraksi suatu informasi yang berguna atau menarik berupa pola atau

pengetahuan dari data yang disimpan dalam jumlah besar.

3. Serangkaian proses untuk menggali nilai tambah berupa informasi yang selama ini tidak dikenal, tidak diketahui secara manual dari suatu basis data.

4. Data mining adalah proses penemuan informasi yang berguna pada penyimpanan data yang besar secara otomatis. (Tan, et al., 2006)

5. “Data miningis a process of discovering various models, summaries, and derived values from a given collection of data.” (Mehmed Kantardzic, 2003)

Dari pengertian di atas, dapat disimpulkan unsur-unsur definisi data mining, yaitu:

1. Data dalam jumlah besar (input pada data mining) 2. Eksplorasi dan analisa (proses pada data mining)

3. Ekstraksi suatu informasi atau nilai tambah (proses pada data mining) 4. Penemuan pola dan pengetahuan (output pada data mining)

Secara garis besar data mining dapat dikelompokkan menjadi 2 kategori utama, yaitu (Tan, et al., 2005):


(33)

1. Descriptive mining, yaitu proses untuk menemukan karakteristik penting dari data dalam suatu basis data. Teknik data mining yang termasuk dalam descriptive mining adalah clustering, association, dan sequentialmining.

2. Predictive mining, yaitu proses untuk menemukan pola dari data dengan menggunakan beberapa variabel lain di masa depan. Salah satu teknik yang terdapat dalam predictive mining adalah klasifikasi.

Menurut Han, et al. (2006), istilah lain yang sering dijumpai dan memiliki makna identik dengan data mining adalah:

a) Knowledge Discovery in Databases (KDD), b) Knowledge Mining from Data,

c) Knowledge Extraction, d) Data/Pattern Analysis, e) Data Archaeology, dan f) Data Dredging.

Adapun yang menjadi latar belakang diperlukannya data mining pada era masa kini adalah:

1. Data telah mencapai jumlah dan ukuran yang sangat besar; a. Data web, e-commerce

b. Data pembelian di toko-toko dan supermarket c. Transaksi Bank dan Kartu Kredit

d. Detail panggilan telepon e. Statistik pemerintahan f. Rekam medis

g. Database molekul h. Citra astronomis

2. Komputer sekarang murah dan powerful; 3. Tekanan kompetisi semakin kuat;

4. Menyediakan layanan yang lebih baik dan customized (misalnya, dalam Customer Relationship Management);

5. Teknik penyimpanan data semakin tinggi dengan kecepatan tinggi (GB/jam); 6. Proses ekstraksi informasi di dalam kumpulan data yang besar menjadi


(34)

data dalam jumlah besar;

8. Data mining merupakan teknik yang menggabungkan teknik analisa data tradisional dengan algoritma yang sophisticated utk pemrosesan data dalam jumlah besar.

Data mining merupakan gabungan dari beberapa bidang ilmu pada bidang Matematika dan Komputer, seperti terlihat pada Gambar 2.5 berikut.

Gambar 2.5. Ilmu Data Mining (Han, et al., 2006)

Adapun peran beberapa bidang ilmu terhadap data mining ditunjukkan pada Gambar 2.6 berikut.

Gambar 2.6. Peranan Bidang Ilmu Lain terhadap Data Mining

Istilah lain yang identik dengan data mining adalah Knowledge Discovery in Databases (KDD). Adapun data mining merupakan salah satu rangkaian dari KDD. Definisi KDD adalah keseluruhan proses non-trivial untuk mencari dan


(35)

mengidentifikasi pola (pattern) dalam data, dimana pola yang ditemukan bersifat sah, baru, dapat bermanfaat, dan dapat dimengerti.

Adapun hubungan data mining dengan data warehouse dan OLAP (On-line Analytical Processing) adalah teknologi yang ada di data warehouse dan OLAP dimanfaatkan penuh untuk melakukan data mining. Gambar 2.7 menunjukkan posisi masing-masing teknologi dalam pengambilan keputusan.

Gambar 2.7. Tingkatan Pemanfaatan Data untuk Pengambilan Keputusan Dari Gambar 2.7, terlihat bahwa teknologi data warehouse digunakan untuk melakukan OLAP, sedangkan data mining digunakan untuk melakukan information discovery yang informasinya lebih ditujukan untuk seorang Data Analyst dan Business Analyst (dengan ditambah visualisasi).

Dengan memadukan teknologi OLAP dengan data mining, diharapkan pengguna dapat melakukan hal-hal yang biasa dilakukan di OLAP seperti drilling/rolling untuk melihat data lebih dalam atau lebih umum, pivoting, slicing, dan dicing. Semua hal tersebut diharapkan nantinya dapat dilakukan secara interaktif dan dilengkapi dengan visualisasi.

Data mining tidak hanya melakukan mining terhadap data transaksi saja. Penelitian di bidang data mining saat ini sudah merambah ke sistem database lanjut seperti object oriented database, image/spatial database, time-series data/temporal database, teks (dikenal dengan nama text mining), web (dikenal dengan nama web mining) dan multimedia database.


(36)

Gambar 2.8. Tahapan KDD pada Data Mining (Han, et al., 2006)

Menurut Han, et al. (2006), KDD meliputi iterative sequence sebagai berikut.

Data Cleaning

Pada tahap ini, dilakukan kegiatan membuang data yang tidak konsisten dan bersifat noise dari data yang terdapat di berbagai basis data yang mungkin berbeda format maupun platform.

Proses cleaning mencakup antara lain membuang duplikasi data, memeriksa data yang inkonsisten, dan memperbaiki kesalahan pada data, seperti kesalahan cetak (tipografi).

Data Integration

Menyatukan sumber data yang tersebar/terpecah sehingga dikumpulkan menjadi data warehouse.


(37)

Data Selection

Data yang ada dalam data warehouse kemudian direduksi untuk mendapatkan hasil yang akurat, yaitu data yang relevan dengan tugas analisa dikembalikan ke dalam database.

Metode seleksi pada data mining

a. Sampling, adalah seleksi subset representatif dari populasi data yang besar.

b. Denoising, adalah proses menghilangkan noise dari data yang akan ditransformasikan

c. Feature extraction, adalah proses membuka spesifikasi data yang signifikan dalam konteks tertentu.

Data Transformation

Data berubah atau bersatu menjadi bentuk yang paling tepat untuk mining dengan ringkasan performa atau operasi.

Metode transformasi pada data mining

a. Centering, mengurangi setiap data dengan rata-rata dari setiap atribut yang ada.

b. Normalization, membagi setiap data yang di-center-ing dengan standar deviasi dari atribut bersangkutan.

c. Scaling, mengubah data sehingga berada dalam skala tertentu.

Knowledge Discovery (Data Mining)

Tahapan ini merupakan proses esensial dimana metode yang intelijen (algoritma data mining) digunakan untuk mengekstrak pola data. Data yang telah ditransformasi, kemudian ditambang dengan berbagai teknik. Proses data mining adalah proses mencari pola atau informasi menarik dalam data terpilih dengan menggunakan fungsi-fungsi tertentu. Fungsi atau algoritma dalam data mining sangat bervariasi, dimana pemilihannya bergantung pada tujuan dan proses pencarian pengetahuan secara menyeluruh.

Pattern Evaluation

Untuk mengidentifikasi pola yang benar-benar menarik (interestingness measures) yang mewakili pengetahuan berdasarkan atas beberapa tindakan


(38)

yang mencakup pemeriksaan apakah pola atau informasi yang ditemukan bertentangan dengan fakta atau hipotesa yang ada sebelumnya.

Knowledge Presentation (Graphical User Interface)

Tahap ini merupakan gambaran teknik visualisasi dan pengetahuan yang digunakan untuk memberikan pengetahuan yang telah ditambang kepada user. Pada tahap ini, dipresentasikan pengetahuan dalam bentuk yang mudah dipahami pengguna atau pihak yang berkepentingan.

2.4. Jenis Data dalam Data Mining

Data mining adalah pencarian terhadap pengetahuan/informasi yang bersifat baru, bernilai, dan non-trivial (tidak sederhana) dalam volume data yang besar. Menurut Kantardzic (2003), tugas utama data mining dapat diklasifikasikan ke dalam dua kategori, yaitu:

1. Prediktif

Tujuan dari tugas prediktif adalah untuk memprediksi nilai dari variabel tertentu berdasarkan nilai dari variabel-variabel pada data sets. Dalam hal ini, tugas prediktif menghasilkan model sistem berdasarkan data sets yang diberikan.

2. Deskriptif

Tujuan dari tugas deskriptif adalah untuk menemukan pola-pola yang dapat diinterpretasikan oleh manusia. Tugas deskriptif menghasilkan informasi non-trivial dan bersifat baru berdasarkan kepada data sets yang tersedia.

Menurut Han, et al. (2006), ada sejumlah data repositories yang memungkinkan dilakukannya data mining, seperti relational databases, data warehouses, transactional databases, advanced database systems, flat files, data streams, dan World Wide Web (WWW).

Adapun penjelasan beberapa jenis data dalam data mining, yaitu: 1. Relational Databases

Model relasional adalah model data yang paling banyak digunakan saat ini. Pembahasan pokok pada model ini adalah relasi, yang dimisalkan sebagai himpunan dari record. Deskripsi data dalam istilah model data disebut skema. Pada model


(39)

relasional, skema untuk relasi ditentukan oleh nama, nama dari tiap field (atribut atau kolom), dan tipe dari tiap field. Relational Database disebut juga database management system (DBMS).

DBMS adalah perangkat lunak yang didesain untuk membantu dalam hal pemeliharaan dan utilitas kumpulan data dalam jumlah besar. DBMS dapat menjadi alternatif penggunaan secara khusus untuk aplikasi, misalnya penyimpanan data dalam field dan menulis kode aplikasi yang spesifik untuk pengaturannya.

Komponen utama DBMS dapat dibagi menjadi 4 macam, yaitu : a) Perangkat Keras

b) Perangkat Lunak c) Data

d) Pengguna

Pengunaan DBMS untuk mengelola data mempunyai beberapa keuntungan, sebagai berikut.

a) Kebebasan data dan akses yang efisien b) Mereduksi waktu pengembangan aplikasi c) Integritas dan keamanan data

d) Administrasi keseragaman data

e) Akses bersamaan dan perbaikan dari terjadinya crash (tabrakan dari proses serentak)

2. Data Warehouse

Biasanya perusahaan-perusahaan memakai database dalam operasi sehari-harinya seperti pencatatan transaksi jual-beli, administrasi pengiriman barang, inventori, penggajian, dan sebagainya yang lazim disebut dengan OLTP (online transaction processing). Dengan makin besarnya kebutuhan akan analisa data untuk mempertahankan keunggulan dalam kompetisi, banyak perusahaan yang juga membangun database tersendiri yang khusus digunakan untuk menunjang proses pengambilan keputusan (decision making) atau lazim juga disebut dengan OLAP (online analytical processing).

Berbeda dengan OLTP yang hanya memakai operasi query yang sederhana dan berulang-ulang, query untuk OLAP biasanya lebih rumit, bersifat ad-hoc, dan tidak


(40)

begitu saja, tetapi memakai data yang sudah terangkum dengan model data yang disebut data cube. Data cube adalah presentasi data multidimensi seperti jenis barang, waktu, lokasi dan sebagainya. Dimensi data cube diperlihatkan pada Gambar 2.9 berikut ini.

Gambar 2.9. Data Cube pada Data Warehouse (Han, et al., 2006)

Dimensi pada data cube dapat dibuat bertingkat, contohnya dimensi lokasi dapat dibagi menjadi kota, provinsi dan negara. Sedangkan dimensi waktu mencakup jam, hari, minggu, bulan, tahun, dan sebagainya. Dengan ini pemakai dapat dengan mudah mendapat rangkuman informasi dari tingkatan dimensi yang lebih luas/umum seperti negara atau tahun dengan operasi yang disebut roll-up seperti ditunjukkan di


(41)

Gambar 2.9. Sebaliknya dengan operasi drill-down, pemakai dapat menggali informasi dari tingkatan dimensi yang lebih detil seperti data harian atau data di lokasi yang spesifik.

Data cube yang tersedia pada data warehouse memungkinkan pemakai untuk menganalisa data operasi sehari-hari dengan berbagai sudut pandang, dan sangat berguna untuk mengevaluasi suatu asumsi bisnis. Akan tetapi untuk mendapatkan informasi yang tidak diketahui secara eksplisit diperlukan satu tahap lagi, yaitu teknik data mining. Di sini, data warehouse merupakan data mentah untuk data mining. Data warehouse sendiri secara periodik diisi data dari OLTP setelah menjalani pembersihan dan integrasi data. Karena itu, ada pula anggapan bahwa data mining adalah tahap lanjut dari OLAP.

3. Transactional Databases

Secara umum, transactional database terdiri dari sebuah file dimana setiap record merepresentasikan transaksi. Sebuah transaksi biasanya meliputi bilangan identitas transaksi yang unik (trans_id), dan sebuah daftar dari item transaksi (seperti item yang dibeli dalam sebuah stok). transactional database dapat memiliki tabel tambahan, yang mengandung informasi lain berkaitan dengan penjualan seperti tanggal transaksi, customer ID number, ID number dari sales person dan dari kantor cabang (branch) dimana penjualan terjadi.

Adapun jenis data sets pada data mining adalah private data sets dan public data sets. Private data sets merupakan data sets yang diambil dari organisasi yang dijadikan objek penelitian, misalnya data bank, rumah sakit, industri, pabrik, dan perusahaan jasa. Public data sets merupakan data sets yang diambil dari repositori publik yang disepakati oleh para peneliti data mining, misalnya UCI Repository yang beralamat di http://archive.ics.uci.edu/ml/datasets.html. (Bramer, 2007)

Trend penelitian data mining saat ini adalah menguji metode menggunakan public data sets, sehingga penelitian dapat bersifat: comparable, repeatable, dan verifiable. Untuk kepentingan penelitian tesis ini, penulis menggunakan sumber data berupa public data sets yang diambil dari UCI Repository.


(42)

2.5. Teknik Klasifikasi

Klasifikasi adalah proses untuk menemukan model atau fungsi yang menjelaskan atau membedakan konsep atau kelas data, dengan tujuan untuk dapat memperkirakan kelas dari suatu objek yang labelnya tidak diketahui. Model itu sendiri bisa berupa aturan “jika-maka”, berupa pohon keputusan, formula matematis atau neural network. Contoh model klasifikasi berupa pohon keputusan pembelian unit komputer ditunjukkan oleh Gambar 2.10.

Gambar 2.10. Contoh Model Klasifikasi (Han, et al., 2006)

Proses klasifikasi biasanya dibagi menjadi dua fase, yaitu learning dan test. Pada fase learning, sebagian data yang telah diketahui kelas datanya diumpankan untuk membentuk model perkiraan. Kemudian pada fase test, model yang sudah terbentuk diuji dengan sebagian data lainnya untuk mengetahui akurasi dari model tersebut. Bila akurasinya mencukupi, model ini dapat dipakai untuk prediksi kelas data yang belum diketahui.

Sebuah teknik klasifikasi adalah pendekatan yang sistematik untuk membuat klasifikasi model dari kumpulan input data.

Beberapa teknik klasifikasi yang sering digunakan yaitu, rule based classsifier, pohon keputusan, naive bayes classifier, neural network, dan fuzzy logiz. Pengertian untuk masing-masing teknik klasifikasi adalah:

1. Aturan klasifikasi (Rule-Based Classifier) adalah suatu bentuk model untuk klasifikasi dalam bentuk IF-THEN.


(43)

2. Pohon Keputusan (Decision Tree)

Pohon keputusan merupakan suatu struktur pohon, dimana komponen-komponennya adalah:

a) Node, untuk menunjukkan pengujian terhadap sebuah nilai atribut. b) Cabang, untuk merepresentasikan hasil dari pengujian tersebut. c) Leaf, untuk menunjukkan distribusi kelas.

Untuk mengklasifikasikan suatu record yang belum diketahui kelasnya, nilai-nilai atribut dari record tersebut diuji dengan menggunakan pohon keputusan. Penelusuran dilakukan mulai dari akar hingga node daun, yang berisi hasil prediksi dari record tersebut. Pohon keputusan dapat direpresentasikan dalam bentuk klasifikasi rule.

3. Klasifikasi Bayesian (Naive Bayes Classifier)

Klasifikasi Bayesian menggunakan metode statistik dan menerapkan teorema Bayes, dan mampu melakukan prediksi probabilitas keanggotaan.

4. Jaringan Syaraf Tiruan (Neural Network)

Jaringan syaraf tiruan merupakan sekumpulan node pemrosesan atau unit yang memetakan input-output, dimana antar node dihubungkan dengan link yang memiliki bobot. Selama proses pelatihan, jaringan melakukan pembelajaran dengan mengatur nilai bobot, sehingga dapat memprediksi nilai suatu kelas dengan benar.

5. Fuzzy Logic

Fuzzy logic adalah suatu sistem yang memungkinkan adanya batasan yang tidak kaku (kabur) untuk mendefinisikan suatu data. Pada himpunan fuzzy, terdapat nilai keanggotaan antara 0 hingga 1 yang menunjukkan ukuran terhadap suatu atribut.

Pada teknik klasifikasi, dilakukan analisa terhadap data latih (training set) untuk mendapatkan model. Sedangkan data uji (testing set) digunakan untuk mengetahui tingkat akurasi dari model yang telah dihasilkan. Klasifikasi dapat digunakan untuk memprediksi nama atau nilai kelas dari objek data.


(44)

a) Pembelajaran/Pembangunan model

Setiap record pada data latih dianalisa berdasarkan nilai atributnya, dengan menggunakan algoritma klasifikasi untuk mendapatkan model.

b) Klasifikasi

Pada tahap ini, data uji digunakan untuk mengetahui tingkat akurasi dari model yang dihasilkan. Jika tingkat akurasi yang diperoleh sesuai dengan nilai yang ditentukan, maka model tersebut dapat digunakan untuk mengklasifikasikan record-record data baru yang belum pernah dilatihkan atau diujikan sebelumnya.

Adapun metode evaluasi yang digunakan dapat berupa cross validation. Pada metode ini, dibentuk k subset dari data sets yang ada. Misalnya, 5-fold cross validation berarti 4 subsets digunakan sebagai training sets dan 1 subset digunakan sebagai testing set, dengan 5 kali iterasi. Hasil pengukuran adalah nilai rata-rata dari 5 kali pengujian, seperti ditunjukkan pada Gambar 2.11 berikut.

Gambar 2.11. Prosedur 5-fold Cross Validation (Bramer, 2007)

2.6. Pengukuran Akurasi

Hardikar, et al. (2012) meneliti perbandingan ID3 dan C4.5 dengan parameter performance berupa alokasi pemakaian ruang memori (memory used), waktu proses yang digunakan (model build time), waktu respon model (search time), tingkat kesalahan (error rate), dan akurasi (accuracy).


(45)

Adapun performance algoritma klasifikasi data mining biasanya dinilai dari tingkat akurasi, yaitu persentase tuples yang berada pada kelas yang tepat (Dunham, 2003). Misalkan, jika terdapat suatu kelas Cj dan tuple database ti, maka terdapat 4 kuadran kemungkinan penempatan tuple ti ke dalam kelas-kelas yang ada. Hal ini dapat digambarkan sebagai berikut.

TRUE POSITIVE FALSE NEGATIVE

FALSE POSITIVE TRUE NEGATIVE

Gambar 2.12. Hasil Prediksi Kelas (Dunham, 2003)

Keterangan gambar:

 TRUE POSITIVE (TP) berarti ti diprediksi berada di Cj dan ti memang seharusnya berada di Cj.

 FALSE POSITIVE (FP) berarti ti diprediksi berada di Cj, tetapi ti tidak seharusnya berada di Cj.

 TRUE NEGATIVE (TN) berarti ti diprediksi tidak berada di Cj dan ti memang tidak seharusnya berada di Cj.

 FALSE NEGATIVE (FN) berarti ti diprediksi tidak berada di Cj, tetapi ti seharusnya berada di Cj.

Aspek akurasi algoritma klasifikasi juga dapat dilihat dari confusion matrix. Menurut Han, et al. (2006), confusion matrix adalah tool yang berguna untuk menganalisa tingkat efektivitas classifier dalam mengenali tuples dari kelas yang berbeda. Jika terdapat sejumlah kelas m, maka confusion matrix merupakan matriks m x m dimana entry ci,j menunjukkan menunjukkan jumlah tuple dari data sets yang dimasukkan ke kelas Cj, padahal kelas sebenarnya adalah Ci. Jelasnya, penilaian terbaik terjadi jika dan hanya jika terdapat nilai nol di luar diagonal matriks. Adapun contoh confusion matrix ditunjukkan pada Tabel 2.1 berikut.


(46)

Actual Membership

Assignment (Predicted Class) Short Medium Tall

Short 0 4 0

Medium 0 5 3

Tall 0 1 2

Adapun struktur table ofconfusion ditunjukkan sebagai berikut. Tabel 2.2. Table of Confusion

TRUE POSITIVE (TP) FALSE NEGATIVE (FN) FALSE POSITIVE (FP) TRUE NEGATIVE (TN)

Menurut Witten, et al. (2005), para peneliti Information Retrieval (IR) menggunakan parameter berupa recall, precision, dan F-measure. Rumus penentuan Precision, Recall, dan F-Measure berdasarkan table of confusion adalah sebagai berikut.

� � � = � + �� � = � + �

− � = 2 ∗ � � +� � ∗ � − � = 2. �

2. � + � + �

Menurut Bramer (2007), Precision disebut juga sebagai Positive Prediction Value, Recall disebut juga sebagai TP Rate/Hit Rate/Sensitivity, dan F-measure disebut juga sebagai F1 Score (a harmonic mean of Precision and Recall).

… (2.6)

… (2.7) … (2.8)


(47)

Sedangkan aspek pengukuran akurasi yang lain berupa Predicitive Accuracy menurut Bramer (2007) ataupun Success Rate menurut Witten, et al. (2005) dapat dihitung berdasarkan persamaan berikut.

� = � + �� + � dimana: P = TP + FN dan N = FP + TN

2.7. Riset Terkait

Menurut Wu, et al. (2007), terdapat sejumlah algoritma fungsi data mining yang dipilih menjadi Top 10algorithm data mining. Hasilnya, diperoleh bahwa algoritma klasifikasi menjadi mayoritas dalam Top 10 algorithm. Adapun algoritma klasifikasi yang terbaik dalam Top 10 algorithm data mining adalah pohon keputusan C4.5, k-NN, Naive Baiyes, dan Classification and Regression Trees (CART).

Galathiya, et al. (2012) melakukan penelitian dengan melakukan pengembangan pada algoritma pohon keputusan C4.5 dan melakukan perbandingan terhadap algoritma Naive Bayes, Sequential Minimal Optimization (SMO), dan multilayer perceptron dengan menggunakan sejumlah data sets dan pengujian akurasi berdasarkan kepada Correctly Classified Instances dan Relative Absolute Error menggunakan metode 10-fold cross validation. Hasilnya, algoritma pohon keputusan C4.5 yang dikembangkan memiliki tingkat akurasi sekitar 1-3% lebih baik pada 7 data sets dari total 9 data sets. Penelitian ini belum melibatkan algoritma k-NN dan belum menunjukkan hasil pengukuran akurasi dalam Confusion Matrix.

Defiyanti & Pardede (2010) melakukan penelitian dengan melakukan perbandingan kinerja algoritma pohon keputusan Iterative Dichotomiser 3 (ID3) dan C4.5 dalam klasifikasi Spam-mail. Pengukuran kinerja didasarkan atas jumlah data dan jumlah atribut. Hasilnya, diperoleh bahwa algoritma ID3 memiliki kinerja (precision, recall, dan accuracy) yang lebih baik dibandingkan C4.5. Pada penelitian ini, belum digunakan metode k-fold cross validation dalam mengukur performa kedua macam algoritma.


(48)

Yau (2007) melakukan penelitian berjudul “

Different Classification Techniques using WEKA for Breast Cancer”. Metode pengujian yang digunakan berupa percentage split sebesar 75%, artinya 75% data digunakan sebagai data training dan 25% sisanya sebagai data testing. Pengujian akurasi berdasarkan kepada Correctly Classified Instances, Incorrectly Classified Instances, dan Time Taken. Hasilnya, algoritma Naive Bayes memiliki tingkat akurasi tertinggi dan waktu pembangunan model tercepat dibandingkan dengan Radial Basis Function, Decision Tree and Pruning, Single Conjunctive Rule Learner, dan Nearest Neighbors Algorithm. Pada penelitian ini, hanya digunakan satu macam data set berupa breast cancer dan belum menggunakan metode k-fold Cross Validation.

2.8. Perbedaan dengan Riset yang Lain

Dalam penelitian ini, dilakukan pelatihan (training) dan pengujian (testing) terhadap 5 UCI data sets menggunakan algoritma klasifikasi pohon keputusan dan k-NN dan menghasilkan confusion matrix untuk penilaian precision, recall, F-measure, dan success rate. Adapun metode pengujian/evaluasi yang digunakan adalah 10-fold cross validation.

2.9. Kontribusi Riset

Aspek akurasi yang dihasilkan dalam penelitian ini meliputi confusion matrix untuk penilaian precision, recall, F-measure, dan success rate (persentase correctly classified instances). Dengan demikian, diharapkan dapat diketahui aspek pengukuran performance suatu algoritma klasifikasi dari sudut pandang akurasi, serta diperoleh perbandingan akurasi algoritma pohon keputusan dan k-NN pada implementasi terhadap 5 UCI data sets.


(49)

3.1. Pendahuluan

Metodologi penelitian merupakan sekumpulan proses terstruktur mengenai peraturan, kegiatan, dan prosedur yang digunakan oleh pelaku suatu disiplin ilmu dalam melaksanakan penelitian. (Zarlis, et al., 2013)

Pada algoritma klasifikasi data mining, aspek akurasi berdasarkan confusion matrix untuk penilaian precision, recall, F-measure, dan success rate merupakan dasar pengukuran performance algoritma melalui sejumlah metode seperti Use Training Set, k-Fold Cross Validation, dan Percentage Split. Berdasarkan uraian di atas, maka dalam penelitian ini dilakukan analisis perbandingan akurasi algoritma klasifikasi pohon keputusan dan k-Nearest Neighbor (k-NN) berdasarkan confusion matrix menggunakan metode 10-fold cross validation.

Pada penelitian ini, penulis menggunakan metode penelitian berupa studi literatur (riset pustaka). Historical research sama dengan riset pustaka. Historical research dilakukan dengan membaca buku-buku dan literatur serta mengikuti pola dari literatur maupun buku yang dibaca. (Hasibuan, 2007)

3.2. Data yang Digunakan

Data sets untuk pelatihan dan pengujian (training sets dan testing sets) berasal dari UC Irvine Machine Learning Repository (UCI Machine Learning Repository), berupa BreastCancer, Car, Diabetes, Ionosphere, dan Iris. Rincian masing-masing data set dapat dilihat pada Tabel 3.1 berikut.

Tabel 3.1. Data Sets Penelitian

No. Data Sets Instances Attributes Classes

1 BreastCancer 286 10 2

2 Car 1.728 7 4

3 Diabetes 768 9 2

4 Ionosphere 351 35 2


(50)

3.2.1. Data Set BreastCancer

Data set BreastCancer memiliki 286 instances, 10 atribut, dan 2 kelas. Distribusi kelas berupa no-recurrence-events (201 instances) dan recurrence-events (85 instances). Tabel 3.2. menunjukkan informasi atribut data set BreastCancer.

Tabel 3.2. Informasi Atribut Data Set BreastCancer

No. Atribut Nilai

1 Age 10-19, 20-29, 30-39, 40-49, 50-59, 60-69, 70-79, 80-89, 90-99 2 Menopause lt40, ge40, premeno

3 Tumor-size 0-4, 5-9, 10-14, 15-19, 20-24, 25-29, 30-34, 35-39, 40-44, 45-49, 50-54, 55-59

4 Inv-nodes 0-2, 3-5, 6-8, 9-11, 12-14, 15-17, 18-20, 21-23, 24-26, 27-29, 30-32, 33-35, 36-39

5 Node-caps yes, no 6 Deg-malig 1, 2, 3 7 Breast left, right

8 Breast-quad left-up, left-low, right-up, right-low, central 9 Irradiat yes, no

10 Class no-recurrence-events, recurrence-events

3.2.2. Data Set Car

Data set Car Evaluation memiliki 1.728 instances, 7 atribut, dan 4 kelas. Distribusi kelas berupa unacc (1.210 instances), acc (384 instances), good (69 instances), dan v-good (65 instances). Tabel 3.3 menunjukkan informasi atribut data set Car.

Tabel 3.3. Informasi Atribut Data Set Car

No. Atribut Nilai

1 Buying v-high, high, med, low 2 Maint v-high, high, med, low 3 Doors 2, 3, 4, 5-more

4 Persons 2, 4, more 5 Lug_boot small, med, big 6 Safety low, med, high


(51)

3.2.3. Data Set Diabetes

Data set Pima Indians Diabetes memiliki 768 instances, 9 atribut, dan 2 kelas. Distribusi kelas berupa tested_negative (500 instances) dan tested_positive (268 instances). Tabel 3.4 menunjukkan informasi atribut data set Diabetes.

Tabel 3.4. Informasi Atribut Data Set Diabetes

No. Atribut Nilai

1 Number of times pregnant 0.0 17.0 2 Plasma glucose concentration a 2 hours in

an oral glucose tolerance test 0.0 – 199.0 3 Diastolic blood pressure (mm Hg) 0.0 122.0 4 Triceps skin fold thickness (mm) 0.0 99.0 5 2-Hour serum insulin (mu U/ml) 0.0 846.0 6 Body mass index (weight in kg /

(height in m) ^ 2 0.0 – 67.1 7 Diabetes pedigree function 0.078 2.42

8 Age (years) 21.0 81.0

9 Class tested_negative, tested_positive

3.2.4. Data Set Ionosphere

Data set Ionosphere memiliki 351 instances, 35 atribut, dan 2 kelas. Distribusi kelas berupa bad (126 instances) dan good (225 instances). Data set ini terdiri dari 1 atribut kelas dan 34 atribut yang mempengaruhi nilai dua tipe sinyal radar untuk mengenali elektron pada ionosphere. Sinyal good menunjukkan radar mengenali struktur tertentu pada ionosphere dan sinyal bad menunjukkan radar tidak menunjukkan struktur tertentu pada ionosphere.

3.2.5. Data Set Iris

Data set Iris memiliki 150 instances, 5 atribut, dan 3 kelas. Distribusi kelas berupa Iris-setosa (50 instances), Iris-versicolor (50 instances), dan Iris-virginica (50 instances). Tabel 3.5 menunjukkan informasi atribut data set Iris.


(1)

}

private void konversi_matriks22() {

item11 = Convert.ToDouble(txt11.Text); item12 = Convert.ToDouble(txt12.Text); item21 = Convert.ToDouble(txt21.Text); item22 = Convert.ToDouble(txt22.Text); }

private void konversi_matriks33() {

konversi_matriks22();

item13 = Convert.ToDouble(txt13.Text); item23 = Convert.ToDouble(txt23.Text); item31 = Convert.ToDouble(txt31.Text); item32 = Convert.ToDouble(txt32.Text); item33 = Convert.ToDouble(txt33.Text); }

private void konversi_matriks44() {

konversi_matriks33();

item14 = Convert.ToDouble(txt14.Text); item24 = Convert.ToDouble(txt24.Text); item34 = Convert.ToDouble(txt34.Text); item41 = Convert.ToDouble(txt41.Text); item42 = Convert.ToDouble(txt42.Text); item43 = Convert.ToDouble(txt43.Text); item44 = Convert.ToDouble(txt44.Text); }

private void hitungAkurasi22() {

double pos,neg; konversi_matriks22(); pos = item11 + item12; neg = item21 + item22;

tpA = item11; tnA = item22; fpA = item21; fnA = item12; tpB = item22; tnB = item11; fpB = item12; fnB = item21; tampilkan_detail();

hitungPre1 = item11 / (item11 + item21); hitungRec1 = item11 / (item11 + item12); hitungPre2 = item22 / (item22 + item12); hitungRec2 = item22 / (item22 + item21);

hitungF1 = (2 * hitungPre1 * hitungRec1) / (hitungPre1 + hitungRec1); hitungF2 = (2 * hitungPre2 * hitungRec2) / (hitungPre2 + hitungRec2); hitungSR = (item11 + item22) * 100 / instances;

hitungWPre = (hitungPre1 * pos + hitungPre2 * neg) / instances; hitungWRec = (hitungRec1 * pos + hitungRec2 * neg) / instances; hitungWF = (hitungF1 * pos + hitungF2 * neg) / instances;


(2)

lblPre1.Text = String.Format("{0:0.000}", hitungPre1); lblRec1.Text = String.Format("{0:0.000}", hitungRec1); lblPre2.Text = String.Format("{0:0.000}", hitungPre2); lblRec2.Text = String.Format("{0:0.000}", hitungRec2); lblF1.Text = String.Format("{0:0.000}", hitungF1); lblF2.Text = String.Format("{0:0.000}", hitungF2); lblSukses.Text = String.Format("{0:0.00}", hitungSR); lblWPre.Text = String.Format("{0:0.000}", hitungWPre); lblWRec.Text = String.Format("{0:0.000}", hitungWRec); lblWF.Text = String.Format("{0:0.000}", hitungWF); }

private void hitungAkurasi33() {

konversi_matriks33();

tpA = item11; tpB = item22; tpC = item33;

tnA = item22 + item33; tnB = item11 + item33; tnC = item11 + item22; fpA = item21 + item31; fpB = item12 + item32; fpC = item13 + item23; fnA = item12 + item13; fnB = item21 + item23; fnC = item31 + item32; tampilkan_detail();

hitungPre1 = tpA / (tpA + fpA); hitungRec1 = tpA / (tpA + fnA); hitungPre2 = tpB / (tpB + fpB); hitungRec2 = tpB / (tpB + fnB); hitungPre3 = tpC / (tpC + fpC); hitungRec3 = tpC / (tpC + fnC);

hitungF1 = (2 * hitungPre1 * hitungRec1) / (hitungPre1 + hitungRec1); hitungF2 = (2 * hitungPre2 * hitungRec2) / (hitungPre2 + hitungRec2); hitungF3 = (2 * hitungPre3 * hitungRec3) / (hitungPre3 + hitungRec3); hitungSR = (tpA + tpB + tpC) * 100 / instances;

hitungWPre = (hitungPre1 * (tpA + fnA) + hitungPre2 * (tpB + fnB) + hitungPre3 * (tpC + fnC)) / instances;

hitungWRec = (hitungRec1 * (tpA + fnA) + hitungRec2 * (tpB + fnB) + hitungRec3 * (tpC + fnC)) / instances;

hitungWF = (hitungF1 * (tpA + fnA) + hitungF2 * (tpB + fnB) + hitungF3 * (tpC + fnC)) / instances;

lblPre1.Text = String.Format("{0:0.000}", hitungPre1); lblRec1.Text = String.Format("{0:0.000}", hitungRec1); lblPre2.Text = String.Format("{0:0.000}", hitungPre2); lblRec2.Text = String.Format("{0:0.000}", hitungRec2); lblPre3.Text = String.Format("{0:0.000}", hitungPre3); lblRec3.Text = String.Format("{0:0.000}", hitungRec3); lblF1.Text = String.Format("{0:0.000}", hitungF1); lblF2.Text = String.Format("{0:0.000}", hitungF2); lblF3.Text = String.Format("{0:0.000}", hitungF3); lblSukses.Text = String.Format("{0:0.00}", hitungSR); lblWPre.Text = String.Format("{0:0.000}", hitungWPre); lblWRec.Text = String.Format("{0:0.000}", hitungWRec); lblWF.Text = String.Format("{0:0.000}", hitungWF); }


(3)

private void hitungAkurasi44() {

konversi_matriks44();

diag = item11 + item22 + item33 + item44;

tpA = item11; tpB = item22; tpC = item33; tpD = item44;

tnA = diag - tpA; tnB = diag - tpB; tnC = diag - tpC; tnD = diag - tpD;

fpA = item21 + item31 + item41; fpB = item12 + item32 + item42; fpC = item13 + item23 + item43; fpD = item14 + item24 + item34;

fnA = item12 + item13 + item14; fnB = item21 + item23 + item24; fnC = item31 + item32 + item34; fnD = item41 + item42 + item43;

tampilkan_detail();

hitungPre1 = tpA / (tpA + fpA); hitungRec1 = tpA / (tpA + fnA); hitungPre2 = tpB / (tpB + fpB); hitungRec2 = tpB / (tpB + fnB); hitungPre3 = tpC / (tpC + fpC); hitungRec3 = tpC / (tpC + fnC); hitungPre4 = tpD / (tpD + fpD); hitungRec4 = tpD / (tpD + fnD);

hitungF1 = (2 * hitungPre1 * hitungRec1) / (hitungPre1 + hitungRec1); hitungF2 = (2 * hitungPre2 * hitungRec2) / (hitungPre2 + hitungRec2); hitungF3 = (2 * hitungPre3 * hitungRec3) / (hitungPre3 + hitungRec3); hitungF4 = (2 * hitungPre4 * hitungRec4) / (hitungPre4 + hitungRec4); hitungSR = (tpA + tpB + tpC + tpD) * 100 / instances;

hitungWPre = (hitungPre1 * (tpA + fnA) + hitungPre2 * (tpB + fnB) + hitungPre3 * (tpC + fnC) + hitungPre4 * (tpD + fnD)) / instances;

hitungWRec = (hitungRec1 * (tpA + fnA) + hitungRec2 * (tpB + fnB) + hitungRec3 * (tpC + fnC) + hitungRec4 * (tpD + fnD)) / instances;

hitungWF = (hitungF1 * (tpA + fnA) + hitungF2 * (tpB + fnB) + hitungF3 * (tpC + fnC) + hitungF4 * (tpD + fnD)) / instances;

lblPre1.Text = String.Format("{0:0.000}", hitungPre1); lblRec1.Text = String.Format("{0:0.000}", hitungRec1); lblPre2.Text = String.Format("{0:0.000}", hitungPre2); lblRec2.Text = String.Format("{0:0.000}", hitungRec2); lblPre3.Text = String.Format("{0:0.000}", hitungPre3); lblRec3.Text = String.Format("{0:0.000}", hitungRec3); lblPre4.Text = String.Format("{0:0.000}", hitungPre4); lblRec4.Text = String.Format("{0:0.000}", hitungRec4); lblF1.Text = String.Format("{0:0.000}", hitungF1); lblF2.Text = String.Format("{0:0.000}", hitungF2); lblF3.Text = String.Format("{0:0.000}", hitungF3); lblF4.Text = String.Format("{0:0.000}", hitungF4); lblSukses.Text = String.Format("{0:0.00}", hitungSR); lblWPre.Text = String.Format("{0:0.000}", hitungWPre); lblWRec.Text = String.Format("{0:0.000}", hitungWRec); lblWF.Text = String.Format("{0:0.000}", hitungWF); }

private void hitungBreastCancer() {


(4)

lblKelas3.Text = "-";

lblKelas4.Text = "-"; hitungAkurasi22();

}

private void hitungCar() {

lblKelas1.Text = tipA.ToolTipTitle; lblKelas2.Text = tipB.ToolTipTitle; lblKelas3.Text = tipC.ToolTipTitle;

lblKelas4.Text = tipD.ToolTipTitle; hitungAkurasi44();

}

private void hitungDiabetes() {

lblKelas1.Text = tipA.ToolTipTitle; lblKelas2.Text = tipB.ToolTipTitle; lblKelas3.Text = "-";

lblKelas4.Text = "-"; hitungAkurasi22();

}

private void hitungIon() {

lblKelas1.Text = tipA.ToolTipTitle; lblKelas2.Text = tipB.ToolTipTitle; lblKelas3.Text = "-";

lblKelas4.Text = "-"; hitungAkurasi22();

}

private void hitungIris() {

lblKelas1.Text = tipA.ToolTipTitle; lblKelas2.Text = tipB.ToolTipTitle; lblKelas3.Text = tipC.ToolTipTitle; lblKelas4.Text = "-"; hitungAkurasi33();

}

private void btnKalkulasi_Click(object sender, EventArgs e) {

timer4.Stop(); timer5.Stop();

if (txt11.BackColor == Color.DimGray) {

MessageBox.Show("Tampilkan matriks terlebih dahulu"); }

else

timer3.Start(); }


(5)

private void Form1_Load(object sender, EventArgs e) {

optBCancer.Checked = true; optTree.Checked = true; }

private void timer3_Tick(object sender, EventArgs e) {

if (barProses2.Value >= 100) {

timer3.Stop();

if (optBCancer.Checked == true) {

instances = 286; hitungBreastCancer(); }

if (optCar.Checked == true) {

instances = 1728; hitungCar(); }

if (optDiabetes.Checked == true) {

instances = 768; hitungDiabetes(); }

if (optIon.Checked == true) {

instances = 351; hitungIon(); }

if (optIris.Checked == true) {

instances = 150; hitungIris(); }

}

else barProses2.Value = barProses2.Value + 20; }

private void btnAbout_Click(object sender, EventArgs e) {

AboutBox1 about = new AboutBox1(); about.Show();

timer4.Stop(); timer5.Stop(); }

private void timer4_Tick(object sender, EventArgs e) {

ActiveForm.Width = ActiveForm.Width + 20; }


(6)

private void timer5_Tick(object sender, EventArgs e) {

ActiveForm.Width = ActiveForm.Width - 20; }

private void btnDetails_Click(object sender, EventArgs e) {

if (btnDetails.Text == "Details >") {

timer5.Stop();

btnDetails.Text = "Details <"; timer4.Start();

}

else if (btnDetails.Text == "Details <") {

timer4.Stop();

btnDetails.Text = "Details >"; timer5.Start();

}

else btnDetails.Text = "Details >"; }

} }