TESIS
PENDEKATAN LEVEL DATA DAN ALGORITMA UNTUK PENANGANAN KETIDAKSEIMBANGAN KELAS PADA PREDIKSI CACAT SOFTWARE BERBASIS NAΪVE BAYES
Oleh: Aries Saifudin 3712101122
PROGRAM STUDI TEKNIK INFORMATIKA PROGRAM PASCA SARJANA (S2) MAGISTER KOMPUTER SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER ERESHA JAKARTA 2014
PERSETUJUAN TESIS
Nama
: Aries Saifudin
NPM
: 3712101122
Konsentrasi
: Software Engineering
Judul tesis
: Pendekatan Level Data dan Algoritma untuk Penanganan Ketidakseimbangan Kelas pada Prediksi Cacat Software Berbasis Naϊve Bayes
Telah disetujui untuk disidangkan pada Sidang Tesis pada Program Pasca Sarjana (S2) Magister Komputer, Program Studi Teknik Informatika Sekolah Tinggi Manajemen Informatika dan Komputer Eresha.
Jakarta, 27 Agustus 2014
ii
PENGESAHAN TESIS
Nama
: Aries Saifudin
NPM
: 3712101122
Konsentrasi
: Software Engineering
Judul tesis
: Pendekatan Level Data dan Algoritma untuk Penanganan Ketidakseimbangan Kelas pada Prediksi Cacat Software Berbasis Naϊve Bayes
Telah disidangkan dan dinyatakan Lulus Sidang Tesis pada Program Pasca Sarjana (S2) Magister Komputer, Program Studi Teknik Informatika Sekolah Tinggi Manajemen Informatika dan Komputer Eresha pada tanggal (24-09-2014).
iii
PERNYATAAN KEASLIAN TESIS
Nama
: Aries Saifudin
NPM
: 3712101122
Konsentrasi
: Software Engineering
Judul tesis
: Pendekatan Level Data dan Algoritma untuk Penanganan Ketidakseimbangan Kelas pada Prediksi Cacat Software Berbasis Naϊve Bayes
Dengan ini saya menyatakan bahwa dalam Tesis ini tidak terdapat karya yang pernah diajukan untuk memperoleh gelar kesarjanaan di suatu Perguruan Tinggi, dan sepanjang pengetahuan saya juga tidak terdapat karya atau pendapat yang pernah ditulis atau diterbitkan oleh orang lain, kecuali yang secara tertulis diacu dalam naskah ini dan disebutkan dalam daftar pustaka.
Jakarta, 10 September 2014
iv
Aries Saifudin, 3712101122
Pendekatan Level Data dan Algoritma untuk Penanganan Ketidakseimbangan Kelas pada Prediksi Cacat Software Berbasis Naϊve Bayes; di bawah bimbingan Romi Satria Wahono, B.Eng., M.Eng., PhD. dan Dr. Rufman Iman Akbar E., M.M., M.Kom. 276 + xxiv hal / 262 tabel / 55 gambar / 1 lampiran / 86 pustaka (2002 - 2014)
ABSTRAK
Memperbaiki software yang cacat setelah pengiriman membutuhkan biaya jauh lebih mahal dari pada selama pengembangan. Tetapi belum ada model prediksi cacat software yang berlaku umum. Naϊve Bayes merupakan model paling efektif dan efisien, tetapi belum dapat mengklasifikasikan dataset berbasis metrik dengan kinerja terbaik secara umum dan selalu konsisten dalam semua penelitian. Dataset dari software metrics secara umum bersifat tidak seimbang, hal ini dapat menurunkan kinerja model prediksi cacat software karena cenderung menghasilkan prediksi kelas mayoritas. Untuk menangani ketidakseimbangan kelas secara umum dibagi menjadi dua pendekatan, yaitu pendekatan level data dan pendekatan level algoritma. Pendekatan level data ditujukan untuk memperbaiki keseimbangan kelas, dilakukan dengan resampling termasuk Random Over-Sampling (ROS) dan Random Under-Sampling (RUS), atau mensintesis kelas minoritas menggunakan algoritma FSMOTE (Fractal Synthetic Minority Over-sampling Technique), yaitu perbaikan dari algoritma SMOTE (Synthetic Minority Over-sampling Technique) dengan mengikuti interpolasi fraktal. Sedangkan pendekatan level algoritma ditujukan untuk membuat pengklasifikasi lebih konduktif terhadap kelas minoritas dengan menggabungkan (ensemble) pengklasifikasi tunggal agar menjadi lebih baik. Algoritma ensemble yang populer adalah boosting dan bagging. AdaBoost merupakan salah satu algoritma boosting yang telah menunjukkan dapat memperbaiki kinerja pengklasifikasi. Maka pada penelitian ini digunakan pendekatan level data menggunakan ROS, RUS, dan FSMOTE. Sedangkan pendekatan level algoritma menggunakan AdaBoost dan Bagging. Pengklasifikasi yang digunakan adalah Naϊve Bayes. Ada banyak developer dan organisasi yang mengerjakan proyek NASA, tetapi secara umum memiliki kemampuan yang sama dan cenderung membuat kesalahan yang serupa. Maka pada penelitian ini digunakan dataset dari NASA. Hasil penelitian menunjukkan bahwa pendekatan level algoritma yang terbaik adalah Bagging. Pendekatan level data terbaik adalah FSMOTE. Ketika kedua pendekatan ini digabungkan, model yang menggabungkan FSMOTE, Bagging, dan Naϊve Bayes mengungguli akurasi semua model dalam mengklasifikasikan kelas minoritas. Kata Kunci: Ketidakseimbangan Kelas, Pendekatan Level Data, Pendekatan Level Algoritma, Prediksi Cacat Software
v
Aries Saifudin, 3712101122
Data and Algorithms Level Approach for Handling Class Imbalance on Software Defect Prediction Based on Bayes Naϊve ; under the supervision of Romi Satria Wahono, B.Eng., M.Eng., Ph.D. and Dr. Rufman Iman Akbar E., M.M., M.Kom. 276 + xxiv pages / 262 tables / 55 figures / 1 attachment/ 86 references (2002 2014)
ABSTRACT
Fixing software defects after delivery costs much more expensive than during development. But there is no software defect prediction models that are commonly used. Naϊve Bayes is the most effective and efficient models, but have not been able to classify the dataset based metrics with best performance in general and always consistent in all studies. Generally software metrics dataset are imbalanced, it can degrade the performance of software defect prediction models because tend to generate predictions for the majority class. To handle class imbalance is generally divided into two approaches, namely data level approach and algorithm level approach. Data level approach is intended to improve the balance of the class, which done by resampling including Random Over-Sampling (ROS) and Random Under-Sampling (RUS), or synthesize the minority class using FSMOTE (Fractal Synthetic Minority Over-sampling Technique) algorithm, which is improvement of SMOTE (Synthetic Minority Over-sampling Technique) algorithm by following the fractal interpolation. While the algorithm level approach is intended to make classifiers more conductive to the minority class. The algorithm level approach is done by combine (ensemble) single classifiers to make it better. A popular ensemble algorithm is boosting and bagging. AdaBoost is a boosting algorithm which has been shown to improve the performance of classifiers. So in this study used data level approach using ROS, RUS, and FSMOTE. While the algorithm level approach using AdaBoost and Bagging. The classifiers are used is Naϊve Bayes. There are many developers and organizations working on the NASA project, but generally have the same ability and tend to make similar mistakes. So in this study used a dataset from NASA. The results show that the best algorithm level approach is Bagging. The best data level approach is FSMOTE. When these both approach are combined, model that combine FSMOTE, Bagging, and Naϊve Bayes outperformed the accuracy of classifying minority class than other models. Keywords: Class Imbalanced, Data Level Approach, Algorithm Level Approach, Software Defect Prediction
vi
KATA PENGANTAR
Dengan memanjatkan puji syukur kehadiran Tuhan Yang Maha Esa yang telah melimpahkan segala rahmat dan hidayahnya kepada penulis, sehingga tersusunlah tesis yang berjudul “Pendekatan Level Data dan Algoritma untuk Penanganan Ketidakseimbangan Kelas pada Prediksi Cacat Software Berbasis Naϊve Bayes“. Tesis tersebut melengkapi salah satu persyaratan yang diajukan dalam rangka menempuh ujian akhir untuk memperoleh gelar Magister Komputer (M.Kom.) pada Program Pasca Sarjana (S2), Program Studi Teknik Informatika di Sekolah Tinggi Manajemen Informatika dan Komputer Eresha. Penulis sungguh sangat menyadari, bahwa penulisan tesis ini tidak akan terwujud tanpa adanya dukungan dan bantuan dari perbagai pihak. Maka, dalam kesempatan ini penulis menghaturkan penghargaan dan ucapan terima kasih yang sebesar-besarnya kepada: 1. Bapak Ir. Damsiruddin Siregar, M.M.T., selaku Ketua STMIK Eresha. 2. Bapak Romi Satria Wahono, B.Eng., M.Eng., Ph.D. selaku Pembimbing Utama dalam penelitian ini. 3. Bapak Dr. Rufman Iman Akbar E., MM., M.Kom. selaku Pembimbing Pendamping dalam penelitian ini. 4. Yulianti (isteriku) tercinta yang selalu mendo’akan dan memberikan dukungan dalam penyelesaian tesis ini.
Akhir kata penulis mohon maaf atas kekeliruan dan kesalahan yang terdapat dalam tesis ini dan berharap semoga tesis ini dapat memberikan manfaat bagi khasanah pengetahuan teknologi informasi di Indonesia.
Penulis
vii
DAFTAR ISI Hal. HALAMAN JUDUL................................................................................................ i PERSETUJUAN TESIS ......................................................................................... ii PENGESAHAN TESIS ......................................................................................... iii PERNYATAAN KEASLIAN TESIS .................................................................... iv ABSTRAK ...............................................................................................................v ABSTRACT ........................................................................................................... vi KATA PENGANTAR .......................................................................................... vii DAFTAR ISI ........................................................................................................ viii DAFTAR TABEL ................................................................................................. xii DAFTAR GAMBAR ......................................................................................... xxiii DAFTAR LAMPIRAN ...................................................................................... xxvi BAB I PENDAHULUAN .....................................................................................1 1.1 Latar Belakang .............................................................................................1 1.2 Permasalahan Penelitian ...............................................................................6 1.2.1 Identifikasi Masalah ..............................................................................6 1.2.2 Ruang Lingkup Masalah .......................................................................7 1.2.3 Rumusan Masalah .................................................................................7 1.3 Tujuan dan Manfaat Penelitian ....................................................................9 1.3.1 Tujuan Penelitian...................................................................................9 1.3.2 Manfaat Penelitian...............................................................................10 1.4 Hubungan antara Masalah, Rumusan, dan Tujuan Penelitian ....................11 1.5 Sistematika Penulisan .................................................................................16 BAB II LANDASAN TEORI ...............................................................................17 2.1 Tinjauan Studi ............................................................................................17 2.1.1 Model Penelitian Pelayo dan Dick (2007) ..........................................17
viii
2.1.2 Model Penelitian Riquelme, Ruiz, Rodriguez, dan Moreno (2008) ..................................................................................................18 2.1.3 Model Penelitian Khoshgoftaar, Gao dan Seliya (2010).....................19 2.1.4 Model Penelitian Wahono, Suryana, dan Ahmad (2014)....................21 2.1.5 Rangkuman Penelitian Terkait ............................................................23 2.2 Tinjauan Pustaka ........................................................................................26 2.2.1 Prediksi Cacat Software ......................................................................26 2.2.2 Naϊve Bayes.........................................................................................36 2.2.3 Ketidakseimbangan Kelas (Class Imbalance).....................................42 2.2.4 Pendekatan Level Data ........................................................................44 2.2.5 Pendekatan Level Algoritma ...............................................................54 2.2.6 Teknik Evaluasi dan Validasi ..............................................................65 2.3 Kerangka Pemikiran Penelitian ..................................................................71 BAB III METODE PENELITIAN.........................................................................74 3.1 Analisa Kebutuhan .....................................................................................74 3.2 Metode Penelitian .......................................................................................74 3.2.1 Metode Pemilihan Data .......................................................................77 3.2.2 Metode Pengumpulan Data .................................................................78 3.2.3 Metode Analisis Data ..........................................................................81 3.3 Perancangan Penelitian ..............................................................................91 3.3.1 Model yang Diusulkan ........................................................................92 3.3.2 Class Diagram.....................................................................................95 3.3.3 Antarmuka Pengguna ..........................................................................98 3.3.4 Pengukuran Kinerja ...........................................................................100 3.4 Teknik Analisis ........................................................................................101 3.4.1 Uji T (T Test) .....................................................................................102 3.4.2 Uji Tanda (Sign Test) ........................................................................104
ix
3.4.3 Uji Peringkat Bertanda Wilcoxon (Wilcoxon Signed Rank Test) ......105 3.4.4 Uji Friedman (Friedman Test) ..........................................................106 3.4.5 Uji Konkordansi Kendall ..................................................................106 3.4.6 Uji Post Hoc ......................................................................................107 BAB IV HASIL DAN PEMBAHASAN..............................................................109 4.1 Hasil .........................................................................................................109 4.1.1 Hasil Pengembangan Aplikasi ..........................................................109 4.1.2 Hasil Pengukuran Kinerja Model ......................................................133 4.2 Pembahasan ..............................................................................................145 4.2.1 Meningkatkan Kinerja Pengklasifikasi (Naϊve Bayes) pada Model Prediksi Cacat Software .........................................................145 4.2.2 Pendekatan Level Algoritma (Ensemble) ..........................................149 4.2.3 Pendekatan Level Data ......................................................................182 4.2.4 Integrasi Pendekatan Level Data dan Level Algoritma ....................200 4.2.5 Pendekatan Terbaik ...........................................................................244 4.2.6 Model Terbaik ...................................................................................255 BAB V KESIMPULAN DAN SARAN..............................................................278 5.1 Kesimpulan...............................................................................................278 5.1.1 Kesimpulan Terkait Tujuan Penelitian RO1 .....................................281 5.1.2 Kesimpulan Terkait Tujuan Penelitian RO2.1 ..................................282 5.1.3 Kesimpulan Terkait Tujuan Penelitian RO2.2 ..................................282 5.1.4 Kesimpulan Terkait Tujuan Penelitian RO2.3 ..................................283 5.1.5 Kesimpulan Terkait Tujuan Penelitian RO3.1 ..................................284 5.1.6 Kesimpulan Terkait Tujuan Penelitian RO3.2 ..................................284 5.1.7 Kesimpulan Terkait Tujuan Penelitian RO3.3 ..................................285 5.1.8 Kesimpulan Terkait Tujuan Penelitian RO3.4 ..................................285 5.1.9 Kesimpulan Terkait Tujuan Penelitian RO4.1 ..................................286
x
5.1.10 Kesimpulan Terkait Tujuan Penelitian RO4.2 ..................................286 5.1.11 Kesimpulan Terkait Tujuan Penelitian RO4.3 ..................................287 5.1.12 Kesimpulan Terkait Tujuan Penelitian RO4.4 ..................................287 5.1.13 Kesimpulan Terkait Tujuan Penelitian RO4.5 ..................................288 5.1.14 Kesimpulan Terkait Tujuan Penelitian RO4.6 ..................................289 5.1.15 Kesimpulan Terkait Tujuan Penelitian RO4.7 ..................................289 5.1.16 Kesimpulan Terkait Tujuan Penelitian RO5 .....................................290 5.1.17 Kesimpulan Terkait Tujuan Penelitian RO6 .....................................290 5.2 Saran .........................................................................................................291 REFERENSI ........................................................................................................293 LAMPIRAN-LAMPIRAN...................................................................................302 DAFTAR RIWAYAT HIDUP .............................................................................303
xi
DAFTAR TABEL Hal Tabel 1.1 Hubungan antara Masalah, Rumusan dan Tujuan Penelitian ................12 Tabel 1.2 Hubungan antara Masalah, Rumusan dan Tujuan Penelitian (Lanjutan) ...............................................................................................13 Tabel 1.3 Hubungan antara Masalah, Rumusan, dan Tujuan Penelitian (Lanjutan) ...............................................................................................14 Tabel 1.4 Hubungan antara Masalah, Rumusan dan Tujuan Penelitian (Lanjutan) ...............................................................................................15 Tabel 2.1 Rangkuman Penelitian Terkait dengan Pendekatan Level Data ............24 Tabel 2.2 Rangkuman Penelitian Terkait dengan Pendekatan Level Data dan Level Algoritma .....................................................................................25 Tabel 2.3 Contoh Umum Cacat Software ..............................................................26 Tabel 2.4 Contoh Nyata Cacat Software ................................................................27 Tabel 2.5 Dekripsi Dataset NASA ........................................................................33 Tabel 2.6 Spesifikasi Dataset NASA MDP Repository Asli (DS) ........................34 Tabel 2.7 Spesifikasi Dataset NASA MDP Repository Transformasi Pertama (DS') .......................................................................................................34 Tabel 2.8 Spesifikasi Dataset NASA MDP Repository Transformasi Kedua (DS'') ......................................................................................................35 Tabel 2.9 Spesifikasi Dataset PROMISE Repository Asli (DS) ...........................35 Tabel 2.10 Spesifikasi Dataset PROMISE Repository Transformasi Pertama (DS') .......................................................................................................36 Tabel 2.11 Spesifikasi Dataset PROMISE Repository Transformasi Kedua (DS'') ......................................................................................................36 Tabel 2.12 Confusion Matrix ................................................................................68 Tabel 3.1 Spesifikasi dan Atribut NASA MDP Repository (Original) ...................79 Tabel 3.2 Spesifikasi dan Atribut PROMISE Repository (Original).....................80 Tabel 3.3 Spesifikasi dan Atribut PROMISE Repository (Original) (Lanjutan) ...............................................................................................81 Tabel 3.4 Spesifikasi dan Atribut NASA MDP repository (D') .............................86 Tabel 3.5 Spesifikasi dan Atribut NASA MDP repository (D'') .............................87
xii
Tabel 3.6 Spesifikasi dan Atribut PROMISE repository (D') ................................88 Tabel 3.7 Spesifikasi dan Atribut PROMISE repository (D') (Lanjutan) .............89 Tabel 3.8 Spesifikasi dan Atribut PROMISE repository (D'') ...............................90 Tabel 3.9 Spesifikasi dan Atribut PROMISE repository (D'') (Lanjutan) .............91 Tabel 3.10 Klasifikasi Keakuratan Pengujian Diagnostik ..................................101 Tabel 4.1 Dataset untuk Menguji Aplikasi ..........................................................110 Tabel 4.2 Dataset untuk Menguji Aplikasi Setelah Standardisasi .......................111 Tabel 4.3 Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-1 ..116 Tabel 4.4 Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-2 ..119 Tabel 4.5 Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-3 ..120 Tabel 4.6 Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-4 ..121 Tabel 4.7 Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-5 ..123 Tabel 4.8 Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-6 ..124 Tabel 4.9 Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-7 ..125 Tabel 4.10 Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke8 ............................................................................................................127 Tabel 4.11 Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke9 ............................................................................................................128 Tabel 4.12 Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke10 ..........................................................................................................129 Tabel 4.13 Rekapitulasi Penghitungan Manual untuk Model Naïve Bayes.........131 Tabel 4.14 Hasil Klasifikasi Penghitungan Manual dengan 10-Fold Cross Validation .............................................................................................131 Tabel 4.15 Hasil Pengukuran Penerapan Dataset CM1 dari NASA MDP Repository ............................................................................................134 Tabel 4.16 Hasil Pengukuran Penerapan Dataset JM1 dari NASA MDP Repository ............................................................................................135 Tabel 4.17 Hasil Pengukuran Penerapan Dataset KC1 dari NASA MDP Repository ............................................................................................135 Tabel 4.18 Hasil Pengukuran Penerapan Dataset KC3 dari NASA MDP Repository ............................................................................................135 Tabel 4.19 Hasil Pengukuran Penerapan Dataset MC2 dari NASA MDP Repository ............................................................................................136
xiii
Tabel 4.20 Hasil Pengukuran Penerapan Dataset PC1 dari NASA MDP Repository ............................................................................................136 Tabel 4.21 Hasil Pengukuran Penerapan Dataset PC2 dari NASA MDP Repository ............................................................................................136 Tabel 4.22 Hasil Pengukuran Penerapan Dataset PC3 dari NASA MDP Repository ............................................................................................137 Tabel 4.23 Hasil Pengukuran Penerapan Dataset PC4 dari NASA MDP Repository ............................................................................................137 Tabel 4.24 Hasil Pengukuran Penerapan Dataset PC5 dari NASA MDP Repository ............................................................................................137 Tabel 4.25 Hasil Pengukuran Penerapan Dataset CM1 dari PROMISE Repository ............................................................................................138 Tabel 4.26 Hasil Pengukuran Penerapan Dataset JM1 dari PROMISE Repository ............................................................................................138 Tabel 4.27 Hasil Pengukuran Penerapan Dataset KC1 dari PROMISE Repository ............................................................................................138 Tabel 4.28 Hasil Pengukuran Penerapan Dataset KC3 dari PROMISE Repository ............................................................................................139 Tabel 4.29 Hasil Pengukuran Penerapan Dataset MC2 dari PROMISE Repository ............................................................................................139 Tabel 4.30 Hasil Pengukuran Penerapan Dataset PC1 dari PROMISE Repository ............................................................................................139 Tabel 4.31 Hasil Pengukuran Penerapan Dataset PC2 dari PROMISE Repository ............................................................................................140 Tabel 4.32 Hasil Pengukuran Penerapan Dataset PC3 dari PROMISE Repository ............................................................................................140 Tabel 4.33 Hasil Pengukuran Penerapan Dataset PC4 dari PROMISE Repository ............................................................................................140 Tabel 4.34 Hasil Pengukuran Penerapan Dataset PC5 dari PROMISE Repository ............................................................................................141 Tabel 4.35 Rekap Pengukuran Akurasi Model pada NASA MDP Repository ....141 Tabel 4.36 Rekap Pengukuran Akurasi Model pada PROMISE Repository .......141 Tabel 4.37 Rekap Pengukuran Sensitivitas Model pada NASA MDP Repository ............................................................................................142 xiv
Tabel 4.38 Rekap Pengukuran Sensitivitas Model pada PROMISE Repository .142 Tabel 4.39 Rekap Pengukuran F-Measure Model pada NASA MDP Repository ............................................................................................142 Tabel 4.40 Rekap Pengukuran F-Measure Model pada PROMISE Repository ..143 Tabel 4.41 Rekap Pengukuran G-Mean Model pada NASA MDP Repository ...143 Tabel 4.42 Rekap Pengukuran G-Mean Model pada PROMISE Repository ......144 Tabel 4.43 Rekap Pengukuran AUC Model pada NASA MDP Repository ........144 Tabel 4.44 Rekap Pengukuran AUC Model pada PROMISE Repository ...........144 Tabel 4.45 Uji T (T-Test) Sampel Berpasangan Akurasi Model NB dan AB+NB ................................................................................................150 Tabel 4.46 Uji T (T-Test) Sampel Berpasangan Sensitivitas Model NB dan AB+NB ................................................................................................150 Tabel 4.47 Uji T (T-Test) Sampel Berpasangan F-Measure Model NB dan AB+NB ................................................................................................151 Tabel 4.48 Uji T (T-Test) Sampel Berpasangan G-Mean Model NB dan AB+NB ................................................................................................151 Tabel 4.49 Uji T (T-Test) Sampel Berpasangan AUC Model NB dan AB+NB ..152 Tabel 4.50 Rekap Uji T untuk Model NB dan AB+NB.......................................152 Tabel 4.51 Frekuensi Pengukuran Akurasi pada Uji Tanda ................................153 Tabel 4.52 Uji Tanda Pengukuran Akurasi ..........................................................153 Tabel 4.53 Frekuensi Pengukuran Sensitivitas pada Uji Tanda ...........................153 Tabel 4.54 Uji Tanda Pengukuran Sensitivitas ....................................................154 Tabel 4.55 Frekuensi Pengukuran F-Measure pada Uji Tanda ............................154 Tabel 4.56 Uji Tanda Pengukuran F-Measure .....................................................154 Tabel 4.57 Frekuensi Pengukuran G-Mean pada Uji Tanda ................................155 Tabel 4.58 Uji Tanda Pengukuran G-Mean .........................................................155 Tabel 4.59 Frekuensi Pengukuran AUC pada Uji Tanda .....................................156 Tabel 4.60 Uji Tanda Pengukuran AUC ..............................................................156 Tabel 4.61 Rekap Uji Tanda untuk Model NB dan AB+NB ...............................156 Tabel 4.62 Peringkat Pengukuran Akurasi pada Uji Peringkat Bertanda Wilcoxon ..............................................................................................157 Tabel 4.63 Uji Peringkat Bertanda Wilcoxon Pengukuran Akurasi ....................157 Tabel 4.64 Peringkat Pengukuran Sensitivitas pada Uji Peringkat Bertanda Wilcoxon ..............................................................................................158 xv
Tabel 4.65 Uji Peringkat Bertanda Wilcoxon Pengukuran Sensitivitas ..............158 Tabel 4.66 Peringkat Pengukuran F-Measure pada Uji Peringkat Bertanda Wilcoxon ..............................................................................................158 Tabel 4.67 Uji Peringkat Bertanda Wilcoxon Pengukuran F-Measure................159 Tabel 4.68 Peringkat Pengukuran G-Mean pada Uji Peringkat Bertanda Wilcoxon ..............................................................................................159 Tabel 4.69 Uji Peringkat Bertanda Wilcoxon Pengukuran G-Mean....................159 Tabel 4.70 Peringkat Pengukuran AUC pada Uji Peringkat Bertanda Wilcoxon ..............................................................................................160 Tabel 4.71 Uji Peringkat Bertanda Wilcoxon Pengukuran AUC ........................160 Tabel 4.72 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan AB+NB ................................................................................................161 Tabel 4.73 Peringkat Pengukuran Akurasi pada Uji Friedman............................161 Tabel 4.74 Uji Friedman Pengukuran Akurasi ....................................................162 Tabel 4.75 Peringkat Pengukuran Sensitivitas pada Uji Friedman ......................162 Tabel 4.76 Uji Friedman Pengukuran Sensitivitas ...............................................162 Tabel 4.77 Peringkat Pengukuran F-Measure pada Uji Friedman .......................162 Tabel 4.78 Uji Friedman Pengukuran F-Measure ................................................162 Tabel 4.79 Peringkat Pengukuran G-Mean pada Uji Friedman ...........................163 Tabel 4.80 Uji Friedman Pengukuran G-Mean ....................................................163 Tabel 4.81 Peringkat Pengukuran AUC pada Uji Friedman ................................163 Tabel 4.82 Uji Friedman Pengukuran AUC .........................................................163 Tabel 4.83 Rekap Uji Friedman untuk Model NB dan AB+NB ..........................164 Tabel 4.84 Peringkat Pengukuran Akurasi pada Uji Konkordansi Kendall.........164 Tabel 4.85 Uji Konkordansi Kendall Pengukuran Akurasi .................................164 Tabel 4.86 Peringkat Pengukuran Sensitivitas pada Uji Konkordansi Kendall ...165 Tabel 4.87 Uji Konkordansi Kendall Pengukuran Sensitivitas ............................165 Tabel 4.88 Peringkat Pengukuran F-Measure pada Uji Konkordansi Kendall ....165 Tabel 4.89 Uji Konkordansi Kendall Pengukuran F-Measure .............................165 Tabel 4.90 Peringkat Pengukuran G-Mean pada Uji Konkordansi Kendall ........166 Tabel 4.91 Uji Konkordansi Kendall Pengukuran G-Mean .................................166 Tabel 4.92 Peringkat Pengukuran UAC pada Uji Konkordansi Kendall .............166 Tabel 4.93 Uji Konkordansi Kendall Pengukuran AUC ......................................166 Tabel 4.94 Rekap Uji Konkordansi Kendall untuk Model NB dan AB+NB .......167 xvi
Tabel 4.95 Rekap Uji Statistik .............................................................................167 Tabel 4.96 Rekap Uji T untuk Model NB dan BG+NB.......................................168 Tabel 4.97 Rekap Uji Tanda untuk Model NB dan BG+NB ...............................169 Tabel 4.98 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan BG+NB ................................................................................................169 Tabel 4.99 Rekap Uji Friedman untuk Model NB dan BG+NB ..........................170 Tabel 4.100 Rekap Uji Konkordansi Kendall untuk Model NB dan BG+NB .....170 Tabel 4.101 Rekap Uji Statistik ...........................................................................171 Tabel 4.102 Rekap P-Value pada Uji Friedman untuk Model yang Mengintegrasikan Pendekatan Level Algoritma ..................................172 Tabel 4.103 Hasil Pengukuran Nilai Akurasi Model NB, AB+NB, dan BG+NB ................................................................................................173 Tabel 4.104 Peringkat Akurasi Model pada Uji Friedman ..................................174 Tabel 4.105 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................174 Tabel 4.106 P-value pada Nemenyi Post Hoc ......................................................175 Tabel 4.107 Perbedaan Signifikan pada Nemenyi Post Hoc................................175 Tabel 4.108 Hasil Pengukuran Nilai Sensitivitas Model NB, AB+NB, dan BG+NB ................................................................................................176 Tabel 4.109 Peringkat Sensitivitas Model pada Uji Friedman ............................177 Tabel 4.110 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................177 Tabel 4.111 P-value pada Nemenyi Post Hoc......................................................178 Tabel 4.112 Perbedaan Signifikan pada Nemenyi Post Hoc................................178 Tabel 4.113 Hasil Pengukuran Nilai G-Mean Model ..........................................179 Tabel 4.114 Peringkat G-Mean Model pada Uji Friedman..................................180 Tabel 4.115 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................180 Tabel 4.116 P-value pada Nemenyi Post Hoc ......................................................181 Tabel 4.117 Perbedaan Signifikan pada Nemenyi Post Hoc................................181 Tabel 4.118 Rekap Uji T untuk Model NB dan ROS+NB ..................................182 Tabel 4.119 Rekap Uji Tanda untuk Model NB dan ROS+NB ...........................183 Tabel 4.120 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan ROS+NB ..............................................................................................183 Tabel 4.121 Rekap Uji Friedman untuk Model NB dan ROS+NB .....................184 Tabel 4.122 Rekap Uji Konkordansi Kendall untuk Model NB dan ROS+NB ..184 Tabel 4.123 Rekap Uji Statistik ...........................................................................185 xvii
Tabel 4.124 Rekap Uji T untuk Model NB dan RUS+NB ..................................186 Tabel 4.125 Rekap Uji Tanda untuk Model NB dan RUS+NB ...........................186 Tabel 4.126 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan RUS+NB ..............................................................................................187 Tabel 4.127 Rekap Uji Friedman untuk Model NB dan RUS+NB .....................187 Tabel 4.128 Rekap Uji Konkordansi Kendall untuk Model NB dan RUS+NB ..188 Tabel 4.129 Rekap Uji Statistik ...........................................................................188 Tabel 4.130 Rekap Uji T untuk Model NB dan FSMOTE+NB ..........................189 Tabel 4.131 Rekap Uji Tanda untuk Model NB dan FSMOTE+NB ...................190 Tabel 4.132 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan FSMOTE+NB ......................................................................................190 Tabel 4.133 Rekap Uji Friedman untuk Model NB dan FSMOTE+NB .............191 Tabel 4.134 Rekap Uji Konkordansi Kendall untuk Model NB dan FSMOTE+NB ......................................................................................191 Tabel 4.135 Rekap Uji Statistik ...........................................................................192 Tabel 4.136 Rekap P-Value pada Uji Friedman untuk Model yang Mengintegrasikan Pendekatan Level Data ...........................................193 Tabel 4.137 Hasil Pengukuran Nilai Sensitivitas Model .....................................194 Tabel 4.138 Peringkat Sensitivitas Model pada Uji Friedman ............................195 Tabel 4.139 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................195 Tabel 4.140 P-value pada Nemenyi Post Hoc......................................................196 Tabel 4.141 Perbedaan Signifikan pada Nemenyi Post Hoc................................196 Tabel 4.142 Hasil Pengukuran Nilai G-Mean Model ..........................................197 Tabel 4.143 Peringkat G-Mean Model pada Uji Friedman..................................198 Tabel 4.144 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................198 Tabel 4.145 P-value pada Nemenyi Post Hoc ......................................................199 Tabel 4.146 Perbedaan Signifikan pada Nemenyi Post Hoc................................199 Tabel 4.147 Rekap Uji T untuk Model NB dan ROS+AB+NB...........................201 Tabel 4.148 Rekap Uji Tanda untuk Model NB dan ROS+AB+NB ...................201 Tabel 4.149 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan ROS+AB+NB ......................................................................................202 Tabel 4.150 Rekap Uji Friedman untuk Model NB dan ROS+AB+NB ..............202 Tabel 4.151 Rekap Uji Konkordansi Kendall untuk Model NB dan ROS+AB+NB ......................................................................................203 xviii
Tabel 4.152 Rekap Uji Statistik ...........................................................................203 Tabel 4.153 Rekap Uji T untuk Model NB dan RUS+AB+NB...........................204 Tabel 4.154 Rekap Uji Tanda untuk Model NB dan RUS+AB+NB ...................205 Tabel 4.155 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan RUS+AB+NB ......................................................................................205 Tabel 4.156 Rekap Uji Friedman untuk Model NB dan RUS+AB+NB ..............206 Tabel 4.157 Rekap Uji Konkordansi Kendall untuk Model NB dan RUS+AB+NB ......................................................................................206 Tabel 4.158 Rekap Uji Statistik ...........................................................................207 Tabel 4.159 Rekap Uji T untuk Model NB dan FSMOTE+AB+NB...................208 Tabel 4.160 Rekap Uji Tanda untuk Model NB dan FSMOTE+AB+NB ...........208 Tabel 4.161 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan FSMOTE+AB+NB ..............................................................................209 Tabel 4.162 Rekap Uji Friedman untuk Model NB dan FSMOTE+AB+NB ......209 Tabel 4.163 Rekap Uji Konkordansi Kendall untuk Model NB dan FSMOTE+AB+NB ..............................................................................210 Tabel 4.164 Rekap Uji Statistik ...........................................................................210 Tabel 4.165 Rekap Uji T untuk Model NB dan ROS+BG+NB...........................212 Tabel 4.166 Rekap Uji Tanda untuk Model NB dan ROS+BG+NB ...................212 Tabel 4.167 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan ROS+BG+NB ......................................................................................213 Tabel 4.168 Rekap Uji Friedman untuk Model NB dan ROS+BG+NB ..............213 Tabel 4.169 Rekap Uji Konkordansi Kendall untuk Model NB dan ROS+BG+NB ......................................................................................214 Tabel 4.170 Rekap Uji Statistik ...........................................................................214 Tabel 4.171 Rekap Uji T untuk Model NB dan RUS+BG+NB...........................215 Tabel 4.172 Rekap Uji Tanda untuk Model NB dan RUS+BG+NB ...................216 Tabel 4.173 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan RUS+BG+NB ......................................................................................216 Tabel 4.174 Rekap Uji Friedman untuk Model NB dan RUS+BG+NB ..............217 Tabel 4.175 Rekap Uji Konkordansi Kendall untuk Model NB dan RUS+BG+NB ......................................................................................217 Tabel 4.176 Rekap Uji Statistik ...........................................................................218 Tabel 4.177 Rekap Uji T untuk Model NB dan FSMOTE+BG+NB...................219 xix
Tabel 4.178 Rekap Uji Tanda untuk Model NB dan FSMOTE+BG+NB ...........219 Tabel 4.179 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan FSMOTE+BG+NB ..............................................................................220 Tabel 4.180 Rekap Uji Friedman untuk Model NB dan FSMOTE+BG+NB ......220 Tabel 4.181 Rekap Uji Konkordansi Kendall untuk Model NB dan FSMOTE+BG+NB ..............................................................................221 Tabel 4.182 Rekap Uji Statistik ...........................................................................221 Tabel 4.183 Rekap P-Value pada Uji Friedman untuk Model yang Mengintegrasikan Pendekatan Level Data dan Level Algoritma ........223 Tabel 4.184 Hasil Pengukuran Akurasi Model ....................................................224 Tabel 4.185 Peringkat Akurasi Model pada Uji Friedman ..................................225 Tabel 4.186 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................226 Tabel 4.187 P-value pada Nemenyi Post Hoc ......................................................226 Tabel 4.188 Perbedaan Signifikan pada Nemenyi Post Hoc................................227 Tabel 4.189 Hasil Pengukuran Nilai Sensitivitas Model .....................................228 Tabel 4.190 Peringkat Sensitivitas Model pada Uji Friedman ............................229 Tabel 4.191 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................230 Tabel 4.192 P-value pada Nemenyi Post Hoc ......................................................230 Tabel 4.193 Perbedaan Signifikan pada Nemenyi Post Hoc................................231 Tabel 4.194 Hasil Pengukuran Nilai F-Measure Model ......................................232 Tabel 4.195 Peringkat F-Measure Model pada Uji Friedman..............................233 Tabel 4.196 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................234 Tabel 4.197 P-value pada Nemenyi Post Hoc......................................................234 Tabel 4.198 Perbedaan Signifikan pada Nemenyi Post Hoc................................235 Tabel 4.199 Hasil Pengukuran Nilai G-Mean Model ..........................................236 Tabel 4.200 Peringkat G-Mean Model pada Uji Friedman..................................237 Tabel 4.201 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................238 Tabel 4.202 P-value pada Nemenyi Post Hoc ......................................................238 Tabel 4.203 Perbedaan Signifikan pada Nemenyi Post Hoc................................239 Tabel 4.204 Hasil Pengukuran Nilai AUC Model ...............................................240 Tabel 4.205 Peringkat AUC Model pada Uji Friedman ......................................241 Tabel 4.206 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................242 Tabel 4.207 P-value pada Nemenyi Post Hoc ......................................................242 Tabel 4.208 Perbedaan Signifikan pada Nemenyi Post Hoc................................243 xx
Tabel 4.209 Rekap P-Value pada Uji Friedman untuk Model NB, BG+NB, dan FSMOTE+NB ...............................................................................244 Tabel 4.210 Hasil Pengukuran Nilai Sensitivitas Model NB, BG+NB, dan FSMOTE+NB ......................................................................................245 Tabel 4.211 Peringkat Sensitivitas Model NB, BG+NB, dan FSMOTE+NB pada Uji Friedman ................................................................................247 Tabel 4.212 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................247 Tabel 4.213 P-value pada Nemenyi Post Hoc ......................................................248 Tabel 4.214 Perbedaan Signifikan pada Nemenyi Post Hoc................................248 Tabel 4.215 Hasil Pengukuran Nilai G-Mean Model NB, BG+NB, dan FSMOTE+NB ......................................................................................249 Tabel 4.216 Peringkat G-Mean Model NB, BG+NB, dan FSMOTE+NB pada Uji Friedman ........................................................................................250 Tabel 4.217 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................250 Tabel 4.218 P-value pada Nemenyi Post Hoc ......................................................251 Tabel 4.219 Perbedaan Signifikan pada Nemenyi Post Hoc................................251 Tabel 4.220 Hasil Pengukuran Nilai AUC Model NB, BG+NB, dan FSMOTE+NB ......................................................................................252 Tabel 4.221 Peringkat AUC Model NB, BG+NB, dan FSMOTE+NB pada Uji Friedman ........................................................................................253 Tabel 4.222 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................253 Tabel 4.223 P-value pada Nemenyi Post Hoc ......................................................254 Tabel 4.224 Perbedaan Signifikan pada Nemenyi Post Hoc................................254 Tabel 4.225 Rekap P-Value pada Uji Friedman untuk Semua Model .................255 Tabel 4.226 Hasil Pengukuran Akurasi Model ....................................................256 Tabel 4.227 Peringkat Akurasi Model pada Uji Friedman ..................................258 Tabel 4.228 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................259 Tabel 4.229 P-value pada Nemenyi Post Hoc ......................................................259 Tabel 4.230 Perbedaan Signifikan pada Nemenyi Post Hoc................................260 Tabel 4.231 Hasil Pengukuran Nilai Sensitivitas Model .....................................261 Tabel 4.232 Peringkat Sensitivitas Model pada Uji Friedman ............................262 Tabel 4.233 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................263 Tabel 4.234 P-value pada Nemenyi Post Hoc ......................................................263 Tabel 4.235 Perbedaan Signifikan pada Nemenyi Post Hoc................................264 xxi
Tabel 4.236 Hasil Pengukuran Nilai F-Measure Model ......................................265 Tabel 4.237 Peringkat F-Measure Model pada Uji Friedman..............................266 Tabel 4.238 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................267 Tabel 4.239 P-value pada Nemenyi Post Hoc ......................................................267 Tabel 4.240 Perbedaan Signifikan pada Nemenyi Post Hoc................................268 Tabel 4.241 Hasil Pengukuran Nilai G-Mean Model ..........................................269 Tabel 4.242 Peringkat G-Mean Model pada Uji Friedman..................................270 Tabel 4.243 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................271 Tabel 4.244 P-value pada Nemenyi Post Hoc ......................................................271 Tabel 4.245 Perbedaan Signifikan pada Nemenyi Post Hoc................................272 Tabel 4.246 Hasil Pengukuran Nilai AUC Model ...............................................273 Tabel 4.247 Peringkat AUC Model pada Uji Friedman ......................................274 Tabel 4.248 Perbandingan Berpasangan pada Nemenyi Post Hoc ......................275 Tabel 4.249 P-value pada Nemenyi Post Hoc ......................................................275 Tabel 4.250 Perbedaan Signifikan pada Nemenyi Post Hoc................................276
xxii
DAFTAR GAMBAR Hal Gambar 2.1 Model yang Diusulkan Pelayo dan Dick (2007) ................................18 Gambar 2.2 Model yang Diusulkan Riquelme, Ruiz, Rodriguez, dan Moreno (2008) .....................................................................................................19 Gambar 2.3 Model yang Diusulkan Khoshgoftaar, Gao dan Seliya (2010) ..........21 Gambar 2.4 Model yang Diusulkan Wahono, Suryana, dan Ahmad (2014) .........22 Gambar 2.5 Model Pencegahan Cacat Software ....................................................28 Gambar 2.6 Contoh Kode Sumber Program Java ..................................................30 Gambar 2.7 Model Grafis untuk Klasifikasi .........................................................37 Gambar 2.8 Model Grafis Naϊve Bayes dengan Asumsi Masukan Bebas ............38 Gambar 2.9 Flowchart Algoritma Naïve Bayes ....................................................42 Gambar 2.10 Flowchart Algoritma ROS (Random Over-Sampling).....................46 Gambar 2.11 Flowchart Algoritma RUS (Random Under-Sampling) ..................47 Gambar 2.12 Ilustrasi Sintesis Sampel SMOTE ....................................................49 Gambar 2.13 Ilustrasi Sintesis Sampel FSMOTE ..................................................49 Gambar 2.14 Flowchart Algoritma Utama FSMOTE ...........................................51 Gambar 2.15 Flowchart Algoritma Sistesis FSMOTE ..........................................52 Gambar 2.16 Flowchart Algoritma AdaBoost Berbasis Naïve Bayes ...................61 Gambar 2.17 Flowchart Algoritma Bagging Berbasis Naïve Bayes .....................64 Gambar 2.18 Pembagian Dataset untuk 10-Fold Cross Validation ......................67 Gambar 2.19 Kerangka Pemikiran Penelitian .......................................................72 Gambar 3.1 Tahapan Penelitian .............................................................................75 Gambar 3.2 Flowchart Model yang Diusulkan .....................................................93 Gambar 3.3 Kerangka Kerja Model yang Diusulkan ............................................94 Gambar 3.4 Class Diagram Aplikasi Prediksi Cacat Software .............................95 Gambar 3.5 Class Diagram Paket Model ..............................................................96 Gambar 3.6 Class Diagram Paket View ................................................................97 Gambar 3.7 Class Diagram Paket Controller ........................................................98 Gambar 3.8 Class Diagram Paket Softwaredefectprediction ................................98 Gambar 3.9 Antarmuka Aplikasi untuk Mengukur Kinerja Model .......................99 Gambar 3.10 Antarmuka Hasil Pengukuran Kinerja Semua Model ....................100
xxiii
Gambar 4.1 Tampilan Aplikasi untuk Pengukuran Kinerja Model Naïve Bayes ....................................................................................................133 Gambar 4.2 Diagram Perbandingan Akurasi Model Prediksi Cacat Software ....145 Gambar 4.3 Diagram Perbandingan Sensitivitas Model Prediksi Cacat Software ...............................................................................................146 Gambar 4.4 Diagram Perbandingan F-Measure Model Prediksi Cacat Software ...............................................................................................147 Gambar 4.5 Diagram Perbandingan G-Mean Model Prediksi Cacat Software ...148 Gambar 4.6 Diagram Perbandingan AUC Model Prediksi Cacat Software ........149 Gambar 4.7 Perbandingan Akurasi Model Menggunakan Diagram Demsar ......175 Gambar 4.8 Perbandingan Sensitivitas Model Menggunakan Diagram Demsar .................................................................................................178 Gambar 4.10 Perbandingan G-Mean Model Menggunakan Diagram Demsar ....181 Gambar 4.11 Perbandingan Sensitivitas Model Menggunakan Diagram Demsar .................................................................................................196 Gambar 4.12 Perbandingan G-Mean Model Menggunakan Diagram Demsar ....199 Gambar 4.13 Perbandingan Akurasi Model Menggunakan Diagram Demsar ....227 Gambar 4.14 Perbandingan Sensitivitas Model Menggunakan Diagram Demsar .................................................................................................231 Gambar 4.15 Perbandingan F-Measure Model Menggunakan Diagram Demsar .................................................................................................235 Gambar 4.16 Perbandingan G-Mean Model Menggunakan Diagram Demsar ....239 Gambar 4.17 Perbandingan AUC Model Menggunakan Diagram Demsar .........243 Gambar 4.19 Perbandingan Sensitivitas Model NB, BG+NB, dan FSMOTE+NB Menggunakan Diagram Demsar ..................................248 Gambar 4.20 Perbandingan G-Mean Model NB, BG+NB, dan FSMOTE+NB Menggunakan Diagram Demsar ..........................................................251 Gambar 4.21 Perbandingan AUC Model NB, BG+NB, dan FSMOTE+NB Menggunakan Diagram ........................................................................254 Gambar 4.22 Perbandingan Akurasi Model Menggunakan Diagram Demsar ....260 Gambar 4.23 Perbandingan Sensitivitas Model Menggunakan Diagram Demsar .................................................................................................264 Gambar 4.24 Perbandingan F-Measure Model Menggunakan Diagram Demsar .................................................................................................268 xxiv
Gambar 4.25 Perbandingan G-Mean Model Menggunakan Diagram Demsar ....272 Gambar 4.26 Perbandingan AUC Model Menggunakan Diagram Demsar .........276
xxv
DAFTAR LAMPIRAN
Lampiran 1 Studentized Range Critical Values for Multiple Comparison ..........302
xxvi
BAB I PENDAHULUAN
1.1
Latar Belakang Kualitas software biasanya diukur dari jumlah cacat yang ada pada produk
yang dihasilkan (Turhan & Bener, Software Defect Prediction: Heuristics for Weighted Naive Bayes, 2007, p. 244). Cacat adalah kontributor utama untuk limbah teknologi informasi dan menyebabkan pengerjaan ulang proyek secara signifikan, keterlambatan, dan biaya lebih berjalan (Anantula & Chamarthi, 2011). Potensi cacat tertinggi terjadi pada tahap pengkodean sebesar 1,75 cacat per titik fungsi, kedua pada desain sebesar 1,25 cacat per titik fungsi, ketiga pada persyaratan sebesar 1 cacat, keempat pada dokumentasi sebesar 0,6 cacat per titik fungsi, dan pada kesalahan perbaikan sebesar 0,4 cacat per titik fungsi (Jones, 2013, p. 3). Sejumlah cacat yang ditemukan di akhir proyek secara sistematis menyebabkan penyelesaian proyek melebihi jadwal (Lehtinen, Mäntylä, Vanhanen, Itkonen, & Lassenius, 2014, p. 626). Secara umum, biaya masa depan untuk koreksi cacat yang tidak terdeteksi di rilis produk mengkonsumsi sebagian besar dari total biaya pemeliharaan (In, Baik, Kim, Yang, & Boehm, 2006, p. 86), sehingga perbaikan cacat harus dilakukan sebelum rilis. Untuk mencari cacat software biasanya dilakukan dengan debugging, yaitu pencarian dengan melibatkan semua source code, berjalannya, keadaannya, dan riwayatnya (Weiss, Premraj, Zimmermann, & Zeller, 2007, p. 1). Hal ini membutuhkan sumber daya yang banyak, dan tidak efisien karena menggunakan asumsi dasar bahwa penulis kode program tidak dapat dipercaya. Dengan mengurangi jumlah cacat pada software yang dihasilkan dapat meningkatkan kualitas software. Secara tradisional, software berkualitas tinggi adalah software yang tidak ditemukan cacat selama pemeriksaan dan pengujian, serta dapat memberikan nilai kepada pengguna dan memenuhi harapan mereka (McDonald, Musson, & Smith, 2008, pp. 4-6). Pemeriksaan dan pengujian dilakukan terhadap alur dan keluaran dari software. Jumlah cacat yang ditemukan dalam pemeriksaan dan pengujian tidak dapat menjadi satu-satunya ukuran dari kualitas software. Pada banyak kasus, kualitas software lebih banyak dipengaruhi
1
penggunanya, sehingga perlu diukur secara subyektif berdasarkan pada persepsi dan harapan customer. Pengujian merupakan proses pengembangan perangkat lunak yang paling mahal dan banyak memakan waktu, karena sekitar 50% dari jadwal proyek digunakan untuk pengujian (Fakhrahmad & Sami, 2009, p. 206). Software yang cacat menyebabkan biaya pengembangan, perawatan dan estimasi menjadi tinggi, serta menurunkan kualitas software (Gayatri, Nickolas, Reddy, & Chitra, 2009, p. 393). Biaya untuk memperbaiki cacat akibat salah persyaratan (requirement) setelah fase pengembangan (deployment) dapat mencapai 100 kali, biaya untuk memperbaiki cacat pada tahap desain setelah pengiriman produk mencapai 60 kali, sedangkan biaya untuk memperbaiki cacat pada tahap desain yang ditemukan oleh pelanggan adalah 20 kali (Strangio, 2009, p. 389). Hal ini karena cacat software dapat mengakibatkan business process tidak didukung oleh software yang dikembangkan, atau software yang telah selesai dikembangkan harus dilakukan perbaikan atau dikembangkan ulang jika terlalu banyak cacat. Aktifitas untuk mendukung pengembangan software dan proses menajemen project adalah wilayah penelitian yang penting (Lessmann, Baesens, Mues, & Pietsch, 2008, p. 485). Karena pentingnya kesempurnaan software yang dikembangkan, maka diperlukan prosedur pengembangan yang sempurna juga untuk menghindari cacat software. Prosedur yang diperlukan adalah strategi pengujian yang efektif dengan menggunakan sumber daya yang efisien untuk mengurangi biaya pengembangan software. Prosedur untuk meningkatan kualitas software dapat dilakukan dengan berbagai cara, tetapi pendekatan terbaik adalah pencegahan cacat, karena manfaat dari upaya pencegahannya dapat diterapkan kembali pada masa depan (McDonald, Musson, & Smith, 2008, p. 4). Untuk dapat melakukan pencegahan cacat, maka harus dapat memprediksi kemungkinan terjadinya cacat. Kemampuan untuk memprediksi daerah rawan cacat dari modul sistem/subsistem, dapat berdampak pada jadwal, biaya, dan kepuasan pelanggan (Kumar, Sharma, & Kumar, 2013, p. 204). Sehingga memprediksi waktu penyelesaian pengembangan software tertentu merupakan hal yang sulit untuk dilakukan (Weiss, Premraj, Zimmermann, & Zeller, 2007, p. 1) karena dipengaruhi oleh jumlah cacat yang dihasilkan pada saat pengembangan. Prediksi cacat software merupakan hal penting untuk mengurangi waktu pengujian dengan 2
mengalokasikan sumber daya pengujian secara efektif (Turhan & Bener, Analysis of Naive Bayes’ Assumptions on Software Fault Data: An Empirical Study, 2009, p. 1). Saat ini prediksi cacat software berfokus pada memperkirakan jumlah cacat dalam software, menemukan hubungan cacat, dan mengklasifikasikan kerawanan cacat dari komponen software, biasanya ke dalam kelompok rawan dan tidak rawan (Song, Jia, Shepperd, Ying, & Liu, 2011, p. 356). Klasifikasi adalah pendekatan yang populer untuk memprediksi cacat software (Lessmann, Baesens, Mues, & Pietsch, 2008, p. 485) atau untuk mengidentifikasi kegagalan software (Gayatri, Nickolas, Reddy, & Chitra, 2009, p. 393). Untuk melakukan klasifikasi diperlukan data yang diperoleh dari riwayat pengembangan sebelumnya. Software metrics merupakan data yang dapat digunakan untuk mendeteksi modul software apakah memiliki cacat atau tidak (Chiş, 2008, p. 273). Salah satu metode yang efektif untuk mengidentifikasi modul software dari potensi rawan kegagalan adalah dengan menggunakan teknik data mining yang diterapkan pada software metrics yang dikumpulkan selama proses pengembangan software (Khoshgoftaar, Gao, & Seliya, 2010, p. 137). Software metrics yang dikumpulkan selama pengembangan disimpan dalam bentuk dataset. Dataset NASA (National Aeronautics and Space Administration) yang telah tersedia untuk umum merupakan data metrik perangkat lunak yang sangat populer dalam pengembangan model prediksi cacat software, karena 62 penelitian dari 208 penelitian telah menggunakan dataset NASA (Hall, Beecham, Bowes, Gray, & Counsell, 2011, p. 18). Berdasarkan wawancara secara online di researchgate.net, Martin John Shepperd menyatakan bahwa ada banyak developer dan organisasi yang mengerjakan proyek NASA. Hal ini tentu memiliki banyak masalah asumsi, tetapi secara umum memiliki kemampuan yang sama dan cenderung membuat kesalahan yang serupa. Dataset NASA yang tersedia untuk umum telah banyak digunakan sebagai bagian dari penelitian cacat software (Shepperd, Song, Sun, & Mair, 2013, p. 1208). Dataset NASA tersedia dari dua sumber, yaitu NASA MDP (Metrics Data Program) repository dan PROMISE (Predictor Models in Software Engineering) Repository (Gray, Bowes, Davey, Sun, & Christianson, 2011, p. 98). Menggunakan dataset NASA merupakan pilihan yang terbaik, karena mudah diperoleh dan kinerja dari metode yang digunakan menjadi mudah untuk dibandingkan dengan penelitian sebelumnya. 3
Metode prediksi cacat menggunakan probabilitas dapat menemukan sampai 71% (Menzies, Greenwald, & Frank, 2007, p. 2), lebih baik dari metode yang digunakan oleh industri. Jika dilakukan dengan menganalisa secara manual dapat menemukan 35% sampai 60% (Shull, et al., 2002, p. 254). Hasil tersebut menunjukkan bahwa menggunakan probalitas merupakan metode terbaik untuk menemukan cacat software. Berdasarkan hasil penelitian yang ada, tidak ditemukan satu metode terbaik yang berguna untuk mengklasifikasikan berbasis metrik secara umum dan selalu konsisten dalam semua penelitian yang berbeda (Lessmann, Baesens, Mues, & Pietsch, 2008, p. 485). Tetapi model Naϊve Bayes merupakan salah satu algoritma klasifikasi paling efektif (Tao & Wei-hua, 2010, p. 1) dan efisien (Zhang, Jiang, & Su, 2005, p. 1020), secara umum memiliki kinerja yang baik (Hall, Beecham, Bowes, Gray, & Counsell, 2011, p. 13), serta cukup menarik karena kesederhanaan, keluwesan, ketangguhan dan efektifitasnya (Gayatri, Nickolas, Reddy, & Chitra, 2009, p. 395). Maka dibutuhkan pengembangan prosedur penelitian yang lebih dapat diandalkan sebelum memiliki keyakinan dalam menyimpulkan perbandingan penelitian dari model prediksi cacat software (Myrtveit, Stensrud, & Shepperd, 2005, p. 380). Pengembangan prosedur penelitian dapat dilakukan dengan memperbaiki kualitas data yang digunakan atau dengan memperbaiki model yang digunakan. Jika dilihat dari software metrics yang digunakan, secara umum dataset kualitas software bersifat tidak seimbang (imbalanced), karena kebanyakan cacat dari software ditemukan dalam persentase yang kecil dari modul software (Seiffert, Khoshgoftaar, Hulse, & Folleco, 2011, p. 1). Jumlah dari dataset yang rawan cacat (fault-prone) jauh lebih kecil dari pada dataset yang tidak rawan cacat (nonfault-prone). Klasifikasi data dengan pembagian kelas yang tidak seimbang dapat menimbulkan penurunan kinerja yang signifikan yang dicapai oleh algoritma
belajar
(learning
algorithm)
pengklasifikasi
standar,
yang
mengasumsikan distribusi kelas yang relatif seimbang dan biaya kesalahan klasifikasi yang sama (Sun, Mohamed, Wong, & Wang, 2007, p. 3358). Ketepatan parameter tidak dapat digunakan untuk mengevaluasi kinerja dataset yang tidak seimbang (Catal, 2012, p. 195). Membangun model kualitas perangkat lunak tanpa melakukan pengolahan awal terhadap data tidak akan menghasilkan model prediksi cacat software yang efektif, karena jika data yang digunakan tidak 4
seimbang maka hasil prediksi cenderung menghasilkan kelas mayoritas (Khoshgoftaar, Gao, & Seliya, 2010, p. 138). Karena cacat software merupakan kelas minoritas, maka banyak cacat yang tidak dapat ditemukan. Ada tiga pendekatan untuk menangani dataset tidak seimbang (unbalanced), yaitu pendekatan pada level data, level algoritmik, dan menggabungkan atau memasangkan (ensemble) metode (Yap, et al., 2014, p. 14). Pendekatan pada level data mencakup berbagai teknik resampling, memanipulasi data latih untuk memperbaiki kecondongan distribusi kelas, seperti Random Over-Sampling (ROS) dan Random Under-Sampling (RUS), dan SMOTE (Synthetic Minority Over-sampling Technique) (Chawla, Bowyer, Hall, & Kegelmeyer, 2002, p. 328). FSMOTE (Fractal Synthetic Minority Over-sampling Technique) adalah metode resampling yang ditujukan untuk memperbaiki SMOTE dengan mensintesis data latih mengikuti teori interpolasi fraktal, sehingga data yang dihasilkan lebih representatif, dan menghasilkan kinerja lebih baik dari pada SMOTE (Zhang, Liu, Gong, & Jin, 2011, p. 2210). Pada tingkat algoritmik, metode utamanya adalah menyesuaikan operasi algoritma yang ada untuk membuat pengklasifikasi (classifier) agar lebih konduktif terhadap klasifikasi kelas minoritas (Zhang, Liu, Gong, & Jin, 2011, p. 2205). Sedangkan pada pendekatan menggabungkan atau memasangkan (ensemble) metode, ada dua algoritma ensemble-learning paling populer, yaitu boosting dan bagging (Yap, et al., 2014, p. 14). Algoritma boosting telah
dilaporkan
sebagai
meta-teknik
untuk
mengatasi
masalah
ketidakseimbangan kelas (class imbalance) (Sun, Mohamed, Wong, & Wang, 2007, p. 3360). Pada pendekatan algoritma dan ensemble memiliki tujuan yang sama, yaitu memperbaiki algoritma pengklasifikasi tanpa mengubah data, sehingga dapat dianggap ada 2 pendekatan saja, yaitu pendekatan level data dan pendekatan level algoritma (Peng & Yao, 2010, p. 111). Dengan membagi menjadi 2 pendekatan dapat mempermudah fokus objek perbaikan, pendekatan level data difokuskan pada pengolahan awal data, sedangkan pendekatan level algoritma difokuskan pada perbaikan algoritma atau menggabungkan (ensemble). Bagging dan Boosting telah berhasil meningkatkan akurasi pengklasifikasi tertentu untuk dataset buatan dan yang sebenarnya. Bagging adalah metode ensemble yang sederhana namun efektif dan telah diterapkan untuk banyak aplikasi di dunia nyata (Liang & Zhang, Empirical Study of Bagging Predictors on Medical Data, 2011, p. 31). Bagging merupakan metode ensemble yang 5
banyak diterapkan pada algoritma klasifikasi, dengan tujuan untuk meningkatkan akurasi pengklasifikasi dengan menggabungkan pengklasifikasi tunggal, dan hasilnya lebih baik daripada random sampling (Alfaro, Gamez, & Garcia, 2013, p. 1). Secara umum algoritma Boosting lebih baik dari pada Bagging, tetapi tidak merata baik. AdaBoost secara teoritis dapat secara signifikan digunakan untuk mengurangi kesalahan dari beberapa algoritma pembelajaran yang secara konsisten menghasilkan kinerja pengklasifikasi yang lebih baik. AdaBoost diterapkan pada Naϊve Bayes dapat meningkatkan kinerja sebesar 33,33% dan menghasilkan hasil yang akurat dengan mengurangi nilai kesalahan klasifikasi dengan meningkatkan iterasi (Korada, Kumar, & Deekshitulu, 2012, p. 73). Beberapa penelitian tersebut telah menunjukkan bahwa metode ensemble (AdaBoost dan Bagging) dapat memperbaiki kinerja pengklasifikasi. Untuk mencari solusi terbaik terhadap masalah ketidakseimbangan kelas (class imbalance), maka pada penelitian ini akan dilakukan pengukuran kinerja pada pendekatan level data, dan pendekatan level algoritma. Pada pendekatan level data dilakukan resampling, yaitu Random Over-Sampling (ROS), Random Under-Sampling (RUS), dan FSMOTE. Algoritma pengklasifikasi yang digunakan adalah Naϊve Bayes. Sedangkan pada pendekatan level algoritma digunakan ensemble dengan algoritma AdaBoost dan Bagging. Diharapkan didapat pendekatan level data dan algoritma terbaik untuk menyelesaikan permasalahan ketidakseimbangan kelas.
1.2 1.2.1
Permasalahan Penelitian Identifikasi Masalah Berdasarkan uraian pada latar belakang dapat diidentifikasi beberapa
permasalahan (Research Problem disingkat RP), yaitu: RP1 Memperbaiki software yang cacat setelah pengiriman membutuhkan biaya jauh lebih mahal dari pada selama pengembangan, pengujian software menghabiskan sampai 50% jadwal proyek, tetapi belum ada model prediksi cacat software yang berlaku umum. RP2 Naϊve Bayes merupakan model paling efektif dan efisien, tetapi belum dapat mengklasifikasikan dataset berbasis metrik dengan kinerja terbaik secara umum dan selalu konsisten dalam semua penelitian.
6
RP3 Dataset dari software metrics secara umum bersifat tidak seimbang, hal ini dapat menurunkan kinerja model prediksi cacat software karena cenderung menghasilkan prediksi kelas mayoritas.
1.2.2
Ruang Lingkup Masalah Ruang lingkup masalah digunakan untuk membatasi pokok pembahasan
agar lebih terfokus dan dapat mencapai tujuan penelitian. Pada penelitian ini digunakan dataset NASA (National Aeronautics and Space Administration) dari NASA MDP (Metrics Data Program) repository dan PROMISE (Predictor Models in Software Engineering) Repository sebagai software metrics. Aplikasi dikembangkan menggunakan bahasa Java dan menggunakan IDE (Integrated Development Environment) NetBeans. Pengolahan data awal menggunakan teknik resampling, yaitu Random Over-Sampling (ROS), Random Under-Sampling (RUS), dan FSMOTE. Algoritma klasifikasi yang digunakan adalah Naϊve Bayes. Optimasi menggunakan algoritma ensemble AdaBoost dan Bagging.
1.2.3
Rumusan Masalah Berdasarkan uraian sebelumnya, pada penelitian ini akan diterapkan
pendekatan level data dan level algoritma untuk meningkatkan kinerja pengklasifikasi (Naϊve Bayes) dengan menggunakan dataset yang tidak seimbang. Maka pada penelitian ini dibuat rumusan masalah (Research Question disingkat RQ) sebagai berikut: RQ1 Dapatkah kinerja pengklasifikasi (Naϊve Bayes) ditingkatkan untuk memperbaiki model prediksi cacat software? RQ2 Pendekatan level algoritma (ensemble): RQ2.1 Seberapa meningkat kinerja Naϊve Bayes jika diintegrasikan dengan algoritma AdaBoost pada model prediksi cacat software? RQ2.2 Seberapa meningkat kinerja Naϊve Bayes jika diintegrasikan dengan algoritma Bagging pada model prediksi cacat software? RQ2.3 Algoritma ensemble manakah antara AdaBoost dan Bagging yang dapat meningkatkan kinerja Naϊve Bayes menjadi lebih baik pada model prediksi cacat software? RQ3 Pendekatan level data (ROS, RUS, atau FSMOTE):
7
RQ3.1 Seberapa meningkat kinerja Naϊve Bayes jika diintegrasikan dengan ROS (Random Over-Sampling) pada model prediksi cacat software? RQ3.2 Seberapa meningkat kinerja Naϊve Bayes jika diintegrasikan dengan RUS (Random Under-Sampling) pada model prediksi cacat software? RQ3.3 Seberapa meningkat kinerja Naϊve Bayes jika diintegrasikan dengan FSMOTE pada model prediksi cacat software? RQ3.4 Pendekatan level data yang manakah antara ROS, RUS, atau FSMOTE yang menghasilkan kinerja terbaik pada model prediksi cacat software? RQ4 Integrasi pendekatan level data dan level algoritma: RQ4.1 Seberapa meningkat kinerja Naϊve Bayes jika diintegrasikan dengan ROS dan AdaBoost pada model prediksi cacat software? RQ4.2 Seberapa meningkat kinerja Naϊve Bayes jika diintegrasikan dengan RUS dan AdaBoost pada model prediksi cacat software? RQ4.3 Seberapa meningkat kinerja Naϊve Bayes jika diintegrasikan dengan FSMOTE dan AdaBoost pada model prediksi cacat software? RQ4.4 Seberapa meningkat kinerja Naϊve Bayes jika diintegrasikan dengan ROS dan Bagging pada model prediksi cacat software? RQ4.5 Seberapa meningkat kinerja Naϊve Bayes jika diintegrasikan dengan RUS dan Bagging pada model prediksi cacat software? RQ4.6 Seberapa meningkat kinerja Naϊve Bayes jika diintegrasikan dengan FSMOTE dan Bagging pada model prediksi cacat software? RQ4.7 Integrasi pendekatan level data dan level algoritma manakah yang dapat menghasilkan kinerja Naϊve Bayes terbaik pada model prediksi cacat software? RQ5 Pendekatan mana yang lebih baik antara pendekatan level data dan level algoritma (ensemble) pada model prediksi cacat software? RQ6 Dari semua model yang menggunakan pendekatan level data dan level algoritma serta kombinasi keduanya, manakah yang menghasilkan kinerja terbaik? 8
1.3
Tujuan dan Manfaat Penelitian Dalam tujuan dan manfaat penelitian akan dibahas mengenai tujuan yang
ingin dicapai dalam penelitian ini dan manfaat yang dapat diperoleh dengan adanya penelitian ini.
1.3.1
Tujuan Penelitian Tujuan pada penelitian (Research Objective disingkat RO) ini adalah
menerapkan pendekatan level data (ROS, RUS, dan FSMOTE) dan pendekatan level algoritma ensemble (Bagging atau AdaBoost) untuk mengurangi pengaruh ketidakseimbangan kelas dalam dataset, agar kinerja pengklasifikasi (Naϊve Bayes) pada prediksi cacat software dapat meningkat dalam memprediksi kerawanan cacat. Berikut ini adalah penjabaran dari tujuan penelitian: RO1 Meningkatkan
kinerja
pengklasifikasi
(Naϊve
Bayes)
untuk
memperbaiki dan membangun model prediksi cacat software. RO2 Pendekatan level algoritma (ensemble) dibagi ke dalam tiga subrumusan masalah, yaitu: RO2.1 Meningkat kinerja Naϊve Bayes dengan mengintegrasikan dengan algoritma AdaBoost pada model prediksi cacat software. RO2.2 Meningkat kinerja Naϊve Bayes dengan mengintegrasikan dengan algoritma Bagging pada model prediksi cacat software. RO2.3 Mengidentifikasi algoritma ensemble terbaik ketika diintegrasikan dengan Naϊve Bayes pada model prediksi cacat software. RO3 Pendekatan level data (ROS, RUS, atau FSMOTE) dibagi ke dalam empat subrumusan masalah, yaitu: RO3.1 Mengintegrasikan Naϊve Bayes dengan ROS (Random OverSampling) untuk meningkatkan kinerja model prediksi cacat software. RO3.2 Mengintegrasikan Naϊve Bayes dengan RUS (Random UnderSampling) untuk meningkatkan kinerja model prediksi cacat software. RO3.3 Mengintegrasikan
Naϊve
Bayes
dengan
FSMOTE
meningkatkan kinerja model prediksi cacat software.
9
untuk
RO3.4 Mengidentifikasi
pendekatan
level
data
terbaik
ketika
diintegrasikan dengan Naϊve Bayes pada model prediksi cacat software. RO4 Integrasi pendekatan level data dan level algoritma dibagi ke dalam tujuh subrumusan masalah, yaitu: RO4.1 Mengintegrasikan Naϊve Bayes dengan ROS dan AdaBoost untuk meningkatkan kinerja model prediksi cacat software. RO4.2 Mengintegrasikan Naϊve Bayes dengan RUS dan AdaBoost untuk meningkatkan kinerja model prediksi cacat software. RO4.3 Mengintegrasikan Naϊve Bayes dengan FSMOTE dan AdaBoost untuk meningkatkan kinerja model prediksi cacat software. RO4.4 Mengintegrasikan Naϊve Bayes dengan ROS dan Bagging untuk meningkatkan kinerja model prediksi cacat software. RO4.5 Mengintegrasikan Naϊve Bayes dengan RUS dan Bagging untuk meningkatkan kinerja model prediksi cacat software. RO4.6 Mengintegrasikan Naϊve Bayes dengan FSMOTE dan Bagging untuk meningkatkan kinerja model prediksi cacat software. RO4.7 Mengidentifikasi integrasi pendekatan level data dan level algoritma terbaik ketika digunakan pada model prediksi cacat software. RO5 Mengidentifikasi integrasi pendekatan level data atau level algoritma yang dapat menghasilkan kinerja Naϊve Bayes terbaik ketika digunakan pada model prediksi cacat software. RO6 Mengidentifikasi model yang memiliki kinerja terbaik dari model yang menggunakan pendekatan level data dan level algoritma serta kombinasi keduanya.
1.3.2
Manfaat Penelitian Hasil penelitian ini dapat dimanfaatkan untuk mengembangkan perangkat
lunak prediksi cacat software yang dapat digunakan untuk mempermudah pengembang software dalam menghasilkan software berkualitas. Selain itu, penelitian ini diharapkan dapat memberikan sumbangan ilmu yang berhubungan dengan
pengembangan
dan
penerapan
model
ketidakseimbangan kelas pada prediksi cacat software. 10
untuk
menangani
1.4
Hubungan antara Masalah, Rumusan, dan Tujuan Penelitian Pada pembahasan sebelumnya telah dibahas identifikasi masalah, rumusan
masalah, dan tujuan penelitian. Identifikasi masalah ditujukan untuk menentukan masalah yang akan dibahas, disebut juga sebagai masalah penelitian (Research Problem (RP)). Rumusan masalah disebut juga sebagai pertanyaan penelitian (Research
Question
(RQ))
ditujukan
untuk
memberikan
konteks
atau
mengarahkan peneliti untuk menjawabnya. Sedangkan tujuan penelitian (Research Objective (RO)) ditujukan untuk menentukan sasaran yang ingin dicapai pada penelitian. Hubungan ketiganya pada penelitian ini ditunjukkan pada Tabel 1.1, Tabel 1.2, Tabel 1.3, dan Tabel 1.4.
11
Tabel 1.1 Hubungan antara Masalah, Rumusan dan Tujuan Penelitian Masalah Penelitian (Research Problems (RP)) Memperbaiki software yang cacat setelah pengiriman membutuhkan biaya jauh lebih mahal dari pada selama pengembangan, pengujian RP1 software menghabiskan sampai 50% waktu pengembangan, tetapi belum ada model prediksi cacat software yang berlaku umum.
Rumusan Masalah (Research Questions (RQ))
RQ1
Dapatkah kinerja pengklasifikasi (Naϊve Bayes) ditingkatkan untuk memperbaiki model prediksi cacat software?
Tujuan Penelitian (Research Objectives (RO))
RO1
Meningkatkan kinerja pengklasifikasi (Naϊve Bayes) untuk memperbaiki dan membangun model prediksi cacat software.
Seberapa meningkat kinerja Naϊve Bayes jika diintegrasikan dengan RQ2.1 algoritma AdaBoost pada model prediksi cacat software?
Meningkat kinerja Naϊve Bayes dengan mengintegrasikan dengan RO2.1 algoritma AdaBoost pada model prediksi cacat software.
Seberapa meningkat kinerja Naϊve Naϊve Bayes merupakan model paling efektif dan Bayes jika diintegrasikan dengan efisien, tetapi belum dapat mengklasifikasikan RQ2.2 algoritma Bagging pada model RP2 dataset berbasis metrik dengan kinerja terbaik prediksi cacat software? secara umum dan selalu konsisten dalam semua penelitian. Algoritma ensemble manakah antara AdaBoost dan Bagging yang dapat meningkatkan kinerja RQ2.3 Naϊve Bayes menjadi lebih baik pada model prediksi cacat software?
Meningkat kinerja Naϊve Bayes dengan mengintegrasikan dengan RO2.2 algoritma Bagging pada model prediksi cacat software.
12
Mengidentifikasi algoritma ensemble terbaik ketika RO2.3 diintegrasikan dengan Naϊve Bayes pada model prediksi cacat software.
Tabel 1.2 Hubungan antara Masalah, Rumusan dan Tujuan Penelitian (Lanjutan) Masalah Penelitian (Research Problems (RP))
Dataset dari software metrics secara umum bersifat tidak seimbang, hal ini dapat menurunkan RP3 kinerja model prediksi cacat software karena cenderung menghasilkan prediksi kelas mayoritas.
Rumusan Masalah (Research Questions (RQ))
Tujuan Penelitian (Research Objectives (RO))
Seberapa meningkat kinerja Naϊve Bayes jika diintegrasikan dengan ROS (Random OverRQ3.1 Sampling) pada model prediksi cacat software?
Mengintegrasikan Naϊve Bayes dengan ROS RO3.1 (Random Over-Sampling) untuk meningkatkan kinerja model prediksi cacat software.
Seberapa meningkat kinerja Naϊve Bayes jika diintegrasikan dengan RUS (Random UnderRQ3.2 Sampling) pada model prediksi cacat software?
Mengintegrasikan Naϊve Bayes dengan RUS (Random Under-Sampling) untuk RO3.2 meningkatkan kinerja model prediksi cacat software.
Seberapa meningkat kinerja Naϊve Bayes jika RQ3.3 diintegrasikan dengan FSMOTE pada model prediksi cacat software?
Mengintegrasikan Naϊve Bayes dengan RO3.3 FSMOTE untuk meningkatkan kinerja model prediksi cacat software.
Pendekatan level data yang manakah antara Mengidentifikasi pendekatan level data terbaik ROS, RUS, atau FSMOTE yang menghasilkan RQ3.4 RO3.4 ketika diintegrasikan dengan Naϊve Bayes kinerja terbaik pada model prediksi cacat pada model prediksi cacat software. software?
13
Tabel 1.3 Hubungan antara Masalah, Rumusan, dan Tujuan Penelitian (Lanjutan) Masalah Penelitian (Research Problems (RP))
Rumusan Masalah (Research Questions (RQ))
Tujuan Penelitian (Research Objectives (RO))
Seberapa meningkat kinerja Naϊve Bayes jika RQ4.1 diintegrasikan dengan ROS dan AdaBoost pada model prediksi cacat software?
Mengintegrasikan Naϊve Bayes dengan ROS dan RO4.1 AdaBoost untuk meningkatkan kinerja model prediksi cacat software.
Seberapa meningkat kinerja Naϊve Bayes jika RQ4.2 diintegrasikan dengan RUS dan AdaBoost pada model prediksi cacat software?
Mengintegrasikan Naϊve Bayes dengan RUS dan RO4.2 AdaBoost untuk meningkatkan kinerja model prediksi cacat software.
Seberapa meningkat kinerja Naϊve Bayes jika Mengintegrasikan Naϊve Bayes dengan FSMOTE RQ4.3 diintegrasikan dengan FSMOTE dan RO4.3 dan AdaBoost untuk meningkatkan kinerja model AdaBoost pada model prediksi cacat software? prediksi cacat software. Seberapa meningkat kinerja Naϊve Bayes jika RQ4.4 diintegrasikan dengan ROS dan Bagging pada model prediksi cacat software?
Mengintegrasikan Naϊve Bayes dengan ROS dan RO4.4 Bagging untuk meningkatkan kinerja model prediksi cacat software.
Seberapa meningkat kinerja Naϊve Bayes jika RQ4.5 diintegrasikan dengan RUS dan Bagging pada model prediksi cacat software?
Mengintegrasikan Naϊve Bayes dengan RUS dan RO4.5 Bagging untuk meningkatkan kinerja model prediksi cacat software.
Seberapa meningkat kinerja Naϊve Bayes jika RQ4.6 diintegrasikan dengan FSMOTE dan Bagging pada model prediksi cacat software?
Mengintegrasikan Naϊve Bayes dengan FSMOTE RO4.6 dan Bagging untuk meningkatkan kinerja model prediksi cacat software.
14
Tabel 1.4 Hubungan antara Masalah, Rumusan dan Tujuan Penelitian (Lanjutan) Masalah Penelitian (Research Problems (RP))
Rumusan Masalah (Research Questions (RQ))
Tujuan Penelitian (Research Objectives (RO))
Integrasi pendekatan level data dan level algoritma manakah yang dapat Mengidentifikasi integrasi pendekatan level data dan RQ4.7 menghasilkan kinerja Naϊve Bayes RO4.7 level algoritma terbaik ketika digunakan pada model terbaik pada model prediksi cacat prediksi cacat software software? RQ5
Pendekatan mana yang lebih baik antara pendekatan level data dan level algoritma (ensemble) pada model prediksi cacat software?
RQ6
Dari semua model yang menggunakan pendekatan level data dan level algoritma serta kombinasi keduanya, manakah yang menghasilkan kinerja terbaik?
15
RO5
Mengidentifikasi integrasi pendekatan level data atau level algoritma yang dapat menghasilkan kinerja Naϊve Bayes terbaik ketika digunakan pada model prediksi cacat software
RO6
Mengidentifikasi model yang memiliki kinerja terbaik dari model yang menggunakan pendekatan level data dan level algoritma serta kombinasi keduanya.
1.5
Sistematika Penulisan Agar karya ilmiah ini mudah dipelajari dan dipahami, maka dibagi menjadi
lima bab dan setiap bab dibagi menjadi beberapa subbab sesuai topik pembahasan. Sistematika penulisan pada penelitian ini adalah: Bab I
Pendahuluan, membahas mengenai latar belakang penelitian, permasalahan penelitian, tujuan dan manfaat penelitian, dan sistematika penelitian.
Bab II
Landasan Teori, berisi tentang tinjauan studi, yaitu membahas tentang penelitian sebelumnya yang mendasari penelitian ini. Dan tinjauan pustaka, yaitu membahas tentang landasan secara teoritis yang diambil dari textbook. Serta kerangka pemikiran yang digunakan dalam penelitian ini.
Bab III Metodologi Penelitian, berisi tentang perencanaan penelitian yang terdiri dari analisa kebutuhan, metode pengumpulan data, model yang diusulkan, dan teknik analisis yang dilakukan dalam penelitian prediksi cacat software. Bab IV Hasil dan Pembahasan, berisi hasil penerapan model prediksi cacat software pada dataset NASA dari NASA MDP repository dan PROMISE repository, dan pengujiannya. Pengujian dilakukan menggunakan uji statistik terhadap pengukuran kinerja model prediksi cacat software yang diusulkan. Bab V Kesimpulan dan Saran, berisi kesimpulan dari model yang diusulkan berdasarkan hasil pengujian, dan saran yang ditujukan untuk pengembangan model prediksi cacat software lebih lanjut.
16
BAB II LANDASAN TEORI
2.1
Tinjauan Studi Penelitian tentang prediksi cacat software telah lama dilakukan, dan sudah
banyak hasil penelitian yang dipublikasikan. Sebelum memulai penelitian, perlu dilakukan kajian terhadap penelitian sebelumnya, agar dapat mengetahui metode, data, maupun model yang sudah pernah digunakan. Tinjauan studi ini akan digunakan sebagai landasan penelitian agar dapat mengetahui state of the art tentang
penelitian
prediksi
cacat
software
yang
membahas
tentang
ketidakseimbangan (imbalanced) kelas.
2.1.1
Model Penelitian Pelayo dan Dick (2007) Pada penelitian yang dilakukan oleh Pelayo dan Dick (Pelayo & Dick, 2007,
pp. 69-72) menyatakan bahwa untuk meningkatkan kehandalan software merupakan tugas yang sulit, karena kompleksitas dan kecanggihan software yang luar biasa. Sejumlah peneliti telah menerapkan machine learning untuk memprediksi cacat software, yaitu dengan memprediksi modul yang akan mengalami kegagalan selama operasi. Namun, kecondongan (skewness) dalam dataset prediksi cacat biasanya merusak algoritma pembelajaran. Pengklasifikasi sering tidak menghasilkan prediksi kelas minoritas. Masalah ini telah dikenal dalam machine learning dan sering disebut belajar dari ketidakseimbangan (imbalanced) dataset. Penelitian ini difokuskan pada teknik SMOTE, yaitu metode untuk melakukan over-sampling kelas minoritas. Tujuannya untuk mengetahui apakah teknik SMOTE dapat meningkatkan pengenalan terhadap modul yang cacat. Hasil dari eksperimen menunjukkan bahwa setelah dilakukan teknik SMOTE didapat dataset yang lebih seimbang, dan akurasi pengklasifikasi G-Mean rata-rata meningkat sebesar 23% dari empat dataset yang digunakan. Model penelitian Pelayo dan Dick (2007) ditunjukkan pada Gambar 2.1.
17
Gambar 2.1 Model yang Diusulkan Pelayo dan Dick (2007)
2.1.2
Model Penelitian Riquelme, Ruiz, Rodriguez, dan Moreno (2008) Penelitian yang dilakukan oleh Riquelme, Ruiz, Rodriguez, dan Moreno
(Riquelme, Ruiz, Rodriguez, & Moreno, 2008, pp. 67-74) menyatakan bahwa kebanyakan dataset untuk rekayasa perangkat lunak sangat tidak seimbang (unbalanced), yaitu jumlah data dari kelas yang satu jauh melebihi data dari kelas yang lain. Dengan kondisi ini, algoritma data mining tidak dapat menghasilkan model pengklasifikasi yang optimal untuk memprediksi modul yang cacat. Maka pada penelitian ini dilakukan analisa terhadap dua teknik penyeimbangan (balancing) (yaitu: WEKA randomly resampling dan SMOTE) dengan dua algoritma pengklasifikasi umum (J48 dan Naϊve Bayes), dan menggunakan lima dataset dari PROMISE repository untuk mencari modul yang cacat. Teknik penyeimbangan (balancing) dapat diklasifikasikan menjadi dua kelompok, yaitu over-sampling dan under-sampling. Teknik yang sederhana dilakukan dengan resampling secara acak (random). Beberapa teknik under-sampling yang lebih baik yaitu One-Sided Selection (OSS), Neighbourhood Cleaning Rule (NCL), dan Edited Nearest Neighbour Rule (ENN). Sedangkan teknik over-sampling yang lebih baik adalah Synthetic Minority Oversampling Technique (SMOTE). Hasil
18
dari penelitian ini menunjukkan bahwa teknik penyeimbangan (balancing) mungkin tidak meningkatkan persentase kasus yang diklasifikasikan dengan benar, tetapi dapat meningkatkan nilai AUC, khususnya menggunakan SMOTE. Hal ini menunjukkan bahwa teknik penyeimbangan (balancing) dapat mengklasifikasikan kelas minoritas dengan lebih baik. Model penelitian Riquelme, Ruiz, Rodriguez, dan Moreno (2008) ditunjukkan pada Gambar 2.2.
Gambar 2.2 Model yang Diusulkan Riquelme, Ruiz, Rodriguez, dan Moreno (2008)
2.1.3
Model Penelitian Khoshgoftaar, Gao dan Seliya (2010) Penelitian
yang
dilakukan
oleh
Khoshgoftaar,
Gao
dan
Seliya
(Khoshgoftaar, Gao, & Seliya, 2010, pp. 137-144) menyatakan bahwa komunitas data mining dan machine learning sering dihadapkan pada dua masalah utama, yaitu bekerja dengan data tidak seimbang dan memilih fitur terbaik dari machine learning. Penelitian ini menyajikan proses yang melibatkan teknik seleksi fitur untuk memilih atribut penting dan teknik pengambilan data untuk mengatasi ketidakseimbangan kelas. Domain aplikasi dari penelitian ini adalah rekayasa perangkat lunak, lebih khusus, prediksi kualitas perangkat lunak menggunakan
19
model klasifikasi. Bila menggunakan fitur seleksi dan resampling data bersamasama, skenario yang berbeda harus dipertimbangkan. Keempat skenario yang mungkin adalah: a. Seleksi fitur berdasarkan data asli, dan pemodelan (prediksi cacat) berdasarkan data asli b. Seleksi fitur berdasarkan data asli, dan pemodelan berdasarkan data sampel c. Seleksi fitur berbasis pada data sampel, dan pemodelan berdasarkan data asli d. Seleksi fitur berdasarkan data sampel, dan pemodelan berdasarkan data sampel.
Tujuan penelitian ini adalah untuk membandingkan kinerja model prediksi cacat software berdasarkan empat skenario. Pada penelitian ini menggunakan sembilan dataset pengukuran perangkat lunak yang diperoleh dari repositori proyek software PROMISE (Java-based Eclipse project). Seleksi fitur menggunakan teknik peringkat fitur (feature ranking techniques), Chi-Square (CS), Information Gain (IG), Gain Ratio (GR), dua tipe ReliefF (RF and RFW), dan Symmetrical Uncertainty (SU). Metode resampling yang digunakan adalah Random Under-Sampling (RUS). Sedangkan metode pengklasifikasi yang digunakan adalah k-Nearest Neighbors (kNN) dan Support Vector Machine (SVM). Hasil empiris menunjukkan bahwa seleksi fitur berdasarkan data sampel menghasilkan lebih baik secara signifikan daripada seleksi fitur berdasarkan data asli, dan bahwa model prediksi cacat melakukan hal yang sama terlepas dari apakah data pelatihan dibentuk menggunakan data sampel atau asli. Model penelitian Khoshgoftaar, Gao dan Seliya (2010) ditunjukkan pada Gambar 2.3.
20
Gambar 2.3 Model yang Diusulkan Khoshgoftaar, Gao dan Seliya (2010)
2.1.4
Model Penelitian Wahono, Suryana, dan Ahmad (2014) Penelitian yang dilakukan oleh Wahono, Suryana, dan Ahmad (Wahono,
Suryana, & Ahmad, 2014, pp. 1324-1333) menyatakan bahwa prediksi cacat software telah menjadi topik penelitian yang penting dalam bidang rekayasa perangkat lunak, terutama untuk memecahkan masalah ketidakefisienan dan ketidakefektifan pada pendekatan industri dalam menguji dan mengulas perangkat lunak. Kinerja model prediksi cacat software berkurang secara signifikan karena dataset yang digunakan mengandung noise (kegaduhan) dan ketidakseimbangan kelas. Seleksi fitur (feature selection) secara umum digunakan dalam machine learning ketika tugas belajar melibatkan dataset berdimensi tinggi dan atributnya mengandung noise. Sebagian besar algoritma seleksi fitur, menggunakan pencarian lokal secara menyeluruh pada keseluruhan proses, akibatnya solusi optimal sangat sulit untuk dicapai. Optimasi metaheuristik dapat menemukan solusi dalam ruang pencarian penuh dan menggunakan kemampuan pencarian global, secara signifikan dapat meningkatkan kemampuan mencari solusi berkualitas tinggi dalam jangka waktu yang wajar. Pada penelitian ini, diusulkan kombinasi
metode
optimasi
metaheuristik
21
dan
teknik
Bagging
untuk
meningkatkan kinerja prediksi cacat software. Metode optimasi metaheuristik (algoritma genetik dan particle swarm optimization) diterapkan untuk menangani pemilihan fitur, dan teknik Bagging digunakan untuk menangani masalah ketidakseimbangan kelas. Penelitian ini menggunakan 9 NASA MDP dataset dan 10 algoritma pengklasifikasi yang dikelompokkan dalam 5 tipe, yaitu pengklasifikasi
statistik
tradisional
(Logistic
Regression
(LR),
Linear
Discriminant Analysis (LDA), dan Naïve Bayes (NB)), Nearest Neighbors (kNearest Neighbor (k-NN) dan K*), Neural Network (Back Propagation (BP)), Support Vector Machine (SVM), dan Decision Tree (C4.5, Classification and Regression Tree (CART), dan Random Forest (RF)). Hasilnya menunjukkan bahwa metode yang diusulkan dapat memberikan peningkatan yang mengesankan pada kinerja model prediksi untuk sebagian besar pengklasifikasi. Berdasarkan hasil perbandingan, disimpulkan bahwa tidak ada perbedaan yang signifikan antara optimasi PSO dan algoritma genetik ketika digunakan sebagai seleksi fitur untuk sebagian besar pengklasifikasi pada model prediksi cacat software. Model penelitian Wahono, Suryana, dan Ahmad (2014) ditunjukkan pada Gambar 2.4.
Gambar 2.4 Model yang Diusulkan Wahono, Suryana, dan Ahmad (2014)
22
2.1.5
Rangkuman Penelitian Terkait Berdasarkan penelitian yang pernah dilakukan terkait prediksi cacat
software yang membahas tentang ketidakseimbangan (imbalanced) kelas, para peneliti telah menggunakan berbagai metode. State-of-the-art penelitian untuk menangani ketidakseimbangan (imbalanced) kelas pada prediksi cacat software secara umum dibagi menjadi dua pendekatan, yaitu pendekatan level data dan pendekatan level algoritma. Pendekatan level data ditujukan untuk memperbaiki kualitas data dengan cara menyeimbangkan kelas menggunakan teknik resampling seperti undersampling dan oversampling, mensintesis data dengan SMOTE,
atau memilih fitur yang tepat dengan teknik seleksi fitur (feature
selection). Sedangkan pendekatan level algoritma ditujukan untuk memperbaiki algoritma pembelajar (learning algorithm) untuk meningkatkan kemampuan memprediksi kelas minoritas, misalnya dengan Bagging. Beberapa penelitian prediksi cacat software yang membahas tentang ketidakseimbangan (imbalanced) kelas dengan pendekatan level data dirangkum dalam Tabel 2.1, dan pendekatan level data dan level algoritma dirangkum pada Tabel 2.2. Berdasarkan kedua tabel tersebut, menunjukkan bahwa penggabungan pendekatan level data dan level algoritma menghasilkan peningkatan kinerja lebih tinggi.
23
Tabel 2.1 Rangkuman Penelitian Terkait dengan Pendekatan Level Data Peneliti
Dataset
Lourdes Pelayo dan Scott Dick (2007)
NASA dataset
José Cristóbal Riquelme, Roberto Ruiz, Daniel Rodriguez, dan Javier Moreno (2008)
PROMISE repository
Taghi M. Khoshgoftaar, Kehan Gao, dan Naeem Seliya (2010)
PROMISE repository (Java-based Eclipse project)
Jumlah Dataset 4 dataset (CM1, KC1, KC2, dan PC1) 5 dataset (CM1, JM1, KC1, KC2, dan PC1)
9 dataset (3 dataset release 2.0, 3 dataset release 2.1, dan 3 dataset release 3.0)
Masalah Ketidakseimbangan dataset (imblanced dataset) mengakibatkan pengklasifikasi sering tidak dapat memprediksi kelas minoritas. Ketidakseimbangan dataset (unbalanced dataset) mengakibatkan algoritma data mining tidak dapat menghasilkan model pengklasifikasi yang optimal untuk memprediksi modul yang cacat. Membangun model kualitas software tanpa pemrosesan awal data tidak akan menghasilkan prediksi cacat yang efektif. Ketidakseimbangan kelas antara yang cacat dengan yang tidak cacat mengakibatkan model prediksi cenderung menghasilkan prediksi sebagai kelas mayoritas.
24
Metode Data SMOTE (Undersampling and over-sampling) WEKA randomly resampling, dan sintesis (SMOTE)
Algoritma Klasifikasi (C4.5)
Seleksi fitur menggunakan teknik peringkat fitur (CS, IG, GR, RF, RFW, dan SU), resampling (RUS)
Klasifikasi (k-Nearest Neighbors (kNN) dan Support Vector Machine (SVM))
Klasifikasi (J48 dan Naϊve Bayes)
Evaluasi G-Mean rata-rata meningkat 23% AUC ratarata meningkat 11,6%
AUC ratarata meningkat 1,44% untuk KNN dan 1,04% untuk SVM
Tabel 2.2 Rangkuman Penelitian Terkait dengan Pendekatan Level Data dan Level Algoritma Peneliti
Jumlah Dataset
Dataset
Masalah
Data
Metode Algoritma
Romi Satria Wahono, Nanna Suryana, dan Sabrina Ahmad (2014)
NASA MDP dataset
9 dataset (CM1, KC1, KC3, MC2, MW1, PC1, PC2, PC3, dan PC4)
Dataset yang mengandung atribut bersifat noise dan ketidakseimbang kelas (imbalanced class) mengakibatkan penurunan kinerja model prediksi secara signifikan.
Seleksi fitur (algoritma genetik dan PSO)
Aries Saifudin (2014)
NASA dataset dari NASA MDP dan PROMISE repository
2 x 10 dataset (CM1, JM1, KC1, KC3, MC2, PC1, PC2, PC3, PC4, dan PC5)
Ketidakseimbangan kelas (imbalanced class), dapat menurunkan kinerja pengklasifikasi, dan pengklasifikasi cenderung menghasilkan kelas mayoritas.
Resampling (ROS, RUS), dan sintesis (FSMOTE)
Klasifikasi (LR, LDA, NB, kNN, K*, BP, SVM, C4.5, CART, dan RF), ensemble (Bagging) Klasifikasi (Naϊve Bayes), ensemble (AdaBoost, dan Bagging)
Evaluasi AUC ratarata meningkat 25,99% untuk GA dan 20,41% untuk PSO
Pada penelitian ini akan menerapkan pendekatan level data dan level algoritma untuk mengurangi pengaruh ketidakseimbangan kelas dan meningkatkan kemampuan memprediksi kelas minoritas. Pendekatan level data yang akan digunakan adalah ROS (Random Over-Sampling), RUS (Random Under-Sampling), FSMOTE. Pendekatan level algoritma menggunakan teknik ensemble, yaitu AdaBoost dan Bagging. Pembahasan pendekatan level data, level algoritma, dan metode-metodenya akan dijelaskan pada subbab berikutnya. Sedangkan metode/model yang diusulkan akan dibahas pada bab III. 25
2.2 2.2.1
Tinjauan Pustaka Prediksi Cacat Software Istilah cacat, kesalahan dan bug biasa digunakan secara bergantian. Istilah-
istilah ini mengacu pada manifestasi dari kesalahan dalam kode sumber (source code), di mana kesalahan adalah suatu tindakan yang keliru yang dibuat oleh pengembang. Cacat software adalah kekurangan/cacat pada sebuah software karena melakukan proses yang tak terduga (McDonald, Musson, & Smith, 2008, p. 4). Cacat software dapat menjadi penyebab kegagalan software, yang terjadi ketika pengguna mengalami perilaku sistem yang tidak diinginkan pada titik waktu tertentu. Bagi user, cacat software adalah segala kekurangan yang menyebabkan software tidak dapat memenuhi apa yang diharapkan. Misalnya user ingin software yang digunakan dapat memberikan hasil penghitungan yang tepat, tetapi software memberikan hasil yang salah. Secara umum, kesalahan sintaks tidak dianggap sebagai cacat, karena mereka dapat ditemukan dengan jauh lebih efisien menggunakan parser dan/atau pengujian jalur dasar. Tabel 2.3 di bawah ini menampilkan beberapa contoh umum cacat pada software.
Tabel 2.3 Contoh Umum Cacat Software Harapan
Cacat
Software dapat membantu menyelesaikan pekerjaan
Fungsionalitas sofware tidak ada
Mengklik tombol untuk mengerjakan suatu proses
Mengklik tombol, tetapi tidak ada atau tidak sesuai dengan proses yang diinginkan
File dapat di-copy ke lokasi lain
Terjadi kerusakan file selama proses peng-copy-an
Sedangkan Tabel 2.4 berisi beberapa contoh nyata cacat software.
26
Tabel 2.4 Contoh Nyata Cacat Software Harapan
Cacat
Software membantu menghilangkan kesalahan (contohnya kesalahan pengejaan)
Tidak dapat mendeteksi kesalahan ejaan
Software dapat merespons dengan cepat
Respons software sangat lambat dari yang perkiraan
Software aman dari serangan hacker
Hacker dapat mengekploitasi celah dan melakukan serangan terhadap software
Cacat software dapat terjadi karena beberapa hal (McDonald, Musson, & Smith, 2008, p. 7): 1) akibat kesalahan manusia, tidak ada orang yang sempurna, jadi ada kemungkinan programmer melakukan kesalahan dalam pengetikan yang tidak disadari. 2) Kesalahan sistemik selama pengembangan, adanya kesalahan suatu proses yang keluarannya digunakan untuk proses yang lain. 3) Akibat kesalahan penggunaan peralatan pengembangan. 4) Salah pengertian terhadap kebutuhan customer. Tidak semua kesalahan menyebabkan cacat software, tetapi setiap cacat software dapat diselidiki kesalahan yang menyebabkannya. Kualitas perangkat lunak dan tingkat cacat dapat diatasi dengan tiga tingkat (McDonald, Musson, & Smith, 2008, p. 9), yaitu: 1) Deteksi, yaitu melakukan pengujian terhadap software sampai menemukan cacat yang mungkin terjadi dan memperbaikinya. 2) Analisa, dengan cara menganalisa cacat sebelumnya untuk mengetahui kecenderungan dan memahami kenapa bisa terjadi dan tidak terdeteksi. 3) Pencegahan, dilakukan secara proaktif mencari dan menghilangkan potensi cacat software. Model pencegahan cacat software dapat dilihat pada Gambar 2.5.
27
Gambar 2.5 Model Pencegahan Cacat Software
Pada Gambar 2.5, tahap pertama dilakukan pendeteksian cacat dengan cara melakukan pengujian secara sederhana yang berfokus pada setiap proses. Tahap kedua adalah prediksi, prediksi dilakukan dengan cara menganalisa terhadap datadata cacat software pada pengembangan sebelumnya. Pada proses prediksi, pertama dilakukan pengumpulan data berdasarkan pengukuran dan metrik yang tepat, selanjutnya membuat laporan yang disediakan bagi yang membutuhkan, kemudian dibuat pemodelan untuk memprediksi cacat pada pengembangan selanjutnya. Tahap ketiga adalah pencegahan cacat, dilakukan dengan mengimplementasikan teknik pencegahan berdasarkan hasil pada tahap prediksi. Salah satu metode yang efektif untuk mengidentifikasi rawan kegagalan modul pada software adalah dengan menggunakan teknik data mining yang diterapkan
dalam
software
metrics
yang
dikumpulkan
selama
proses
pengembangan software (Khoshgoftaar, Gao, & Seliya, 2010, p. 137).
2.2.1.1 Software Metrics Metrik perangkat lunak (software metrics) adalah istilah yang mencakup banyak kegiatan, yang semuanya melibatkan beberapa tingkat pengukuran perangkat lunak, seperti estimasi biaya dan usaha, produktivitas, ukuran dan model, pengumpulan data, model kualitas dan ukuran, model keandalan, evaluasi kinerja dan model, metrik struktur dan kompleksitas, penilaian kematangan kemampuan, manajemen berdasarkan metrik, evaluasi metode dan alat.
28
Metrik adalah nilai-nilai numerik yang menyatakan ukuran proses dan produk, yang digunakan untuk menetapkan, mengukur, mengelola, memantau, dan meningkatkan efektifitas proses dan produk (Strangio, 2009, p. 389). Software metrics (metrik perangkat lunak) dapat didefinisikan sebagai penerapan terusmenerus dari teknik pengukuran terhadap proses pengembangan software, dan hasilnya digunakan untuk memberikan informasi pengelolaan yang penuh dengan arti dan tepat pada waktunya, bersamaan dengan penggunaan teknik tersebut untuk meningkatkan proses dan produk yang dihasilkan (Goodman, 2004, p. 4). Software metrics adalah pengukuran langsung maupun tidak langsung, baik pengukuran terhadap artefak perangkat lunak atau proses pengembangan perangkat lunak. Dua jenis utama software metrics adalah metrik produk dan metrik proses. Metrik produk, seperti metrik kode statis, didasarkan pada artefak perangkat lunak. Metrik proses, seperti pengukuran kesalahan, didasarkan pada proses pengembangan perangkat lunak. Tujuan utama dari penggunaan metrik pemeriksaan adalah untuk memperbaiki deteksi cacat, dan mengurangi biaya pengerjaan ulang. Identifikasi cacat pada tahap penyebaran (deployment) atau bahkan pada akhir pengembangan membutuhkan biaya yang sangat mahal. Biaya untuk memperbaiki cacat akibat salah persyaratan (requirement) setelah fase pengembangan (deployment) dapat mencapai 100 kali, biaya untuk memperbaiki cacat pada tahap desain setelah pengiriman produk mencapai 60 kali, sedangkan biaya untuk memperbaiki cacat pada tahap desain yang ditemukan oleh pelanggan adalah 20 kali (Strangio, 2009, p. 389). Gambaran biaya tersebut menunjukkan pentingnya pemeriksaan dan pengawasan kualitas software pada saat pengembangan.
2.2.1.2 Metrik Kode Statis Metrik kode statis (static code metrics) adalah pengukuran langsung kode sumber (source code) yang dapat digunakan dalam upaya untuk mengukur berbagai properti software. Metrik kode statis adalah pengukur sifat perangkat lunak yang berpotensi berhubungan dengan cacat, dan kualitasnya (Gray, Bowes, Davey, Sun, & Christianson, 2010, p. 2). Pengukuran dalam rekayasa perangkat lunak merupakan faktor penting, karena tidak mungkin dapat mengontrol apa yang tidak dapat diukur (DeMarco, 2009, p. 96), dan berdasarkan banyak
29
penelitian metrik software tepat dan sering digunakan sebagai ukuran kualitas software.
Gambar 2.6 Contoh Kode Sumber Program Java
Mungkin metrik kode statik yang paling dikenal adalah metrik yang didasarkan pada jumlah baris kode (LOC: Line of Code), dan memberikan indikasi ukuran perangkat lunak. Memperhatikan kode sumber program Java yang ditunjukkan pada Gambar 2.6 diperlihatkan sebuah kelas Metrik dengan fungsi tunggal yang disebut main. Fungsi ini terdiri dari 14 baris, 3 baris kosong, 3 baris hanya berisi sebuah kurung, dan 1 baris hanya berisi komentar/keterangan. Untuk alasan ini, maka ada beberapa jenis LOC, di antaranya LOC total, LOC executable, LOC comments, LOC blank dan LOC non-blank. Sayangnya, rincian secara tepat tentang apa yang telah diukur sering diabaikan, sehingga menyebabkan ketidakjelasan (ambigutas) ketika nilai LOC-count diberikan. Masalah dengan LOC-count tradisional juga mencakup tentang kepekaan terhadap gaya pengkodean. Melihat pada Gambar 2.6, satu atau lebih dari tanda kurung yang digunakan dalam pernyataan if dapat diletakkan pada baris tersendiri, sehingga berpotensi mempengaruhi pengukuran berbasis LOC-count. Namun perbedaan tersebut mungkin tidak penting pada prakteknya selama gaya pengkodeannya konsisten. Pada prakteknya sering mengarah ke indentasi kode dari alat-alat (tools) yang sebelumnya digunakan untuk mengumpulkan metrik. Meskipun ada masalah dengan LOC-count, metrik kode statik merupakan yang 30
paling sering digunakan, dan jika diukur secara konsisten dapat memberikan beberapa wawasan ke dalam ukuran software. Sedangkan pengukuran berbasis LOC-count bertujuan untuk memberikan wawasan tentang ukuran software, ukuran metrik lain diusulkan oleh Maurice Halstead pada tahun 1977, bertujuan untuk memberikan wawasan tentang kompleksitas kode dan usaha pengembangan. Metrik Halstead didasarkan pada empat ukuran dasar berikut ini: a. Jumlah operator yang unik: n1 b. Jumlah operan yang unik: n2 c. Total jumlah operator: N1 d. Total jumlah operan: N2
Menggunakan basis pengukuran di atas, dapat diperoleh persamaan sebagai berikut: a. Halstead Length: N = N1 + N2 b. Halstead Vocabulary: n = n1 + n2 c. Halstead Volume: V = N * log 2(n) d. Halstead Difficulty: D = (n1 / 2) * (N2 / n2) e. Halstead Level: L = 1 / D f. Halstead Effort: E = D *V g. Halstead Content: C = L * V h. Halstead Error Estimate (number of validation bugs): B = V / 3000 i. Halstead Programming Time (seconds): T = E / 18
Panjang metrik adalah jumlah dari semua operator dan operan, dan merupakan alternatif pengukuran ukuran untuk mereka yang berbasis hitungan LOC (Lines Of Code). Volume metrik menggambarkan kandungan informasi dalam bit, dan ukuran terkait lain. Metrik/tingkat kesulitan telah diklaim untuk mengukur betapa sulitnya kode itu ditulis, dan dan menggambarkan seberapa rawan kesalahan itu mungkin terjadi. Kebalikan dari tingkat metrik ini adalah tingkat yang lebih rendah menunjukkan sedikit rawan terjadi kesalahan penulisan kode.
31
2.2.1.3 Dataset Dataset NASA yang telah tersedia untuk umum merupakan data metrik perangkat lunak yang sangat populer dalam pengembangan model prediksi cacat software, karena 62 penelitian dari 208 penelitian telah menggunakan dataset NASA (Hall, Beecham, Bowes, Gray, & Counsell, 2011, p. 18). Dataset NASA yang tersedia untuk umum telah banyak digunakan sebagai bagian dari penelitian cacat software (Shepperd, Song, Sun, & Mair, 2013, p. 1208). Dataset NASA yang tersedia untuk umum mencakup 21 tingkat metode metrik yang diusulkan oleh Halstead dan McCabe (Catal & Diri, 2009, p. 1041). Dataset NASA tersedia dari dua sumber, yaitu NASA MDP (Metrics Data Program) repository dan PROMISE (Predictor Models in Software Engineering) Repository (Gray, Bowes, Davey, Sun, & Christianson, 2011, p. 98). NASA Metrics Data Program (MDP) Repository saat ini terdiri dari 13 dataset secara eksplisit ditujukan untuk penelitian metrik perangkat lunak (Gray, Bowes, Davey, Sun, & Christianson, 2011, p. 97). Setiap kumpulan data merupakan sistem/subsistem software NASA dan berisi metrik kode statis, dan data kesalahan dari setiap modul. Metrik kode statis yang dicatat meliputi: a. Ukuran LOC-count, seperti jumlah baris kode dan komentar. b. Ukuran Halstead, seperti hitungan operan dan operator yang unik. c. Ukuran McCabe, seperti kompleksitas cyclomatic.
Dataset NASA yang asli masih mengandung noise (kegaduhan), yaitu data yang tidak masuk akal atau tidak konsisten. Noise (kegaduhan) dapat disebut sebagai data yang salah (Liebchen & Shepperd, 2008, p. 39). Oleh karena itu perlu dilakukan pemrosesan awal untuk membersihkan data dari noise (kegaduhan). Pembersihan data adalah prosedur yang memakan waktu dan padat karya, tapi satu yang mutlak diperlukan untuk keberhasilan data mining (Witten, Frank, & Hall, 2011, p. 60). Strategi pemrosesan awal, yang pertama pada data yang bermasalah (misalnya: kasus dengan nilai fitur yang bertentangan atau nilai yang tidak masuk akal) dihapus, dan kemudian untuk data yang tidak bermasalah tapi tidak membantu meningkatkan prediksi cacat (misalnya: fitur dengan nilai konstan dan identik atau tidak konsisten) juga dihapus. Hasilnya dataset DS ditransformasikan ke DS' dan DS'' secara berturut-turut (Shepperd, Song, Sun, & Mair, 2013, p. 32
1209). Dataset NASA yang asli dan yang sudah dibersihkan tersedia secara umum di website wikispaces (http://nasa-softwaredefectdatasets.wikispaces.com/). Deskripsi dataset NASA ditunjukkan pada Tabel 2.5. Spesifikasi dataset NASA MDP Repository yang asli ditunjukkan pada Tabel 2.6, spesifikasi dataset NASA MDP Repository setelah transformasi ditunjukkan pada Tabel 2.7 untuk DS' dan Tabel 2.8 untuk DS''. Sedangkan spesifikasi dataset PROMISE Repository yang asli ditunjukkan pada Tabel 2.9, spesifikasi dataset PROMISE Repository setelah transformasi ditunjukkan pada Tabel 2.10 untuk DS' dan Tabel 2.11 untuk DS''. Setiap dataset yang terdiri dari sejumlah modul software (kasus), masing-masing berisi jumlah yang sesuai dengan cacat dan berbagai atribut kode statis perangkat lunak. Setelah pemrosesan awal, modul yang berisi satu atau lebih cacat diberi label sebagai cacat.
Tabel 2.5 Dekripsi Dataset NASA Dataset CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5
Sistem
Bahasa
Total LOC
Instrumen pesawat ruang angkasa Sistem prediksi pendaratan realtime Manajemen penyimpanan data lapangan Manajemen penyimpanan data lapangan Sistem panduan video Perangkat lunak penerbangan satelit yang mengorbit bumi Simulator dinamis untuk sistem kontrol perilaku Perangkat lunak penerbangan satelit yang mengorbit bumi Perangkat lunak penerbangan satelit yang mengorbit bumi Peningkatan keamanan sistem upgrade kokpit
C C C++ Java C, C++ C
20K 315K 18K 18K 6K 40K
C
26K
C
40K
C
36K
C++
164K
33
Tabel 2.6 Spesifikasi Dataset NASA MDP Repository Asli (DS) Dataset CM1 JM1 KC1 KC3 MC1 MC2 MW1 PC1 PC2 PC3 PC4 PC5
Atribut 41 22 22 41 40 41 41 41 41 41 41 40
Modul 505 10878 2107 458 9466 161 403 1107 5589 1563 1458 17186
Cacat 48 2102 325 43 68 52 31 76 23 160 178 516
Cacat (%) 9,50% 19,32% 15,42% 9,39% 0,72% 32,30% 7,69% 6,87% 0,41% 10,24% 12,21% 3,00%
Tabel 2.7 Spesifikasi Dataset NASA MDP Repository Transformasi Pertama (DS') Dataset CM1 JM1 KC1 KC3 MC1 MC2 MW1 PC1 PC2 PC3 PC4 PC5
Atribut 38 22 22 40 39 40 38 38 37 38 38 39
Modul 344 9591 2095 200 8737 125 263 735 1493 1099 1379 16962
34
Cacat 42 1759 325 36 68 44 27 61 16 138 178 502
Cacat (%) 12,21% 18,34% 15,51% 18,00% 0,78% 35,20% 10,27% 8,30% 1,07% 12,56% 12,91% 2,96%
Tabel 2.8 Spesifikasi Dataset NASA MDP Repository Transformasi Kedua (DS'') Dataset CM1 JM1 KC1 KC3 MC1 MC2 MW1 PC1 PC2 PC3 PC4 PC5
Atribut 38 22 22 40 39 40 38 38 37 38 38 39
Modul 327 7720 1162 194 1952 124 250 679 722 1053 1270 1694
Cacat 42 1612 294 36 36 44 25 55 16 130 176 458
Cacat (%) 12,84% 20,88% 25,30% 18,56% 1,84% 35,48% 10,00% 8,10% 2,22% 12,35% 13,86% 27,04%
Tabel 2.9 Spesifikasi Dataset PROMISE Repository Asli (DS) Dataset CM1 JM1 KC1 KC3 MC1 MC2 MW1 PC1 PC2 PC3 PC4 PC5
Atribut 22 22 22 40 39 40 38 22 37 38 38 39
Modul 498 10885 2109 458 9466 161 403 1109 5589 1563 1458 17186
35
Cacat 49 2106 326 43 68 52 31 77 23 160 178 516
Cacat (%) 9,84% 19,35% 15,46% 9,39% 0,72% 32,30% 7,69% 6,94% 0,41% 10,24% 12,21% 3,00%
Tabel 2.10 Spesifikasi Dataset PROMISE Repository Transformasi Pertama (DS') Dataset CM1 JM1 KC1 KC3 MC1 MC2 MW1 PC1 PC2 PC3 PC4 PC5
Atribut 21 22 22 40 39 40 38 22 37 38 38 39
Modul 495 9591 2095 458 8737 159 402 1083 5356 1535 1379 16962
Cacat 48 1759 325 43 68 52 31 72 23 158 178 502
Cacat (%) 9,70% 18,34% 15,51% 9,39% 0,78% 32,70% 7,71% 6,65% 0,43% 10,29% 12,91% 2,96%
Tabel 2.11 Spesifikasi Dataset PROMISE Repository Transformasi Kedua (DS'') Dataset CM1 JM1 KC1 KC3 MC1 MC2 MW1 PC1 PC2 PC3 PC4 PC5
2.2.2
Atribut 21 22 22 40 39 40 38 38 37 38 38 39
Modul 437 7720 1162 324 1952 155 375 1409 1362 1409 1270 1694
Cacat 46 1612 294 42 36 51 28 148 21 148 176 458
Cacat (%) 10,53% 20,88% 25,30% 12,96% 1,84% 32,90% 7,47% 10,50% 1,54% 10,50% 13,86% 27,04%
Naϊve Bayes Naϊve Bayes adalah salah satu algoritma klasifikasi yang paling efektif dan
efisien (Zhang, Jiang, & Su, 2005, p. 1020). Naϊve Bayes memiliki keuntungan yang signifikan karena sebagian besar alternatifnya sangat sederhana (Korb & Nicholson, 2011, p. 206). Naϊve Bayes merupakan salah satu metode machine learning yang menggunakan metode probabilitas. Probabilitas keanggotaan dapat diprediksi oleh pengklasifikasi dan proses didasarkan pada teorema bayes (Gayatri, Nickolas, Reddy, & Chitra, 2009, p. 394). Penelitian perbandingan algoritma klasifikasi telah menemukan bahwa simple bayesian classifier dikenal sebagai naϊve bayesian classifier memiliki kinerja yang sebanding dengan
36
decision tree dan neural network classifiers, serta menunjukkan akurasi dan kecepatan tinggi bila diterapkan pada basis data besar (Han, Kamber, & Pei, 2011, p. 350). Selain itu, Naϊve Bayes sebaiknya digunakan jika tidak memiliki cukup data untuk menghitung ketergantungan secara akurat (Alpaydın, 2010, p. 100). Untuk kasus klasifikasi, model secara grafis ditunjukkan pada Gambar 2.7, dengan x sebagai masukan dan C adalah variabel multinomial yang diambil dari K keadaan untuk kode kelas (Alpaydın, 2010, p. 396).
Gambar 2.7 Model Grafis untuk Klasifikasi
Persamaan teorema bayes: 𝑃(𝐶|𝑥) =
𝑃(𝐶)𝑃(𝑥 |𝐶 ) 𝑃(𝑥)
(2. 1)
Di mana: C
: Kelas
𝑃(𝑥|𝐶)
: Kemungkinan posterior x pada kondisi kelas C
𝑃(𝐶)
: Kemungkinan kelas C tanpa memandang bukti apapun
𝑃(𝑥)
: Kemungkinan posterior x tanpa memandang kelas/bukti lain
Jika masukannya tidak saling bergantung, model grafisnya dapat ditunjukkan pada Gambar 2.8 yang disebut sebagai klasifikasi Naϊve Bayes, sebab hal ini mengabaikan kemungkinan kebergantungan, yaitu, korelasi antara masukan dan pengurangan masalah multivariate ke grup masalah univariate (Alpaydın, 2010, p. 397): 𝑃(𝑥|𝐶) = ∏𝑛𝑖=1 𝑃(𝑥𝑖 |𝐶) 37
(2. 2)
Gambar 2.8 Model Grafis Naϊve Bayes dengan Asumsi Masukan Bebas
Karena persamaan di atas merupakan normalisasi konstan untuk semua kelas, maka secara aman dapat dihilangkan (Turhan & Bener, Software Defect Prediction: Heuristics for Weighted Naive Bayes, 2007, p. 245). Sehingga persamaan menjadi: 𝑃(𝐶|𝑥) = 𝑃(𝐶)𝑃(𝑥|𝐶)
(2. 3)
Dari persamaan 2.1, 2.2, dan 2.3, maka persamaan distribusinya menjadi seperti pada persamaan 2.4. 𝑃(𝐶|𝑥) = 𝑃(𝐶) ∏𝑛𝑖=1 𝑃(𝑥𝑖 |𝐶)
(2. 4)
Dalam masalah klasifikasi kita menghitung probabilitas posterior 𝑃(𝐶|𝑥) untuk masing-masing kelas dan memilih satu dengan posterior tertinggi (Turhan & Bener, Software Defect Prediction: Heuristics for Weighted Naive Bayes, 2007, p. 245). Secara umum, logaritma digunakan untuk kemudahan komputasi, sehingga menghasilkan persamaan 2.5. 𝑔(𝑥) = log(𝑃(𝑥|𝐶)) + log(𝑃(𝐶))
38
(2. 5)
Menempatkan bentuk khusus dari distribusi normal multivariat seperti yang dijelaskan sebelumnya memberikan rumus Naïve Bayes standar seperti yang diberikan dalam persamaan 2.6.
1
𝑔(𝑥) = − 2 ∑𝑑𝑗=1 (
𝑥𝑗𝑡 −𝑚𝑗 𝑆𝑗
2
) + log(𝑃(𝐶))
(2. 6)
Pengklasifikasi Naïve Bayes bekerja mengikuti tahapan berikut ini (Jain & Richariya, 2012, p. 326): a. Misalkan T adalah data latih dari sampel, masing-masing dengan label kelasnya. Ada k kelas, yaitu C1, C2, C3, ...., Ck. Setiap sampel diwakili oleh vektor berdimensi n, X = {x1, x2, x3, ...., xn}, gambaran dari n nilai yang terukur dari n atribut, masing-masing adalah A1, A2, A3, ...., An. b. Diberikan sampel X, pengklasifikasi akan memprediksi bahwa X milik dari kelas yang memiliki probabilitas posterior tertinggi, dikondisikan pada X. Maka X diperkirakan milik kelas Ci jika dan hanya jika:
𝑃(𝐶𝑖 |𝑋) > 𝑃(𝐶𝑗 |𝑋)
𝑓𝑜𝑟 1 ≤ 𝑗 ≤ 𝑚, 𝑗 ≠ 𝑖
(2. 7)
sehingga ditemukan kelas yang memaksimalkan P(Ci|X). Kelas Ci pada P(Ci|X) yang dimaksimalkan disebut posterior hipotesis maksimal. Dengan teorema Bayes:
𝑃(𝐶𝑖 |𝑋) =
𝑃(𝑋 |𝐶𝑖 ) 𝑃(𝐶𝑖 ) 𝑃(𝑋)
(2. 8)
c. P(X) adalah sama untuk semua kelas, hanya P(Ci|X)P(Ci) yang perlu dimaksimalkan. Jika probabilitas kelas sebelumnya (prior) tidak diketahui, maka secara umum diasumsikan bahwa kelas adalah sama, yaitu, P(C1) = P(C2) = .... =
P(Cm) dan oleh karena itu akan
dimaksimalkan P(X|Ci). Kalau tidak, dimaksimalkan P(Ci|X)P(Ci). Perlu diperhatikan bahwa probabilitas kelas sebelumnya (prior) dapat dihitung dengan P(Ci) = |Ci,D|/|D|, di mana |Ci,D| adalah sejumlah pelatihan rangkap dari kelas Ci di dalam D.
39
d. Mengingat dataset dengan banyak atribut, itu akan menjadi komputasi yang mahal untuk menghitung P(X|Ci). Dalam rangka untuk mengurangi penghitungan dalam mengevaluasi P(X|Ci). Asumsi yang sebenarnya dari kelas dengan kondisi bebas terbuat. Ini mengasumsikan bahwa nilai-nilai dari atribut dikondisikan bebas antara satu dengan lainnya, dari label kelas yang diberikan pada sampel. Secara matematis ini berarti bahwa: 𝑃(𝑋|𝐶𝑖 ) ≈ ∑𝑛𝑘=1 𝑃(𝑋𝑘 |𝐶𝑖 )
(2. 9)
Probabilitas P(X1|Ci), P(X2|Ci), .... , P(Xn|Ci) dapat diperkirakan dengan mudah dari pelatihan. Mengingat bahwa di sini Xk mengacu pada nilai atribut Ak untuk sampel X. Jika Ak adalah pasti, maka P(Xk|Ci) adalah jumlah tupel dari kelas Ci dalam D memiliki nilai Xk untuk atribut Ak, dibagi dengan | Ci,D |, jumlah tupel dari kelas Ci dalam D. Jika Ak bernilai kontinyu, maka biasanya dianggap bahwa nilai-nilai memiliki distribusi Gaussian dengan mean μ dan deviasi standar σ didefinisikan oleh:
1
𝑔(𝑥, 𝜇, σ) =
√2𝜋∙𝜎
𝑒
−
(𝑥−𝜇)2 2𝜎2
(2. 10)
Di mana: ∑𝑛 𝑖=1 𝑥𝑖
𝜇=
(2. 11)
𝑛
2 ∑𝑛 𝑖=1(𝑥𝑖 −𝜇)
𝜎= √
(2. 12)
𝑛−1
Maka: 𝑃(𝑋𝑘 |𝐶𝑖 ) = 𝑔(𝑋𝑘 , 𝜇𝑐𝑖 , 𝜎𝑐𝑖 )
40
(2. 13)
Perlu dilakukan penghitungan untuk 𝜇𝑐𝑖 dan 𝜎𝑐𝑖 sebagai mean dan standar deviasi dari nilai atribut Ak untuk sampel pelatihan kelas Ci. e. Dalam rangka untuk memprediksi label kelas X, P(X|Ci)P(Ci) dievaluasi untuk setiap kelas Ci. Pengklasifikasi memprediksi bahwa label kelas X adalah Ci jika dan hanya jika ini adalah kelas yang memaksimalkan P(X|Ci)P(Ci). Jika dan hanya jika:
𝑃(𝑋|𝐶𝑖 )𝑃(𝐶𝑖 ) > 𝑃(𝑋|𝐶𝑗 )𝑃(𝐶𝑗 )
𝑓𝑜𝑟 1 ≤ 𝑗 ≤ 𝑚, 𝑗 ≠ 𝑖
(2. 14)
Metode Naïve Bayes penting karena beberapa alasan (Hand, 2009, p. 163). Metode ini sangat mudah untuk dibangun, tidak memerlukan skema estimasi parameter secara iteratif yang kompleks. Hal ini berarti dapat segera diterapkan untuk kumpulan data yang besar. Sangat mudah untuk menginterpretasikan, sehingga pengguna yang tidak terampil dalam teknologi pengklasifikasi dapat memahami mengapa melakukan pembuatan pengklasifikasi. Metode ini biasanya dapat diandalkan untuk menjadi kuat dan melakukan dengan sangat baik. Berikut ini adalah algoritma Naϊve Bayes: a. Masukan: Data latih T, data uji x b. Hitung mean (rata-rata) dan standar deviasi setiap kelas c. Hitung nilai probabilitas data uji untuk setiap kelas d. Klasifikasikan data uji sesuai nilai probabilitas kelas yang tertinggi e. Keluaran: Hasil klasifikasi
Algoritma Naïve Bayes digambarkan dengan flowchart pada Gambar 2.9, dengan masukan sejumlah data latih, data uji. Kemudian dihitung nilai mean (rata-rata) dan standar deviasi masing-masing kelas. Berikutnya dihitung nilai klasifikasi data uji untuk setiap kelas. Jika nilai klasifikasi cacat lebih besar dari nilai klasifikasi tidak cacat, maka data uji diklasifikasikan sebagai cacat, begitu juga sebaliknya.
41
Mulai
Masukkan sejumlah data latih dan data uji
Hitung nilai mean dan standar deviasi setiap fitur variabel untuk setiap kelas dari data latih
Hitung nilai klasifikasi data uji untuk setiap kelas menggunakan rumus:
Nilai klasifikasi cacat > Nilai klasifikasi tidak cacat
Tidak
Data uji diklasifikasikan ke dalam kelas cacat
Ya
Data uji diklasifikasikan ke dalam kelas cacat
Selesai
Gambar 2.9 Flowchart Algoritma Naïve Bayes
2.2.3
Ketidakseimbangan Kelas (Class Imbalance) Ketidakseimbangan kelas belajar mengacu pada belajar dari dataset yang
menunjukkan ketidakseimbangan yang signifikan di antara atau di dalam kelas. Pemahaman umum tentang “ketidakseimbangan” dalam literatur berkaitan dengan situasi, di mana beberapa kelas data sangat kurang terwakili dibandingkan dengan kelas lainnya (He & Garcia, 2009, p. 1264). Secara konvensi, kelas yang memiliki lebih banyak contoh disebut kelas mayoritas, dan yang memiliki sedikit contoh disebut kelas minoritas. Kesalahan klasifikasi dari contoh kelas minoritas biasanya lebih mahal. Untuk software prediksi cacat, karena sifat dari masalah,
42
kasus cacat jauh lebih kecil kemungkinannya untuk terjadi daripada kasus tidak cacat. Kelas cacat sebagai minoritas. Pengenalan kelas ini penting, karena kegagalan menemukan cacat dapat sangat menurunkan kualitas perangkat lunak (Wang & Yao, 2013, p. 435). Tantangan dari belajar menggunakan data tidak seimbang adalah bahwa secara relatif atau mutlak, kelas yang tidak terwakili tidak dapat menarik perhatian yang sama dengan algoritma pembelajaran dibandingkan dengan kelas mayoritas. Sehingga sering menyebabkan aturan klasifikasi yang sangat spesifik atau aturan yang hilang untuk kelas minoritas tanpa kemampuan generalisasi untuk prediksi di masa depan (Weiss G. M., Mining with Rarity: A Unifying Framework, 2004, p. 10). Bagaimana mengenali data dari kelas minoritas yang lebih baik adalah pertanyaan utama dalam penelitian pembelajaran ketidakseimbangan kelas. Tujuan
pembelajaran
yang
secara
umum
dapat
digambarkan
sebagai
"mendapatkan pengklasifikasi yang akan memberikan akurasi yang tinggi untuk kelas minoritas tanpa sangat membahayakan keakuratan kelas mayoritas" Banyak
metode
yang
telah
diusulkan
untuk
mengatasi
masalah
ketidakseimbangan kelas di level data dan level algoritma. Metode level data mencakup berbagai teknik resampling, memanipulasi data latih untuk memperbaiki kecondongan distribusi kelas, seperti sampling atas/bawah secara acak (oversampling/undersampling) dan SMOTE (Synthetic Minority Oversampling Technique) (Chawla, Bowyer, Hall, & Kegelmeyer, 2002, p. 328). Cara tersebut sederhana dan efisien, tetapi efektivitasnya sangat tergantung pada masalah dan algoritma pelatihan (Estabrooks, Jo, & Japkowicz, 2004, p. 18). Metode level algoritma ditujukan untuk kelas tidak seimbang dengan memodifikasi mekanisme pelatihan mereka secara langsung dengan tujuan menghasilkan akurasi yang lebih baik pada kelas minoritas, termasuk belajar satu kelas dan algoritma pembelajaran (learning algorithms) biaya-sensitif (Zhou & Liu, 2006, p. 63) (He & Garcia, 2009, p. 270). Metode level algoritma memerlukan perawatan khusus untuk berbagai jenis algoritma pembelajaran (learning algorithms), yang menghambat penggunaannya dalam banyak aplikasi, karena kita tidak tahu pasti algoritma yang akan menjadi pilihan terbaik dalam banyak kasus. Selain solusi level data dan level algoritma tersebut, pembelajaran ensemble (Rokach, 2010, p. 1) telah menjadi kategori utama pendekatan lain untuk menangani data tidak seimbang dengan menggabungkan beberapa 43
pengklasifikasi, seperti SMOTEBoost (Chawla, Lazarevic, Lawrence, & Bowyer, 2003, p. 107) dan AdaBoost.NC. Algoritma pembelajaran ensemble telah terbukti dapat
menggabungkan
kekuatan
dari
setiap
pembelajar
individu
dan
meningkatkan kinerja secara keseluruhan. Mereka juga menawarkan kesempatan tambahan untuk menangani ketidakseimbangan kelas baik pada tingkat individu dan ensemble.
2.2.4
Pendekatan Level Data
2.2.4.1 Resampling Resampling merupakan konsep penting dalam statistik inferensial. Hal ini digunakan untuk menarik sejumlah besar sampel dari yang asli untuk mencapai perkiraan distribusi teoritis yang mendasari. Hal ini didasarkan pada perulangan sampel dalam kumpulan data yang sama (Yu, 2003, p. 2). Resampling ini sangat penting bagi penelitian validitas prediktif rekayasa perangkat lunak sejak dataset rekayasa perangkat lunak dalam keadaan langka dan datanya terbatas. Hal ini berkaitan dengan kesulitan dalam mendapatkan dataset yang besar karena datanya rahasia atau datanya belum lengkap di alam (Afzal & Torkar, 2008, p. 38). Masalah ketidakseimbangan kelas juga dapat menyebabkan masalah lain karena ukuran kecil dari kelas minoritas. Ini sering disebabkan oleh perbedaan dalam kelas. Ketika mempertimbangkan masalah ketidakseimbangan kelas, di mana data kelas minoritas yang sangat kecil, kemampuan algoritma pembelajaran (learning algorithms) untuk menemukan pola dalam data kelas minoritas tidak dapat diandalkan. Namun dengan meningkatkan jumlah kelas minoritas dapat meningkatkan kemampuan algoritma pembelajar menjadi lebih baik, karena bisa mengenali sampel kelas minoritas dari mayoritas (Japkowicz & Stephen, 2002, p. 443). Resampling adalah cara yang paling populer untuk mengatasi masalah ini. Resampling digunakan sebagai sarana mengubah distribusi kelas minoritas sehingga tidak kurang terwakili ketika pelatihan algoritma pembelajar. Ada tiga pendekatan dasar untuk mengatasi masalah ketidakseimbangan kelas, yaitu oversampling kelas minoritas, undersampling kelas mayoritas, atau penggunaan pendekatan hybrid didasarkan pada keduanya. Random Under-Sampling (RUS) dan Random Over-Sampling (ROS) bersifat sederhana, namun metode resampling 44
sudah terkenal diterapkan untuk memecahkan masalah ketidakseimbangan kelas (Batuwita & Palade, 2010, p. 1). Kedua metode ini berbeda dalam pengambilan sampelnya, dapat dijelaskan dengan menggunakan contoh berikut, misalnya mengambil contoh kasus yang memiliki 1.100 sampel pada data latih, dengan didistribusikan kelas minoritas terdiri dari 100 sampel dan kelas mayoritas terdiri dari 1000 sampel. Dalam kasus Random Under-Sampling (RUS), dilakukan dengan memilih secara acak dari kelas mayoritas dan membuangnya sampai jumlah kedua kelas masing-masing menjadi 100. Sedangkan dalam kasus Random Over-Sampling (ROS), kelas minoritas dilakukan pengambilan sampel secara acak sampai ukuran sampel minoritas menjadi 1000. Untuk pendekatan hybrid, kelas mayoritas dilakukan pengambilan sampel menggunakan Random UnderSampling (RUS) sebanyak 550 sampel, dan kelas minoritas dilakukan pengambilan menggunakan Random Over-Sampling (ROS) sehingga ukuran kelas minoritas menjadi 550 sampel.
2.2.4.1.1 Algoritma ROS Pada algoritma ROS, data kelas minoritas dipilih secara acak, kemudian ditambahkan ke dalam data latih. Proses pemilihan dan penambahan ini diulangulang sampai jumlah data kelas minoritas sama dengan jumlah kelas mayoritas. Algorima ROS digambarkan menggunakan flowchart pada Gambar 2.10. Pertama dihitung selisih antara kelas mayoritas dengan kelas minoritas. Kemudian dilakukan perulangan sebanyak hasil penghitungan selisih sambil membaca data kelas minoritas secara acak, dan ditambahkan ke dalam data latih.
45
Mulai
Masukkan sejumlah data latih
Hitung jumlah kelas mayoritas dan minoritas
Selisih = jumlah kelas mayoritas – jumlah kelas minoritas
i=1
i <=Selisih
Tidak
Ya
Baca data kelas minoritas secara acak, dan tambahkan ke dalam data latih i++
Selesai
Gambar 2.10 Flowchart Algoritma ROS (Random Over-Sampling)
2.2.4.1.2 Algoritma RUS Algoritma RUS digambarkan dengan flowchart pada Gambar 2.11. Hampir sama dengan ROS, pertama dihitung selisih antara kelas mayoritas dengan kelas minoritas. Kemudian dilakukan perulangan sejumlah selisih hasil penghitungan, selama perulangan data kelas mayoritas dihapus secara acak, sehingga jumlah kelas mayoritas sama dengan jumlah kelas minoritas.
46
Mulai
Masukkan sejumlah data latih
Hitung jumlah kelas mayoritas dan minoritas
Selisih = jumlah kelas mayoritas – jumlah kelas minoritas
i=1
i <=Selisih
Tidak
Ya
Hapus data kelas mayoritas secara acak i++
Gabungkan sisa kelas mayoritas dengan kelas minoritas sebagai data latih yang seimbang
Selesai
Gambar 2.11 Flowchart Algoritma RUS (Random Under-Sampling)
2.2.4.2 Sintesis Kelas Minoritas Telah
banyak
pendekatan
yang
diusulkan
untuk
menyelesaikan
permasalahan ketidakseimbangan kelas, baik dari pendekatan data (data preprocessing) maupun pendekatan algoritma. Pendekatan data yang umum adalah resampling. SMOTE (Synthetic Minority Over-sampling Technique) merupakan pendekatan oversampling pada kelas minoritas yaitu dengan melakukan oversampling untuk menciptakan sampel "sintetik" bukan dengan oversampling dengan penggantian (Chawla, Bowyer, Hall, & Kegelmeyer, 2002, 47
p. 328). SMOTE adalah metode oversampling yang digunakan untuk menangani masalah ketidakseimbangan kelas, tetapi metode ini memiliki keterbatasan sampai batas tertentu karena sampel baru disintesis di antara contoh minoritas yang berdekatan, sehingga metode ini tidak bisa menunjukkan distribusi data yang lengkap (Zhang, Liu, Gong, & Jin, 2011, p. 2204). Metode ini mensintesis sampel kelas minoritas baru antara beberapa contoh minoritas yang terletak berdekatan, bukan hanya menduplikasi mereka secara acak menggunakan ROS. Borderline-SMOTE adalah metode yang memperbaiki SMOTE dengan menyisipkan sampel minoritas di dalam posisi yang tepat untuk memastikan bahwa sisipan sampel baru sangat berarti. Borderline-SMOTE adalah metode oversampling yang baru dalam pembelajaran ketidakseimbangan dataset (Han, Wang, & Mao, 2005, p. 878). Borderline-SMOTE adalah metode yang memperbaiki SMOTE dengan menyisipkan sampel minoritas di dalam posisi yang tepat untuk memastikan bahwa sisipan sampel baru sangat berarti (Zhang, Liu, Gong, & Jin, 2011, p. 2204), yaitu hanya melakukan oversampling pada daerah borderline (garis batas) sampel kelas minoritas (Han, Wang, & Mao, 2005, p. 886). FSMOTE adalah algoritma sintesis yang ditujukan untuk memperbaiki SMOTE dengan mensintesis data latih mengikuti teori interpolasi fraktal, sehingga data yang dihasilkan lebih representatif, dan menghasilkan kinerja lebih baik dari pada SMOTE (Zhang, Liu, Gong, & Jin, 2011, p. 2210). Perbandingan SMOTE dan FSMOTE ditujukkan pada Gambar 2.12 dan Gambar 2.13. Dari Gambar 2.12 terlihat bahwa sampel hasil sintesis algoritma SMOTE berada dalam satu garis di antara dua kelas minoritas. Sedangkan Gambar 2.13 adalah hasil sintesis kelas minoritas menggunakan algoritma FSMOTE dengan menambahkan sintesis di antara sampel terdekat yang dipilih, sehingga memperbaiki kesimetrian dan similaritas berdasarkan teori fraktal.
48
Gambar 2.12 Ilustrasi Sintesis Sampel SMOTE
Gambar 2.13 Ilustrasi Sintesis Sampel FSMOTE
2.2.4.2.1 kNN (k-Nearest Neighbor) Metode k-Nearest Neighbors (kNN) memberikan pendekatan sederhana untuk menghitung prediksi pada pengamatan yang tidak diketahui (Myatt, 2007, p. 176). Metode kNN mengklasifikasikan objek yang diuji dengan menemukan k objek terdekat dalam data latih, kemudian dikelompokkan dalam kelas yang mendominasi lingkungan tetangga tersebut (Steinbach & Tan, 2009, p. 151). Berikut ini adalah Algoritma kNN:
Masukan: D, himpunan objek pelatihan, objek uji x, yang merupakan vektor nilai atribut, dan L himpunan kelas digunakan untuk memberi label objek. Keluaran: cz Є L, dalam kelas z 49
Untuk setiap objek y Є D: Hitung d(x, y), jarak antara x dan y; Akhir Pilih N Є D, himpunan (lingkungan) dari k objek pelatihan terdekat dengan z; 𝐶𝑧 =
arg 𝑚𝑎𝑥
∑𝑦𝜖𝑁 𝐼(𝑣 = 𝑐𝑙𝑎𝑠𝑠(𝑐𝑧 ))
𝑣𝜖𝐿
(2. 15)
Di mana I(·) adalah fungsi indikator yang mengembalikan nilai 1 jika argumen adalah benar dan 0 sebaliknya. Untuk menghitung jarak dapat menggunakan pengukuran Euclidean atau Manhattan. Euclidean: 𝑑(𝑥, 𝑦) = √∑𝑛𝑘=1(𝑥𝑘 − 𝑦𝑘 )2
(2. 16)
Manhattan: 𝑑(𝑥, 𝑦) = √∑𝑛𝑘=1|𝑥𝑘 − 𝑦𝑘 |
(2. 17)
2.2.4.2.2 Algoritma FSMOTE Algoritma FSMOTE dibagi menjadi 2, yaitu algoritma utama dan algoritma untuk mensintesis data kelas minoritas. Algoritma utama digambarkan dengan flowchart
pada
Gambar
3.14,
sedangkan
algoritma
untuk
mensintesis
digambarkan dengan flowchart pada Gambar 3.15. Pada algoritma utama dilakukan perulangan sesuai jumlah data kelas minoritas. Selama data kelas minoritas dipilih satu per satu secara berurut, dan dicari sejumlah k data tetangga terdekat. Setelah dipilih k data tetangga terdekat, kemudian dilakukan sintesis kelas minoritas. Selanjutnya dilakukan perulangan sejumlah jumlah persentase sintesis N dibagi 100. Selama perulangan dipilih 2 tetangga terdekat, sehingga ada 3 data kelas minoritas. Dari 3 data tersebut, di tengah-tengah setiap pasangnya dibuat data sintesis. Pembuatan data sintesis ini diulang sesuai jumlah perulangan yang ditentukan. Data sintesis yang dibuat kemudian dipilih secara acak untuk ditambahkan ke dalam data hasil sintesis FSMOTE. Nilai N dikurangi 1, jika nilai N masih lebih besar dari 0 (nol) maka dilakukan perulangan lagi. Data hasil 50
sintesis FSMOTE yang telah dibuat kemudian ditambahkan ke dalam data latih secara acak.
Mulai
Masukkan sejumlah data latih, presentase data sintesis (N), jumlah tetangga (k)
i=1
i <= Jumlah kelas minoritas
Ya
Baca k data tetangga terdekat
Panggil prosedur sintesis data minoritas
Tidak
Tambahkan data sintesis ke dalam data latih secara acak
Selesai
Gambar 2.14 Flowchart Algoritma Utama FSMOTE
51
Mulai
Tentukan data kelas minoritas yang dipilih, k data tetangga terdekat, jumlah data sintesis N, jumlah perulangan
N>0
Tidak
Tambahkan data sintesis ke dalam data latih secara acak
Ya
Pilih 2 data dari k data terdekat secara acak Selesai i=1
i < jumlah perulangan
Tidak
Ya
Buat 3 data sintesis, yaitu di tengah kedua data yang dipilih, dan di tengah antara data kelas minoritas yang dipilih dengan kedua data yang dipilih.
Pilih salah satu data sintesis secara acak, tambahkan ke dalam data hasil sintesis
N=N-1
Tambahkan data sintesis ke dalam List
i++
Gambar 2.15 Flowchart Algoritma Sistesis FSMOTE
2.2.4.2.3 Pseudo-Code FSMOTE Di bawah ini dijelaskan algoritma FSMOTE dalam bentuk pseudocode (Zhang, Liu, Gong, & Jin, 2011, p. 2207). Algoritma FSMOTE terdiri dari dua bagian utama, bagian pertama berisi perulangan untuk mencari k tetangga terdekat, dan bagian kedua untuk membuat sintesis data kelas minoritas berdasarkan interpolasi fraktal.
52
Masukan: Algorithm FSMOTE(T, N, k) m: Jumlah sampel kelas minoritas T; persentase jumlah hasil sintesis FSMOTE N%; jumlah nearest neighbors k Keluaran: (N/100)*T jumlah data hasil sintesis
1: /*Hitung k nearest neighbors untuk setiap sampel kelas minoritas.*/ 2: for i = 1 to T do 3: Hitung k nearest neighbors data minoritas ke-i, dan simpan ke dalam nnarray 4: Sierpinski (N, i, nnarray, times); panggil fungsi (6) untuk mensistesis data 5: end for
/*Fungsi untuk mensintesis data*/ 6: Sierpinski (N, i, nnarray, times) 7: Lakukan perulangan selama N !=0: 8: Pilih 2 data yang berbeda secara acak antara 1 sampai k, sebut sebagai nn2 dan nn3. Langkah ini memilih dua data di antara k data terdekat dari data minoritas ke-i. 9: /*Lakukan operasi interpolasi fraktal, pilih satu dari sampel yang disintesis sebagai sampel kelas minoritas tambahan*/ 10: for indeks1to times do 11: for attr1 to numattrs do 12: Hitung jarak: 13: dif1=Sampel[nnarray[nn3]][attr]- Sampel[nnarray[nn2]][attr] 14: dif2=Sampel[nnarray[nn3]][attr]- Sampel[i][attr] 15: dif3=Sampel[nnarray[nn2]][attr]- Sampel[i][attr] 16: Hitung data sintesis sementara: 17: SintesisSementara[0][attr]= Sampel[nnarray[nn2]][attr]+dif1/2 18: SintesisSementara [1][attr]=Sampel[i][attr]+dif2/2 19: SintesisSementara [2][attr]=Sampel[i][attr]+dif3/2 20: Akhir for indeks1 21: Tambahkan hasil sintesis SintesisSementara[0], SintesisSementara[1], SintesisSementara[2] ke dalam List. 22: Akhir for attr1 23: Ind = random(List.length) 53
/*Lakukan pemilihan secara acak untuk dijadikan hasil sintesis*/ 24: Sintesis[indeksBaru]=List[Ind] 25: indeksBaru ++ 26: N = N - 1 27: Akhir perulangan, kembali ke (7). 28: return /*akhir fungsi mensintesis data Sierpinski.*/ Akhir dari Pseudo-Code.
2.2.5
Pendekatan Level Algoritma
2.2.5.1 AdaBoost Boosting telah menunjukkan dapat meningkatkan kinerja pengklasifikasi dalam banyak situasi, termasuk ketika data tidak seimbang (Seiffert, Khoshgoftaar, Hulse, & Napolitano, 2008, p. 445). Boosting adalah metode umum untuk meningkatkan kinerja algoritma belajar apapun. Secara teori, boosting dapat digunakan untuk mengurangi kesalahan algoritma belajar "lemah" secara signifikan. AdaBoost adalah kependekan dari Adaptive Boosting (Afza, Farid, & Rahman, 2011, p. 105) (Harrington, 2012, p. 132), merupakan algoritma machine learning yang dirumuskan oleh Yoav Freund and Robert Schapire. Algoritma AdaBoost adalah algoritma yang berusaha membangun pengklasifikasi kuat dengan mengombinasikan sejumlah pengklasifikasi sederhana atau lemah secara linier. Algoritma klasifikasi kuat menggunakan teknik seperti ANN (Artificial Neural Network), SVM (Support Vector Machines), dan lain-lain, sedangkan algoritma klasifikasi lemah menggunakan teknik seperti Decision Trees, Bayesian Networks, Random Forests, dan lain-lain (Korada, Kumar, & Deekshitulu, 2012, p. 64). Algoritma AdaBoost ini menggunakan prinsip dari pohon keputusan (decision
tree),
pohon
keputusan
yang digunakan
dapat
berupa
satu
tingkat/cabang keputusan (decision stump) atau beberapa tingkat (dapat mencapai tiga tingkat). Persamaan AdaBoost adalah: 𝐹(𝑥) = ∑𝑇𝑡=1 ∝𝑡 ℎ𝑡 (𝑥)
54
(2. 18)
Di mana: ℎ𝑡 (𝑥) : Pengklasifikasi dasar atau lemah ∝𝑡
: Tingkat pembelajaran (learning rate)
F(x)
: Hasil, berupa pengklasifikasi kuat atau akhir
Kelebihan dari algorithma AdaBoost: a. Mampu mengurangi nilai bias maupun perbedaan pada pengklasifikasi lemah (weak classifier) b. Memiliki kemampuan generalisasi yang baik c. Keluaran (output) AdaBoost mengonversi ke logaritma dengan rasio terdekat d. AdaBoost dapat dilihat sebagai pemilih fitur dengan strategi berprinsip (minimalisasi dari batas atas error) e. AdaBoost dekat dengan pembuatan keputusan linier
Algoritma AdaBoost (Zhou & Yu, AdaBoost, 2009, p. 130):
Masukan: Dataset D = {(x1,y1), (x2,y2), ......, (xm,ym)}; Algoritma pembelajaran lemah (Weak Learner) L; Sebuah integer T yang menspesifikasi banyaknya iterasi.
Proses: Inisialisasi berat distribusi: 𝐷1 (𝑖) =
1 𝑚
untuk semua 𝑖 = 1, … , 𝑚
for t=1, ... , T: Melatih pembelajar dasar/lemah ht dari D menggunakan distribusi Dt ht = L(D,Dt) Mengkalkulasi kesalahan dari ht: 𝜀𝑡 = 𝑃𝑟𝑥~𝐷𝑡,𝑦 𝐼[ℎ𝑡 (𝑥𝑖 ) ≠ 𝑦𝑖 ] if εt > 0.5 then break 1
1−𝜖𝑡
Menetapkan berat dari ht: ∝𝑡 = 2 ln (
55
𝜖𝑡
)
𝐷𝑡+1 (𝑖) =
𝐷𝑡 (𝑖) 𝑒𝑥𝑝(−∝𝑡 ) 𝑖𝑓 ℎ𝑡 (𝑥𝑖 ) = 𝑦𝑖 x{ 𝑒𝑥𝑝(∝𝑡 ) 𝑖𝑓 ℎ𝑡 (𝑖) ≠ 𝑦𝑖 𝑍𝑡
Meng-update distribusi, di mana Zt adalah faktor normalisasi yang mengaktifkan Dt+1 menjadi distribusi: 𝐷𝑡 (𝑖)𝑒𝑥𝑝(−∝𝑡 𝑦𝑖 ℎ𝑡 (𝑥𝑖 )) 𝑍𝑡 end
Keluaran: Pengklasifikasi akhir/kuat: 𝐻(𝑥) = 𝑠𝑖𝑔𝑛(∑𝑇𝑡=1 ∝𝑡 ℎ𝑡 (𝑥))
(2. 19)
Kesalahan diukur dengan memperhatikan distribusi Dt di mana algoritma pembelajar lemah dilatih. Dalam prakteknya, algoritma pembelajar lemah mungkin merupakan suatu algoritma yang dapat menggunakan bobot Dt pada sampel pelatihan. Atau, bila hal ini tidak memungkinan, bagian dari sampel pelatihan dapat di-resampling menurut Dt, dan hasil dari resampling yang tidak berbobot (unweighted) dapat digunakan untuk melatih algoritma pembelajar yang lemah. AdaBoost menghasilkan urutan hipotesis dan menggabungkannya dengan bobot, yang dapat dianggap sebagai kombinasi bobot tambahan dalam bentuk persamaan 2.18. 𝐻(𝑥) = ∑𝑇𝑡=1 ∝𝑡 ℎ𝑡 (𝑥)
(2. 20)
Dari pandangan ini, AdaBoost sebenarnya memecahkan dua masalah, yaitu bagaimana untuk menghasilkan hipotesis ht dan bagaimana menentukan bobot yang tepat αt. Dalam rangka untuk memiliki proses pengurangan kesalahan yang sangat efisien, maka dicoba meminimalkan kerugian eksponensial. 𝑙𝑜𝑠𝑠𝑒𝑥𝑝 (ℎ) = 𝐸𝑥~𝐷,𝑦 [𝑒 −𝑦(𝐻(𝑥)+𝛼ℎ(𝑥) ]
56
(2. 21)
Kerugian dari setiap contoh dapat terurai, yang disebut kerugian titik bijaksana (pointwise), seperti persamaan 2.20. 𝑙𝑜𝑠𝑠𝑒𝑥𝑝 (𝐻+∝ ℎ | 𝑥) = 𝐸𝑦 [𝑒 −𝑦(𝐻(𝑥)+𝛼ℎ(𝑥) |𝑥]
(2. 22)
Karena y dan h(x) harus +1 atau -1, maka harapan dapat diperluas sebagai: 𝑙𝑜𝑠𝑠𝑒𝑥𝑝 (𝐻+∝ ℎ | 𝑥) = 𝑒 −𝑦𝐻(𝑥) (𝑒 −∝ 𝑃(𝑦 = ℎ(𝑥)|𝑥) + 𝑒 ∝ 𝑃(𝑦 ≠ ℎ(𝑥)|𝑥)) (2. 23) Misalkan telah dihasilkan h, dan dengan berat ∝ yang meminimalkan kerugian dapat ditemukan ketika turunan dari kerugian sama dengan nol, yaitu: 𝜗𝑙𝑜𝑠𝑠𝑒𝑥𝑝 (𝐻+∝ℎ | 𝑥) 𝛿𝛼
= 𝑒 −𝑦𝐻(𝑥) (𝑒 −∝ 𝑃(𝑦 = ℎ(𝑥)|𝑥) + 𝑒 ∝ 𝑃(𝑦 ≠ ℎ(𝑥)|𝑥)) (2. 24) = 0
Maka solusinya adalah:
1
∝ = 2 ln
𝑃(𝑦
= ℎ(𝑥)|𝑥 ) = 𝑃(𝑦 ≠ ℎ(𝑥)|𝑥 )
1
ln 2
1−𝑃(𝑦
≠ ℎ(𝑥)|𝑥) 𝑃(𝑦 ≠ ℎ(𝑥)|𝑥 )
(2. 25)
Dengan mengambil harapan atas x, yaitu, memecahkan
𝜗𝑙𝑜𝑠𝑠𝑒𝑥𝑝 (𝐻+∝ℎ | 𝑥) 𝛿𝛼
,
dan menunjukkan 𝜖 = 𝐸𝑥~𝐷 [𝑦 ≠ ℎ(𝑥)], maka didapatkan persamaan 2.24. 1
∝ = 2 ln
1−𝜖
(2. 26)
𝜖
yang merupakan cara untuk menentukan αt di AdaBoost. Selanjutnya
mempertimbangkan
bagaimana
untuk
menghasilkan
h.
Mengingat algoritma pembelajaran dasar, AdaBoost memanggilnya untuk menghasilkan hipotesis dari distribusi contoh tertentu. Jadi, hanya perlu dipertimbangkan apa hipotesis yang diinginkan untuk putaran berikutnya, dan kemudian menghasilkan distribusi contoh untuk mencapai hipotesis ini.
57
Kita dapat memperluas kerugian pointwise (titik bijaksana) untuk urutan kedua tentang h(x) = 0, ketika memperbaiki α = 1, 𝑙𝑜𝑠𝑠𝑒𝑥𝑝 (𝐻 + ℎ | 𝑥) ≈ 𝐸𝑦 [𝑒 −𝑦𝐻(𝑥) (1 − 𝑦ℎ(𝑥) + 𝑦 2 ℎ(𝑥)2 /2)|𝑥]
(2. 27)
𝑙𝑜𝑠𝑠𝑒𝑥𝑝 (𝐻 + ℎ | 𝑥) ≈ 𝐸𝑦 [𝑒 −𝑦𝐻(𝑥) (1 − 𝑦ℎ(𝑥) + 1/2)|𝑥]
(2. 28)
sejak y2 = 1 dan h(x)2=1. Maka hipotesis yang sempurna adalah:
ℎ∗ (𝑥) = =
arg 𝑚𝑎𝑥 𝐸𝑦 [𝑒 −𝑦𝐻(𝑥) 𝑦ℎ(𝑥)|𝑥] arg 𝑚𝑖𝑛 𝑙𝑜𝑠𝑠𝑒𝑥𝑝 (𝐻 + ℎ | 𝑥) = (2. 29) ℎ ℎ
arg 𝑚𝑎𝑥 𝑒 −𝐻(𝑥) 𝑃(𝑦 = 1|𝑥) ∙ 1 ∙ ℎ(𝑥) + 𝑒 𝐻(𝑥) 𝑃(𝑦 = −1|𝑥) ∙ (−1) ∙ ℎ(𝑥) ℎ
Karena 𝑒 −𝑦𝐻(𝑥) adalah bersifat konstan dalam h(x). Dengan normalisasi harapan sebagai:
ℎ
∗ (𝑥)
arg 𝑚𝑎𝑥 𝑒 = ℎ
𝑦 = 1|𝑥)∙1∙ℎ(𝑥)+𝑒 𝐻(𝑥)𝑃(𝑦 = −1|𝑥)∙(−1)∙ℎ(𝑥) 𝑒 −𝐻(𝑥) 𝑃(𝑦 = 1|𝑥 )+𝑒 𝐻(𝑥) 𝑃(𝑦 = −1|𝑥 )
−𝐻(𝑥) 𝑃(
(2. 30)
Selanjutnya harapan ditulis ulang menggunakan istilah baru 𝑤(𝑥, 𝑦), yang diambil dari 𝑒 −𝑦𝐻(𝑥) 𝑃(𝑦|𝑥), sebagai:
ℎ∗ (𝑥) =
arg 𝑚𝑎𝑥 𝐸𝑤(𝑥,𝑦)~𝑒 −𝑦𝐻(𝑥)𝑃(𝑦|𝑥) [𝑦ℎ(𝑥)|𝑥] (2. 31) ℎ
Sejak h*(x) harus +1 atau -1, solusi untuk optimasi adalah h*(x) memiliki tanda yang sama dengan y|x, yaitu: ℎ∗ (𝑥) = 𝐸𝑤(𝑥,𝑦)~𝑒 −𝑦𝐻(𝑥)𝑃(𝑦|𝑥) [𝑦ℎ(𝑥)|𝑥] (2. 32) ℎ∗ (𝑥) = 𝑃𝑤(𝑥,𝑦)~𝑒 −𝑦𝐻(𝑥) 𝑃(𝑦|𝑥) (𝑦 = 1|𝑥) -𝑃𝑤(𝑥,𝑦)~𝑒 −𝑦𝐻(𝑥) 𝑃(𝑦|𝑥) (𝑦 = −1|𝑥) (2. 33)
58
Seperti dapat dilihat, h* hanya melakukan klasifikasi optimal x bawah distribusi 𝑒 −𝑦𝐻(𝑥) 𝑃(𝑦|𝑥). Oleh karena itu, 𝑒 −𝑦𝐻(𝑥) 𝑃(𝑦|𝑥) adalah distribusi yang diinginkan untuk meminimalkan hipotesis kerugian 0/1. 1
Jadi, ketika hipotesis h(x) telah dipelajari dan ∝ = 2 ln
1−𝜖 𝜖
telah ditentukan
pada saat ini, distribusi untuk tahap berikutnya harus: 𝐷𝑡+1 (𝑥) = 𝑒 −𝑦(𝐻(𝑥)+∝ℎ(𝑥)) 𝑃(𝑦|𝑥) = 𝑒 −𝑦𝐻(𝑥) 𝑃(𝑦|𝑥) ∙ 𝑒 −∝𝑦ℎ(𝑥) 𝐷𝑡+1 (𝑥) = 𝐷𝑡 (𝑥) ∙ 𝑒 −∝𝑦ℎ(𝑥)
(2. 34)
(2. 35)
yang merupakan cara memperbarui distribusi dalam AdaBoost. Tapi, mengapa mengoptimalkan kerugian kerja eksponensial untuk meminimalkan kerugian 0/1? Sebenarnya, dapat dilihat bahwa:
ℎ∗ (𝑥) =
arg 𝑚𝑖𝑛 𝐸𝑥~𝐷,𝑦 [𝑒 −𝑦ℎ(𝑥) ] = ℎ
1
𝑃(𝑦=1|𝑥)
ln 𝑃(𝑦=−1|𝑥) 2
(2. 36)
oleh karena itu didapat:
𝑠𝑖𝑔𝑛(ℎ∗ (𝑥)) =
arg 𝑚𝑖𝑛 𝑃(𝑦|𝑥) 𝑦
(2. 37)
yang mengimplikasikan bahwa solusi optimal untuk kerugian eksponensial dicapai pada kesalahan bayesian minimum untuk masalah klasifikasi. Selain itu, dapat dilihat bahwa fungsi h yang meminimalkan kerugian eksponensial adalah model regresi logistik hingga faktor 2. Jadi, dengan mengabaikan faktor 1/2, AdaBoost juga dapat dilihat sebagai model regresi logistik tambahan yang cocok. Perlu dicatat bahwa distribusi data tidak dikenal dalam praktek, dan algoritma AdaBoost bekerja pada sejumlah pelatihan yang diberikan dengan contoh-contoh pelatihan terbatas. Oleh karena itu, semua harapan dalam turunan di atas diambil pada contoh pelatihan, dan bobot juga dikenakan pada contoh pelatihan. Untuk algoritma dasar pembelajaran yang tidak dapat menangani pembobotan contoh pelatihan, mekanisme pengambilan ulang dari contoh yang sesuai dengan bobot yang diinginkan, dapat digunakan sebagai pengganti.
59
Algoritma AdaBoost berbasis Naïve Bayes digambarkan dengan flowchart pada Gambar 2.16, dengan masukan sejumlah data latih, data uji, dan jumlah iterasi. Pertama dilakukan inisialisasi bobot untuk setiap fitur sebesar 1 dibagi jumah data latih. Selanjutnya dilakukan perulangan sesuai masukan jumlah iterasi. Selama iterasi dilakukan pembobotan terhadap fitur data latih, karena algoritma Naïve Bayes tidak menerima bobot, maka dilakukan duplikasi fitur sesuai bobotnya sebagai data latih. Selanjutnya
data
latih
diklasifikasikan
menggunakan
algoritma
pengklasifikasi (Naïve Bayes). Hitung nilai kesalahannya, jika kesalahan lebih besar dari 0,5 maka iterasi diakhiri. Jika tidak lebih besar 0,5, maka hitung koefisien kesalahan. Hitung ulang bobot fitur menggunakan koefisien kesalahan, dan dilakukan normalisasi agar bobot bernilai antara 0 sampai 1. Proses penghitungan dilakukan sampai jumlah iterasi tercapai atau nilai kesalahan lebih dari 0,5. Setelah perulangan selesai, selanjutnya data uji diklasifikasikan menggunakan model ensemble yang terbentuk dengan koefisien bobotnya. Jika hasil klasifikasinya lebih besar atau sama dengan 0, maka diklasifikasikan ke dalam cacat. Jika hasil klasifikasinya kurang dari 0, maka diklasifikasikan ke dalam tidak cacat.
60
Mulai
Masukkan sejumlah data latih, data uji, dan jumlah iterasi T Kemudian lakukan inisialisasi bobot pada setiap fitur (1/jumlah data latih)
t=1
t <= T Ya Tidak
Atur ulang bobot setiap fitur menggunakan nilai bobot Dt
Hitung nilai hipotesis ht menggunakan probabilitas Naϊve Bayes Hitung kesalahan εt
εt > 1/2
Ya
Tidak
T =t-1
Hitung koefisien bobot Hitung klasifikasi data uji:
Hitung bobot baru dan lakukan normalisasi: H(x) >= 0
Tidak
t++ Diklasifikasikan sebagai tidak cacat
Ya
Diklasifikasikan sebagai cacat
Selesai
Gambar 2.16 Flowchart Algoritma AdaBoost Berbasis Naïve Bayes
61
2.2.5.2 Bagging Bootstrap aggregating (Bagging) adalah metode belajar (learning) yang sederhana dan efektif. Bagging merupakan metode ensemble yang banyak digunakan untuk klasifikasi, dengan tujuan untuk meningkatkan akurasi pengklasifikasi dengan menggabungkan pengklasifikasi tunggal, dan hasilnya sedikit lebih baik daripada random sampling (Alfaro, Gamez, & Garcia, 2013, p. 1). Berikut ini adalah algoritma Bagging:
Masukan: B adalah jumlah bag, T adalah data training yang berukuran N, x adalah data yang diuji. Keluaran: Hasil klasifikasi.
Ulangi untuk b = 1, 2, ..., B a. Buat bootstrap BSb dengan mengambil sampel dari T sejumlah N dengan penggantian. b. Latih pengklasifikasi tunggal Cb dengan boostrap BSb akhir perulangan
Gabungkan hasil pengklasifikasi tunggal Cb (xi); b = 1, 2, ..., B , hasil klasifikasi yang paling banyak dijadikan keputusan final klasifikasi, mengikuti rumus: 𝐶𝑓 (𝑥𝑖 ) = arg 𝑚𝑎𝑥𝑗∈𝑌 ∑𝐵𝑏=1 𝐼(𝐶𝑏 (𝑥𝑖 ) = 𝑗)
(2. 38)
Bagging adalah metode yang mengkombinasikan bootstrapping dan aggregating (Alfaro, Gamez, & Garcia, 2013, p. 4). Sampel bootstrap ini diperoleh dengan melakukan resampling dengan penggantian (with replacemants) dari dataset asli sehingga menghasilkan jumlah elemen yang sama dari dataset asli. Bagging dapat benar-benar berguna untuk membangun pengklasifikasi menjadi lebih baik bila pada pengamatan kumpulan data latih yang terdapat noise (kegaduhan) (Alfaro, Gamez, & Garcia, 2013, p. 5). Berdasarkan penelitian, perbaikan yang besar didapat ketika menggunakan 10 bootstrap, jika 62
menggunakan lebih dari 25 bootstrap, banyak tenaga yang dihabiskan. Sehingga Bagging lebih baik digunakan untuk data yang mengandung noise (kegaduhan) dan menggunakan 10 bootstrap. Sedangkan algoritma Bagging berbasis Naïve Bayes digambarkan dengan flowchart pada Gambar 2.17, dengan masukan sejumlah data latih, data uji, dan jumlah bootstrap. Pertama dibuat bootstrap, dengan melakukan random sampling dengan penggantian. Setiap bootstrap yang dibuat digunakan untuk melatih algoritma belajar tunggal (Naïve Bayes). Algoritma belajar yang sudah dilatih kemudian digabungkan untuk mengklasifikasikan data uji. Jika hasilnya lebih banyak ke kelas cacat, maka diklasifikasikan ke dalam cacat, jika tidak maka diklasifikasikan ke dalam tidak cacat.
63
Mulai
Masukkan sejumlah data latih, data uji, dan jumlah iterasi T
t=1
t <=T
Ya
Buat bootstrap menggunakan random sampling dengan penggantian Tidak
Latih pengklasifikasi tunggal Naive Bayes menggunakan data bootstrap t++
t=1
t <=T
Ya
Klasifikasikan data uji menggunakan pengklasifikasi tunggal yang sudah dilatih t++
Tidak
Lebih banyak prediksi cacat
Tidak
Diklasifikasikan sebagai tidak cacat
Ya
Diklasifikasikan sebagai cacat
Selesai
Gambar 2.17 Flowchart Algoritma Bagging Berbasis Naïve Bayes
64
2.2.6
Teknik Evaluasi dan Validasi Keseluruhan akurasi pada pengujian dataset umumnya digunakan untuk
mengevaluasi kinerja pengklasifikasi (Zhang & Wang, 2011). Tetapi untuk data yang tidak seimbang, akurasi yang mendalam didominasi oleh kelas minoritas, sehingga alternatif evaluasi metrik digunakan. Metrik evaluasi yang tepat termasuk Area Under the ROC (Receiver Operating Characteristic) Curve (AUC), F-Measure, Geometric Mean (G-Mean), semua akurasi dan rata-rata akurasi untuk kelas minoritas. Untuk melakukan evaluasi dan validasi terhadap model yang diusulkan, maka dilakukan beberapa pengujian menggunakan confusion matrix.
2.2.6.1 K-Fold Cross Validation Cross validaton adalah metode statistik untuk mengevaluasi dan membandingkan algoritma pembelajaran (learning algorithms) dengan membagi data menjadi dua segmen, satu segmen digunakan untuk belajar atau data latih, dan yang lain digunakan untuk memvalidasi model (Refaeilzadeh, Tang, & Liu, 2009, p. 532). Dalam cross validation kumpulan pelatihan dan validasi harus crossover berturut-turut sehingga setiap data memiliki kesempatan tervalidasi. K-fold cross validation adalah teknik umum untuk memperkirakan kinerja pengklasifikasi. K-fold cross validation dilakukan dengan menggunakan kembali dataset yang sama, sehingga menghasilkan k perpecahan dari kumpulan data menjadi non-overlapping dengan proporsi pelatihan (k-1)/k dan 1/k untuk pengujian (Korb & Nicholson, 2011, p. 213). Misalnya diberikan sekumpulan m data latih, dan menjalankan k-fold cross validation mengikuti proses berikut ini: 1. Mengatur contoh pelatihan dalam urutan acak. 2. Membagi data latih menjadi k lipatan. (k potongan masing-masing sekitar m/k data latih). 3. For i = 1; : : : ; k:
Latih pengklasifikasi menggunakan semua data latih yang bukan milik potongan ke-i.
Uji pengklasifikasi dari semua data latih menggunakan potongan ke-i.
65
Hitung ni, jumlah dari data latih dalam potongan ke-i yang diklasifikasikan salah.
4. Kembalikan perkiraan kesalahan pengklasifikasi sesuai rumus:
𝐸=
∑𝑘 𝑖=1 𝑛𝑖
(2. 39)
𝑚
Untuk mendapatkan perkiraan yang akurat dari pengklasifikasi, k-fold cross validation dijalankan beberapa kali, masing-masing dengan pengaturan acak yang berbeda pada langkah 1. Misalnya E1; :::, Et menjadi perkiraan akurasi yang diperoleh t proses. Didefinisikan:
𝑒=
∑𝑡𝑗=1 𝐸𝑗
(2. 40)
𝑡
2
𝑉=
∑𝑡𝑗=1(𝐸𝑗 −𝑒)
(2. 41)
𝑡−1
𝜎 = √𝑉
(2. 42)
Perkiraan kinerja algoritma adalah kesalahan e dengan standar deviasi 𝜎. Berdasarkan pengujian yang luas dengan berbagai dataset yang berbeda, dan teknik belajar yang berbeda, telah menunjukkan bahwa 10 merupakan jumlah lipatan yang tepat (Witten, Frank, & Hall, 2011, p. 153). Dengan 10-fold cross validation, pengukuran hasil dapat lebih akurat karena data yang ada dibagi ke dalam 10 data dengan jumlah yang sama, kemudian satu persatu diambil untuk pengujian, dan 9 bagian lainnya digunakan untuk pelatihan. Dengan crossvalidation akurasi dari hasil pengukuran data akan lebih terjamin karena mengurangi kemungkinan data yang tidak konsisten dalam tahap prediksi. Gambar 2.18 menunjukkan pembagian data pelatihan dan pengujian untuk k bernilai 10, biasa disebut 10-fold cross validation.
66
Data Set Split 1
Split 2
Split 3
Split 4
Split 5
Split 7
Split 8
Split 9
Split 10
Training
Test Training
Split 6
Training
Test
Training
Training
Test
Training
Training
Test
Training
Training
Test
Training
Training
Test
Training
Training
Test
Training
Training
Test
Training
Test
Training
Training Test
Gambar 2.18 Pembagian Dataset untuk 10-Fold Cross Validation
Pengujian secara ekstensif pada banyak dataset yang berbeda, dengan teknik pembelajaran yang berbeda, telah menunjukkan bahwa 10 adalah jumlah yang tepat dari lipatan untuk mendapatkan estimasi terbaik dari kesalahan, dan juga ada beberapa bukti teoritis yang mendukung hal ini. Meskipun argumen bukan sebagai kesimpulan, dan perdebatan masih ada dalam machine learning dan lingkup data mining tentang skema apa yang terbaik untuk evaluasi, 10-fold cross-validation telah menjadi metode standar dalam praktik (Witten, Frank, & Hall, 2011, p. 153).
2.2.6.2 Confusion Matrix Untuk mengukur kinerja model digunakan confusion matrix, karena confusion matrix merupakan alat yang berguna untuk menganalisa seberapa baik pengklasifikasi dapat mengenali tupel/fitur dari kelas yang berbeda (Han, Kamber, & Pei, 2011, p. 365). Confusion matrix dapat membantu menunjukkan rincian kinerja pengklasifikasi dengan memberikan informasi jumlah fitur suatu kelas yang diklasifikasikan dengan tepat dan tidak tepat (Bramer, 2007, p. 89). Confusion matrix memberikan penilaian kinerja model klasifikasi berdasarkan jumlah objek yang diprediksi dengan benar dan salah (Gorunescu, 2011, p. 319). Confusion
matrix
merupakan matrik
2 dimensi
67
yang menggambarkan
perbandingan antara hasil prediksi dengan kenyataan, ditunjukkan pada Tabel 2.12. Jika nilai prediksi benar dan nilai sebenarnya benar, maka disebut True Positive (TP). Jika nilai prediksi benar dan nilai sebenarnya salah, maka disebut False Positive (FP). Jika nilai prediksi salah dan nilai sebenarnya benar, maka disebut False Negative (FN). Jika nilai prediksi salah dan nilai sebenarnya salah, maka disebut True Negative (TN). Hasil yang baik dilihat dari nilai diagonal dari kiri atas (TP) ke kanan bawah (TN) yang tinggi, dan diagonal dari kiri bawah (FP) ke kanan atas (FN) yang rendah.
Tabel 2.12 Confusion Matrix Kelas Benar Nilai Prediksi Salah
Nilai Sebenarnya Benar Salah TP FP (True Positive) (False Positive) FN TN (False Negative) (True Negative)
Setelah dibuat confusion matrix, selanjutnya dihitung nilai akurasi, sensitivitas atau disebut recall atau True Positive Rate (TPrate), specificity (ketegasan) atau disebut True Negative Rate (TNrate), False Positive Rate (FPrate), False Negative Rate (FNrate), precision atau disebut Positive Predictive Value (PPV), Negative Predictive Value (NPV), F-Measure, Geometric Mean (GMean), dan Area Under the ROC Curve (AUC). Rumus-rumus yang digunakan untuk melakukan penghitungannya adalah (Gorunescu, 2011, pp. 320-322): 𝑇𝑃+𝑇𝑁
𝐴𝑘𝑢𝑟𝑎𝑠𝑖 = 𝑇𝑃 + 𝑇𝑁 + 𝐹𝑃 + 𝐹𝑁
(2. 43)
𝑇𝑃
𝑆𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑎𝑠 = 𝑟𝑒𝑐𝑎𝑙𝑙 = 𝑇𝑃𝑟𝑎𝑡𝑒 = 𝑇𝑃 + 𝐹𝑁 𝑇𝑁
𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦 = 𝑇𝑁𝑟𝑎𝑡𝑒 = 𝑇𝑁 + 𝐹𝑃 𝐹𝑃
𝐹𝑃𝑟𝑎𝑡𝑒 = 𝐹𝑃 + 𝑇𝑁
(2. 46)
68
(2. 44)
(2. 45)
𝐹𝑁𝑟𝑎𝑡𝑒 =
𝐹𝑁
(2. 47)
𝑇𝑃 + 𝐹𝑁
𝑇𝑃
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑃𝑃𝑉 = 𝑇𝑃 + 𝐹𝑃 𝑇𝑁
𝑁𝑃𝑉 = 𝑇𝑁 + 𝐹𝑁
𝐹 − 𝑀𝑒𝑎𝑠𝑢𝑟𝑒 =
(2. 48)
(2. 49)
(1+𝛽 2 ) 𝑥 𝑟𝑒𝑐𝑎𝑙𝑙 𝑥 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛
(2. 50)
(𝛽 𝑥 𝑟𝑒𝑐𝑎𝑙𝑙 + 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛)
𝐺 − 𝑀𝑒𝑎𝑛 = √𝑆𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑎𝑠 𝑥 𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦
(2. 51)
Untuk data tidak seimbang, akurasi lebih didominasi oleh ketepatan pada data kelas minoritas, maka metrik yang tepat adalah AUC (Area Under the ROC Curve), F-Measure, G-Mean, akurasi keseluruhan, dan akurasi untuk kelas minoritas (Zhang & Wang, 2011, p. 85). Akurasi kelas minoritas dapat menggunakan metrik TPrate/recall (sensitivitas). G-Mean dan AUC merupakan evaluasi prediktor yang lebih komprehensif dalam konteks ketidakseimbangan (Wang & Yao, 2013, p. 438). Sedangkan F-Measure adalah metrik evaluasi yang populer untuk masalah ketidakseimbangan. F-Measure mengkombinasikan recall/sensitivitas dan precision sehingga menghasilkan metrik yang efektif untuk pencarian kembali informasi dalam himpunan yang mengandung masalah ketidakseimbangan. F-Measure juga bergantung pada faktor β, yaitu parameter yang bernilai dari 0 sampai tak terhingga, dan digunakan untuk mengontrol pengaruh dari recall dan precision secara terpisah. Ini dapat menunjukkan bahwa ketika β bernilai 0, maka pengaruh precision terhadap F-Measure berkurang, dan sebaliknya, ketika β bernilai tak terhingga, maka pengaruh recall berkurang. Ketika β bernilai 1, maka F-Measure terlihat sebagai integrasi kedua ukuran secara seimbang. Secara prinsip, F-Measure merepresentasikan rata-rata harmonis antara recall dan precision.
𝐹 − 𝑀𝑒𝑎𝑠𝑢𝑟𝑒 =
2 𝑥 𝑟𝑒𝑐𝑎𝑙𝑙 𝑥 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 ( 𝑟𝑒𝑐𝑎𝑙𝑙 + 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛)
69
(2. 52)
Rata-rata harmonis dari dua angka cenderung lebih dekat dengan yang lebih kecil dari keduanya. Oleh karena itu nilai F-Measure yang tinggi menjamin bahwa keduanya dari recall dan precision bernilai cukup tinggi.
2.2.6.3 Area Under the ROC (Receiver Operating Characteristic) Curve Untuk dapat melihat akurasi secara manual dilakukan perbandingan klasifikasi menggunakan curva ROC hasil eksperesi dari confusion matrix. ROC menghasilkan dua garis dengan bentuk true positives sebagai garis vertikal dan false positives sebagai garis horizontal (Vercellis, 2009, p. 233). Kurva ROC adalah grafik antara sensitivitas (true positive rate) pada sumbu Y dengan 1spesifisitas pada sumbu X (false positive rate), curve ROC ini seakan-akan menggambarkan tawar-menawar antara sumbu Y atau sensitivitas dengan sumbu X atau spesifisitas. Nilai dari kurva ROC ini diharapkan mempunyai nilai yang akurat dalam uji kuantitas dalam sebuah pengujian kasus. Menentukan nilai cut off pada uji diagnostic yang bersifat kontinyu dan membandingkan kualitas dari dua atau lebih uji diagnostic. Untuk menentukan model mana yang memiliki kinerja terbaik, maka dibutuhkan satu ukuran yang mewakili kinerja dari setiap model. Area Under the ROC (Receiver Operating Characteristic) Curve (AUROC atau AUC) adalah ukuran numerik untuk membedakan kinerja model, dan menunjukkan seberapa sukses dan benar peringkat model dengan memisahkan pengamatan positif dan negatif (Attenberg & Ertekin, 2013, p. 114). AUC menyediakan ukuran tunggal dari kinerja pengklasifikasi untuk menilai model mana yang lebih baik secara rata-rata (López, Fernández, & Herrera, 2014, p. 4). AUC merangkum informasi kinerja pengklasifikasi ke dalam satu angka yang mempermudah perbandingan model ketika tidak ada kurva ROC yang mendominasi (Weiss G. M., 2013, p. 27). AUC adalah cara yang baik untuk mendapatkan nilai kinerja pengklasifikasi secara umum dan untuk membandingkannya dengan pengklasifikasi yang lain (Japkowicz, 2013, p. 202). AUC adalah ukuran kinerja yang populer dalam ketidakseimbangan kelas, nilai AUC yang tinggi menunjukkan kinerja yang lebih baik (Liu & Zhou, 2013, p. 75). Sehingga untuk memilih model mana yang terbaik, dapat dilakukan dengan menganalisa nilai AUC.
70
AUC dihitung berdasarkan rata-rata perkiraan bidang berbentuk trapesium untuk kurva yang dibuat oleh TPrate dan FPrate (Dubey, Zhou, Wang, Thompson, & Ye, 2014, p. 225). AUC memberikan ukuran kualitas antara nilai positif dan negatif dengan nilai tunggal (Rodriguez, Herraiz, Harrison, Dolado, & Riquelme, 2014, p. 375). Ukuran AUC dihitung sebagai daerah kurva ROC (López, Fernández, & Herrera, 2014, p. 4) (Galar, Fernández, Barrenechea, & Herrera, 2013, p. 3462) menggunakan persamaan 2.53.
𝐴𝑈𝐶 =
2.3
1+ 𝑇𝑃𝑟𝑎𝑡𝑒 −𝐹𝑃𝑟𝑎𝑡𝑒 2
(2. 53)
Kerangka Pemikiran Penelitian Kerangka pemikiran pada penelitian ini terdiri dari beberapa tahap seperti
terlihat pada Gambar 2.19. Permasalahan yang dibahas pada penelitian ini adalah jumlah data setiap kelas dalam dataset cacat software tidak seimbang sehingga akan mengurangi kinerja pengklasifikasi Naϊve Bayes. Untuk mengurangi pengaruh ketidakseimbangan kelas tersebut, maka digunakan pendekatan level data (ROS, RUS, dan FSMOTE) dan pendekatan level algorithma (AdaBoost dan Bagging). Untuk mengembangkan aplikasi berdasarkan model yang diusulkan digunakan bahasa Java dengan IDE (Integrated Development Environment) NetBeans. Kemudian dilakukan pengukuran kinerja model menggunakan cross validation. Selanjutnya dilakukan perbandingan untuk mengetahui pendekatan level data dan algoritma apa yang terbaik.
71
Application of Data and Algorithm Level Approach for Handling Imbalanced Class on Software Defect Prediction Based on Naϊve Bayes FACTORS
PROPOSED METHOD
VALIDATION
OBJECTIVES
MEASUREMENT
Time Series Dataset
NASA MDP Repository
Accuracy Software Defect Prediction Model Performance
Data Level Approach
Number of Nearest Neighbors Number to Synthesize
ROS
RUS FSMOTE
Synthesize Times Algorithm Level Approach
10-Fold Cross Validation
Sensitivity F-Measure G-Mean Area Under Curve (AUC)
Statistic Test Iteration
AdaBoost
Iteration
Bagging
Nemenyi Post Hoc
Prediction Algorithm
Adjusted Parameters
Naϊve Bayes
Demsar Diagram
Handling Imbalanced Class
Measurement Model
Gambar 2.19 Kerangka Pemikiran Penelitian
Sesuai kerangka pemikiran Gambar 2.19, metode yang diusulkan terdiri dari dua pendekatan, yaitu pendekatan level data dan pendekatan level algoritma, kemudian diterapkan pada dataset dari NASA MDP Repository dan PROMISE Repository. Sedangkan metode pengklasifikasi yang digunakan adalah Naϊve Bayes. Kedua pendekatan akan digunakan bergantian, dan gabungan dari keduanya untuk membuat berbagai model prediksi cacat software. Pendekatan level data ditujukan untuk menyeimbangkan kelas dalam dataset kualitas software yang pada umumnya bersifat tidak seimbang. Pada pendekatan level data diusulkan tiga metode, yaitu ROS, RUS dan FSMOTE. ROS bekerja dengan memilih secara acak data dari kelas minoritas dan menambahkan ke data latih sampai jumlah data kelas minoritas sama dengan data kelas mayoritas. RUS bekerja dengan memilih secara acak dan mengeluarkan dari data latih sampai jumlah data kelas mayoritas sama dengan kelas minoritas. FSMOTE menyeimbangkan kelas minoritas dengan membuat sintesis data kelas minoritas mengikuti teknik interpolasi fraktal. Pembuatan sintesis dimulai dengan
72
menentukan persentase jumlah data hasil sintesis (number to synthesize) terhadap kelas minoritas, pada penelitian ini ditentukan nilainya 100. Selanjutnya memilih sejumlah data terdekat (Number of Nearest Neighbors), pada penelitian ini ditentukan nilainya 5. Dari 5 data yang dipilih, kemudian dipilih 3 secara acak, dan dibuat sintesis data di antara masing-masing pasangan. Pemilihan tiga secara acak diulang sebanyak synthesize time, pada penelitian ini ditentukan nilainya 1. Data hasil sintesis dipilih secara acak, dan ditambahkan ke dalam data latih sejumlah data hasil sintesis atau sampai tercapai keseimbangan. Jika belum tercapai keseimbangan, maka proses sintesis menggunakan algoritma FSMOTE diulang lagi. Pendekatan
level
algoritma
ditujukan
untuk
memperbaiki
kinerja
pengklasifikasi dengan teknik ensemble menggunakan algoritma AdaBoost, dan Bagging. AdaBoost menggabungkan sejumlah iteration pengklasifikasi Naϊve Bayes dan memberi bobot masing-masing sesuai keakuratannya selama pelatihan. Bagging menggabungkan sejumlah iteration pengklasifikasi Naϊve Bayes yang diberi pelatihan dengan data berbeda yang diambil secara acak dengan pergantian dari data latih dengan ukuran yang sama. Penerapan dataset pada model yang terbentuk divalidasi menggunakan 10fold cross validation. Validasi menggunakan 10-fold cross validation dilakukan dengan membagi dataset menjadi 10 bagian, satu bagian sebagai data uji, sedangkan bagian lain sebagai data latih. Proses validasi dilakukan berulang, mulai bagian pertama sebagai data uji sampai bagian kesepuluh, sehingga semua data dalam dataset diuji. Tujuan dari validasi adalah menghasilkan kinerja model prediksi cacat software. Kinerja model prediksi cacat software diukur berdasarkan akurasi, sensitivitas, F-Measure, G-Mean, dan AUC. Hasil pengukuran kinerjanya kemudian dianalisa menggunakan uji statistik, nemenyi post hoc, dan dibuat diagram Demsar untuk mengetahui signifikansi berbedaan kinerja model.
73
BAB III METODE PENELITIAN
3.1
Analisa Kebutuhan Pada penelitian ini dilakukan eksperimen dengan menggunakan komputer
untuk melakukan proses penghitungan terhadap model yang diusulkan. Spesifikasi perangkat keras dan sistem operasi yang digunakan pada penelitian ini adalah menggunakan sebuah laptop DELL Inspiron 1440 dengan prosesor Pentium® Dual-Core CPU T4500 @ 2.30 GHz, memori (RAM) 4,00 GB, dan menggunakan sistem operasi Windows 7 Ultimate Service Pack 1 32-bit. Sedangkan perangkat lunak yang digunakan untuk mengembangkan aplikasi adalah IDE (Integrated Development Environment) NetBeans menggunakan bahasa Java. Untuk menganalisis hasil pengukuran kinerja digunakan aplikasi IBM SPSS statistic 21 dan XLSTAT versi percobaan (trial).
3.2
Metode Penelitian Penelitian ini menggunakan pendekatan kuantitatif. Metode kuantitatif
bertujuan untuk mencapai pemahaman tentang bagaimana sesuatu dikonstruksi, bagaimana dibangun, atau bagaimana cara kerjanya (Berndtsson, Hansson, Olsson, & Lundell, 2008, p. 13). Penelitian kuantitatif umumnya didorong oleh hipotesis, yang dirumuskan dan diuji secara ketat, dengan tujuan menunjukkan bahwa hipotesisnya salah. Oleh karena itu, salah satu upayanya adalah untuk menyalahkan hipotesis, dan jika hipotesis tahan uji, maka akan dianggap benar setelah terbukti sebaliknya. Aspek kuantitatif adalah untuk menekankan bahwa pengukuran merupakan dasarnya karena memberikan hubungan antara observasi dan formalisasi model, teori, dan hipotesis. Hasil dari penelitian dan metode kuantitatif adalah mengembangkan model, teori, dan hipotesis yang berkaitan dengan fenomena alam. Metode yang digunakan pada penelitian ini adalah eksperimen. Penelitian eksperimen mencakup investigasi hubungan sebab-akibat menggunakan pengujian yang dikontrol sendiri (Dawson, 2009, p. 26). Cukup sering penelitian semieksperimental mendapatkan kendala pada tidak cukupnya akses terhadap
74
sampel, masalah etika dan sebagainya. Eksperimen biasanya dilakukan dalam pengembangan, evaluasi dan pemecahan masalah proyek. Penelitian ini bertujuan untuk mengurangi pengaruh ketidakseimbangan kelas pada model prediksi cacat software. Karena penelitian yang diakui/diterima harus mengikuti aturan yang diakui (Dawson, 2009, p. 20), maka pada penelitian ini dilakukan dengan mengikuti tahapan seperti Gambar 3.1.
Gambar 3.1 Tahapan Penelitian
Penjelasan tahapan pada Gambar 3.1 sebagai berikut ini: a. Pengumpulan data Pengumpulan data bukan hanya sekedar mengambil data yang ada, tetapi harus mampu mendeskripsikan data yang ada, dan memiliki kontribusi terhadap pengetahuan. Data tersebut harus dapat memberikan penjelasan, hubungan, perbandingan, prediksi, generalisasi, dan teori (Dawson, 2009, p. 18). Berdasarkan sumbernya, data dibedakan menjadi dua, yaitu: Data primer, yaitu data yang dikumpulkan langsung dari sumber data. Pengumpulan data ini memerlukan waktu, dan biaya yang lebih
75
banyak dari data sekunder. Contoh sumber data primer adalah kuisioner, observasi, wawancara, dan eksperimen yang dilakukan langsung oleh peneliti. Data sekunder, yaitu data yang diperoleh dari peneliti/pihak lain, walaupun data tersebut sebelumnya digunakan dengan tujuan yang berbeda. Data sekunder dapat diperoleh relatif lebih cepat, dan dengan biaya rendah. Contoh sumber data sekunder adalah kantor statistik baik pemerintah maupun swasta, perpustakaan, toko buku, maupun internet.
Beberapa alasan penggunaan data sekunder (Blaxter, Hughes, & Tight, 2010, p. 192) adalah: Karena pengumpulan data primer relatif lebih sulit, memakan waktu, dan mahal. Karena ada kemungkinan memiliki data yang tidak cukup. Karena lebih masuk akal untuk menggunakan data yang ada, walaupun datanya dalam bentuk yang berbeda. Karena lebih dapat menjelaskan, atau pelengkap dari data primer dikumpulkan. Karena dapat mengkonfirmasi, memodifikasi atau bertentangan dengan yang ditemukan. Karena memungkinkan untuk memusatkan perhatian pada analisis dan interpretasi. Karena tidak dapat melakukan penelitian pada sesuatu yang telah dilakukan/terjadi. Karena lebih banyak data yang dikumpulkan daripada yang pernah digunakan. b. Pengolahan awal data Data yang sudah dikumpulkan diolah menggunakan algoritma softcomputing untuk mengurangi data yang tidak relevan, atau data dengan atribut yang hilang. Pengolahan juga dapat berupa konversi nilai-nilai redundan (berlebihan), atau nilai yang terlalu beragam ke dalam kelompok yang lebih kecil untuk mempermudah pembentukan model.
76
c. Model/metode yang diusulkan Untuk menggambarkan alur model/metode yang diusulkan dan menjelaskan cara kerja model/metode yang diusulkan. Model/metode ini digambarkan secara skematik dan disertai dengan formula penghitungan. Model/metode yang diusulkan akan dibentuk dari data yang sudah diolah, dan hasil pengolahan model akan diukur dengan model yang ada saat ini. d. Eksperimen dan pengujian model Menjabarkan
bagaimana
eksperimen
yang
dilakukan
hingga
terbentuknya model, serta menjelaskan cara menguji model yang terbentuk. e. Evaluasi dan validasi hasil Evaluasi dilakukan dengan mengamati hasil prediksi menggunakan algoritma soft-computing. Validasi dilakukan dengan mengukur hasil prediksi dibandingkan dengan data asli/awal. Pengukuran kinerja dilakukan dengan membandingkan nilai kesalahan (error) hasil prediksi masing-masing algoritma sehingga dapat diketahui algoritma yang lebih akurat.
3.2.1
Metode Pemilihan Data Jika seorang mahasiswa berencana melakukan penelitian untuk tesisnya
dengan pendekatan yang lebih kuantitatif, tidak mungkin untuk memiliki sumber daya, dalam hal waktu dan uang, yang tersedia untuk melakukan survei dengan skala besar. Oleh karena itu, menganalisa data sekunder adalah strategi yang lebih bermanfaat (Blaxter, Hughes, & Tight, 2010, p. 7). Maka pada penelitian ini digunakan data sekunder, yaitu dari NASA (National Aeronautics and Space Administration) MDP (Metrics Data Program) repository dan PROMISE (Predictor Models in Software Engineering) Repository sebagai software metrics, karena dataset NASA sudah umum digunakan para peneliti untuk membangun model kegagalan software (Hall, Beecham, Bowes, Gray, & Counsell, 2011, p. 18). Berdasarkan wawancara secara online di researchgate.net, Martin John Shepperd menyatakan bahwa ada banyak developer dan organisasi yang mengerjakan proyek NASA. Hal ini tentu memiliki banyak masalah asumsi, tetapi
77
secara umum memiliki kemampuan yang sama dan cenderung membuat kesalahan yang serupa.
3.2.2
Metode Pengumpulan Data Data yang digunakan adalah NASA dataset dari NASA MDP Repository
dan PROMISE Repository yang sudah banyak digunakan oleh para peneliti cacat software dan tersedia secara umum di internet. Maka metode pengumpulan data yang digunakan adalah dengan mengunduh NASA dataset dari http://nasasoftwaredefectdatasets.wikispaces.com/. Spesifikasi dan atribut NASA MDP repository (original) ditunjukkan pada Tabel 3.1, dan PROMISE repository (original) ditunjukkan pada Tabel 3.2 dan Tabel 3.3.
78
Tabel 3.1 Spesifikasi dan Atribut NASA MDP Repository (Original) Nama Atribut
Miscellaneous
McCabe Attributes
Halstead Attributes
LOC Counts
LOC_BLANK LOC_CODE_AND_COMMENT LOC_COMMENTS LOC_EXECUTABLE LOC_TOTAL NUMBER_OF_LINES HALSTEAD_CONTENT HALSTEAD_DIFFICULTY HALSTEAD_EFFORT HALSTEAD_ERROR_EST HALSTEAD_LENGTH HALSTEAD_LEVEL HALSTEAD_PROG_TIME HALSTEAD_VOLUME NUM_OPERANDS NUM_OPERATORS NUM_UNIQUE_OPERANDS NUM_UNIQUE_OPERATORS CYCLOMATIC_COMPLEXITY CYCLOMATIC_DENSITY DESIGN_COMPLEXITY ESSENTIAL_COMPLEXITY BRANCH_COUNT CALL_PAIRS CONDITION_COUNT DECISION_COUNT DECISION_DENSITY DESIGN_DENSITY EDGE_COUNT ESSENTIAL_DENSITY GLOBAL_DATA_COMPLEXITY GLOBAL_DATA_DENSITY MAINTENANCE_SEVERITY MODIFIED_CONDITION_COUNT MULTIPLE_CONDITION_COUNT NODE_COUNT NORMALIZED_CYLOMATIC_COMPLEXITY PARAMETER_COUNT PERCENT_COMMENTS PATHOLOGICAL_COMPLEXITY Defective Jumlah attribut Jumlah Modul Jumlah modul yang cacat Presentase modul yang cacat Jumlah modul yang tidak cacat
NASA Dataset Repository (Original) CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5 41 22 22 41 41 41 41 41 41 40 505 10878 2107 458 161 1107 5589 1563 1458 17186 48 2102 325 43 52 76 23 160 178 516 9,50% 19,32% 15,42% 9,39% 32,30% 6,87% 0,41% 10,24% 12,21% 3,00% 475 8776 1782 415 109 1031 5566 1403 1280 16670
79
Tabel 3.2 Spesifikasi dan Atribut PROMISE Repository (Original) Metrik
Nama Atribut
Miscellaneous
Halstead Attributes
McCabe Attributes
McCabe's line count of code loc McCabe "cyclomatic complexity" v(g) McCabe "essential complexity" ev(g) McCabe "design complexity" iv(g) Halstead total operators + operands n Halstead "volume" v Halstead "program length" l Halstead "difficulty" d Halstead "intelligence" i Halstead "effort" e Halstead "error" b Halstead's time estimator t Halstead's line count loCode Halstead's count of lines of comments loComment Halstead's count of blank lines loBlank Count of code and comment lines locCodeAndComment unique operators uniq_Op unique operands uniq_Opnd total operators total_Op total operands total_Opnd Count of the flow graph branchCount Defective Jumlah attribut Jumlah Modul Jumlah modul yang cacat Presentase modul yang cacat
80
Promise D' Dataset Repository CM1 JM1 KC1 PC1 22 22 22 22 498 10885 2109 1109 49 2106 326 77 9,84% 19,35% 15,46% 6,94%
Tabel 3.3 Spesifikasi dan Atribut PROMISE Repository (Original) (Lanjutan) Nama Atribut
Miscellaneous
McCabe Attributes
Halstead Attributes
LOC Counts
LOC_BLANK LOC_CODE_AND_COMMENT LOC_COMMENTS LOC_EXECUTABLE LOC_TOTAL NUMBER_OF_LINES HALSTEAD_CONTENT HALSTEAD_DIFFICULTY HALSTEAD_EFFORT HALSTEAD_ERROR_EST HALSTEAD_LENGTH HALSTEAD_LEVEL HALSTEAD_PROG_TIME HALSTEAD_VOLUME NUM_OPERANDS NUM_OPERATORS NUM_UNIQUE_OPERANDS NUM_UNIQUE_OPERATORS CYCLOMATIC_COMPLEXITY CYCLOMATIC_DENSITY DESIGN_COMPLEXITY ESSENTIAL_COMPLEXITY BRANCH_COUNT CALL_PAIRS CONDITION_COUNT DECISION_COUNT DECISION_DENSITY DESIGN_DENSITY EDGE_COUNT ESSENTIAL_DENSITY GLOBAL_DATA_COMPLEXITY GLOBAL_DATA_DENSITY MAINTENANCE_SEVERITY MODIFIED_CONDITION_COUNT MULTIPLE_CONDITION_COUNT NODE_COUNT NORMALIZED_CYLOMATIC_COMPLEXITY PARAMETER_COUNT PERCENT_COMMENTS Defective Jumlah attribut Jumlah Modul Jumlah modul yang cacat Presentase modul yang cacat
3.2.3
Promise D' Dataset Repository KC3 MC2 PC2 PC3 PC4 40 40 37 38 38 458 161 5589 1563 1458 43 52 23 160 178 9,39% 32,30% 0,41% 10,24% 12,21%
PC5 39 17186 516 3,00%
Metode Analisis Data Sistem intelijen dan model matematis untuk pengambilan keputusan dapat
mencapai hasil yang akurat dan efektif hanya jika data yang digunakan dapat diandalkan (Vercellis, 2009, p. 94). Beberapa teknik dapat digunakan untuk mencapai tujuan ini, yaitu validasi data, untuk mengidentifikasi, dan menghapus
81
anomali dan inkonsistensi; integrasi data dan transformasi, untuk meningkatkan akurasi dan efisiensi algoritma pembelajaran (learning algorithms); pengurangan ukuran dan diskritisasi data, untuk memperoleh dataset dengan jumlah atribut dan record yang lebih rendah tetapi tetap informatif seperti dataset aslinya. Agar data yang diperoleh dari NASA MDP repository dan PROMISE repository dapat diandalkan, maka dilakukan beberapa tahap pengolahan data, yaitu validasi data, transformasi data, ekstraksi fitur, pengurangan ukuran, dan diskritisasi data.
3.2.3.1 Validasi Data Kualitas data masukan mungkin terbukti tidak memuaskan karena tidak lengkap, mengandung kegaduhan (noise), dan tidak konsisten (Vercellis, 2009, p. 95). Data yang tidak lengkap perlu ditangani secara sistematis agar tidak menimbulkan kesalahan pada saat pengolahan data. Jika memang tidak dapat disesuaikan maka data tersebut bisa dihilangkan. Data yang tidak konsisten muncul karena adanya perubahan aplikasi pengisi data atau migrasi sistem. Sedangkan data yang mengandung kegaduhan (noise) biasanya merupakan data dengan nilai salah yang perlu dikonversi agar dapat digunakan kembali. Data yang tidak lengkap ditangani dengan cara eliminasi, inspeksi, identifikasi, dan subsitusi. Eliminasi adalah menghapus data yang tidak lengkap sebelum analisis. Inspeksi adalah mengamati data yang ada untuk mengisi data yang tidak lengkap dengan nilai yang paling mungkin untuk data tersebut. Identifikasi biasa digunakan pada data kontinyu di mana data yang hilang diisi dengan kemungkinan data terendah atau tertinggi sesuai dengan bobot atribut. Subsitusi biasanya diterapkan pada data nominal dengan mengganti nilai yang hilang dengan nilai rata-rata atribut lainnya. Sedangkan data yang tidak rapi biasanya berada jauh dati persebaran data normal. Biasanya diidentifikasikan dengan konsep statistik dalam mengamati persebaran data. Cara lain adalah menggunakan algoritma segmentasi untuk melihat pola segmen yang terbentuk.
3.2.3.2 Transformasi Data Menerapkan beberapa transformasi dataset merupakan langkah yang tepat dalam analisa data mining untuk meningkatkan akurasi model belajar yang akan 82
dikembangkan (Vercellis, 2009, p. 99). Proses transformasi data ditujukan untuk meningkatkan akurasi dari metode data mining dengan menyempurnakan struktur data. Cara yang digunakan adalah standardisasi dan ekstraksi.
3.2.3.2.1 Standardisasi Standardisasi adalah menyetarakan data antaratribut agar didapat bobot yang sama dalam penghitungan setiap atribut. Teknik standardisasi yang paling populer adalah skala desimal, min-max, dan z-index (Vercellis, 2009, p. 99). Skala desimal bekerja dengan menggeser nilai desimal hingga data memiliki satuan yang sama, ditunjukkan pada persamaan 3.1. 𝑥
′ 𝑥𝑖,𝑗 = 10𝑖,𝑗ℎ
(3. 1)
di mana h adalah parameter yang diberikan untuk menentukan skala intensitas. Dalam prakteknya, skala desimal digunakan untuk menggeser titik desimal berdasarkaan posisi h ke kiri. Secara umum, h tetap pada nilai yang memberikan nilai-nilai yang berubah dalam rentang [-1, 1]. Sedangkan min-max adalah mentransformasi data dengan membuat skala nilai data terhadap nilai minimal dan maksimal data. Teknik standardisasi minmax ditunjukkan pada persamaan 3.2. Umumnya nilai x'min,j = -1 dan x'max,j = 1, atau x'min,j = 0 dan x'max,j = 1.
′ 𝑥𝑖,𝑗 = (𝑥
𝑥𝑖,𝑗 −𝑥𝑚𝑖𝑛,𝑗 𝑚𝑎𝑥,𝑗 −𝑥𝑚𝑖𝑛,𝑗
′ ′ ′ ) (𝑥𝑚𝑎𝑥,𝑗 − 𝑥𝑚𝑖𝑛,𝑗 ) + 𝑥𝑚𝑖𝑛,𝑗
(3. 2)
Z-index bekerja dengan membuat skala data dengan nilai deviasi yang biasanya merupakan rata rata dari nilai dalam suatu atribut. Teknik Z-index ditunjukkan pada persamaan 3.3.
𝑥′𝑖,𝑗 =
̅𝑗 𝑥𝑖,𝑗 −𝜇
(3. 3)
̅𝑗 𝜎
83
3.2.3.2.2 Ekstraksi Fitur Standardisasi dengan menciptakan atribut baru untuk menggantikan beberapa atribut yang ada di dalamnya. Seleksi fitur (feature selection) akan membuat variabel baru yang merupakan kesatuan dari beberapa atribut yang kompleks sehingga akan lebih mudah diolah dengan data mining.
3.2.3.3 Pengurangan Ukuran dan Diskritisasi Data Pengurangan ukuran data digunakan untuk mengurangi ukuran dataset yang besar sehingga dapat diolah dengan lebih efisien tanpa mengurangi kualitas dari hasil yang dapat diperoleh (Vercellis, 2009, p. 100). Kriteria yang digunakan dalam mereduksi data adalah efisiensi, akurasi, dan kesederhanaan. Efisiensi adalah penggunaan algoritma pembelajaran dengan waktu yang lebih singkat dari waktu yang digunakan, pengurangan data akan memberikan percepatan yang cukup besar. Akurasi merupakan hasil pengolahan, karena itu pengurangan data biasanya dilakukan dengan pemilihan atribut. Kesederhanaan mengacu pada model yang terbentuk, semakin sederhana maka akan semakin mudah dimengerti. Karena sulitnya menemukan teknik baru dalam reduksi data, maka ada dua arah yang saat ini digunakan dalam reduksi data. Untuk mengurangi jumlah data dalam dataset dilakukan pengambilan sampel. Untuk mengurangi jumlah atribut yang diolah menggunakan seleksi dan proyeksi. Sedangkan untuk mengurangi nilai data yang diolah digunakan diskritisasi dan agregasi. Pemilihan atribut adalah proses menghilangkan atribut yang kurang berpengaruh terhadap pembentukan model. Dengan jumlah kolom yang lebih sedikit, algoritma pembelajaran dapat berjalan dengan lebih cepat. Selain itu model yang terbentuk pun akan lebih sederhana dan lebih mudah dimengerti. Diskritisasi data adalah metode reduksi primer. Tujuan umum dari metode reduksi data adalah untuk mendapatkan penurunan jumlah nilai yang berbeda diasumsikan oleh satu atau lebih atribut. Diskritisasi adalah metode yang mampu mengubah nilai data ke dalam nilai nominal yang diolah dari satu atau beberapa atribut. Diskritisasi biasanya diterapkan pada nilai nominal yang panjang agar nilai data lebih sedikit serta algoritma pembelajaran dapat diaplikasikan kepada setiap nilai.
84
3.2.3.4 Spesifikasi Dataset yang Digunakan Penelitian ini dilaksanakan dengan cara menganalisa software metrics dari NASA MDP repository dan PROMISE repository menggunakan aplikasi yang dikembangkan menggunakan bahasa Java dengan IDE (Integrated Development Environment) NetBeans. Spesifikasi dan atribut dataset hasil dari tranformasi dataset DS menjadi DS' dan DS'' berdasarkan algoritma pemrosesan awal yang diusulkan Shepperd, Song, Sun, dan Mair (Shepperd, Song, Sun, & Mair, 2013, p. 1209) ditunjukkan pada Tabel 3.4 sampai Tabel 3.9. Pada penelitian ini akan menggunakan dataset DS''.
85
Tabel 3.4 Spesifikasi dan Atribut NASA MDP repository (D') Nama Atribut
Miscellaneous
McCabe Attributes
Halstead Attributes
LOC Counts
LOC_BLANK LOC_CODE_AND_COMMENT LOC_COMMENTS LOC_EXECUTABLE LOC_TOTAL NUMBER_OF_LINES HALSTEAD_CONTENT HALSTEAD_DIFFICULTY HALSTEAD_EFFORT HALSTEAD_ERROR_EST HALSTEAD_LENGTH HALSTEAD_LEVEL HALSTEAD_PROG_TIME HALSTEAD_VOLUME NUM_OPERANDS NUM_OPERATORS NUM_UNIQUE_OPERANDS NUM_UNIQUE_OPERATORS CYCLOMATIC_COMPLEXITY CYCLOMATIC_DENSITY DESIGN_COMPLEXITY ESSENTIAL_COMPLEXITY BRANCH_COUNT CALL_PAIRS CONDITION_COUNT DECISION_COUNT DECISION_DENSITY DESIGN_DENSITY EDGE_COUNT ESSENTIAL_DENSITY GLOBAL_DATA_COMPLEXITY GLOBAL_DATA_DENSITY MAINTENANCE_SEVERITY MODIFIED_CONDITION_COUNT MULTIPLE_CONDITION_COUNT NODE_COUNT NORMALIZED_CYLOMATIC_COMPLEXITY PARAMETER_COUNT PERCENT_COMMENTS PATHOLOGICAL_COMPLEXITY Defective Jumlah attribut Jumlah Modul Jumlah modul yang cacat Presentase modul yang cacat Jumlah modul yang tidak cacat
CM1
JM1
KC1
NASA Dataset Repository (D') KC3 MC2 PC1 PC2
PC3
PC4
PC5
38 22 22 40 40 38 37 38 38 39 344 9591 2095 200 125 735 1493 1099 1379 16962 42 1759 325 36 44 61 16 138 178 502 12,21% 18,34% 15,51% 18,00% 35,20% 8,30% 1,07% 12,56% 12,91% 2,96% 302 7832 1770 164 81 674 1477 961 1201 16460
86
Tabel 3.5 Spesifikasi dan Atribut NASA MDP repository (D'') Nama Atribut
Miscellaneous
McCabe Attributes
Halstead Attributes
LOC Counts
LOC_BLANK LOC_CODE_AND_COMMENT LOC_COMMENTS LOC_EXECUTABLE LOC_TOTAL NUMBER_OF_LINES HALSTEAD_CONTENT HALSTEAD_DIFFICULTY HALSTEAD_EFFORT HALSTEAD_ERROR_EST HALSTEAD_LENGTH HALSTEAD_LEVEL HALSTEAD_PROG_TIME HALSTEAD_VOLUME NUM_OPERANDS NUM_OPERATORS NUM_UNIQUE_OPERANDS NUM_UNIQUE_OPERATORS CYCLOMATIC_COMPLEXITY CYCLOMATIC_DENSITY DESIGN_COMPLEXITY ESSENTIAL_COMPLEXITY BRANCH_COUNT CALL_PAIRS CONDITION_COUNT DECISION_COUNT DECISION_DENSITY DESIGN_DENSITY EDGE_COUNT ESSENTIAL_DENSITY GLOBAL_DATA_COMPLEXITY GLOBAL_DATA_DENSITY MAINTENANCE_SEVERITY MODIFIED_CONDITION_COUNT MULTIPLE_CONDITION_COUNT NODE_COUNT NORMALIZED_CYLOMATIC_COMPLEXITY PARAMETER_COUNT PERCENT_COMMENTS PATHOLOGICAL_COMPLEXITY Defective Jumlah attribut Jumlah Modul Jumlah modul yang cacat Presentase modul yang cacat Jumlah modul yang tidak cacat
CM1
JM1
KC1
NASA Dataset Repository (D'') KC3 MC2 PC1 PC2 PC3
PC4
PC5
38 22 22 40 40 38 37 38 38 39 327 7720 1162 194 124 679 722 1053 1270 1694 42 1612 294 36 44 55 16 130 176 458 12,84% 20,88% 25,30% 18,56% 35,48% 8,10% 2,22% 12,35% 13,86% 27,04% 285 6108 868 158 80 624 706 923 1094 1236
87
Tabel 3.6 Spesifikasi dan Atribut PROMISE repository (D') Promise D' Dataset Repository CM1 JM1 KC1 PC1 McCabe's line count of code loc McCabe "cyclomatic complexity" v(g) McCabe "essential complexity" ev(g) McCabe "design complexity" iv(g) Halstead total operators + operands n Halstead "volume" v Halstead "program length" l Halstead "difficulty" d Halstead "intelligence" i Halstead "effort" e Halstead "error" b Halstead's time estimator t Halstead's line count loCode Halstead's count of lines of comments loComment Halstead's count of blank lines loBlank Count of code and comment lines locCodeAndComment unique operators uniq_Op unique operands uniq_Opnd total operators total_Op total operands total_Opnd Count of the flow graph branchCount Defective Jumlah attribut 21 22 22 22 Jumlah Modul 495 9591 2095 1083 Jumlah modul yang cacat 48 1759 325 72 Presentase modul yang cacat 9,70% 18,34% 15,51% 6,65%
Miscellaneous
Halstead Attributes
McCabe Attributes
Nama Atribut
88
Tabel 3.7 Spesifikasi dan Atribut PROMISE repository (D') (Lanjutan) Promise D' Dataset Repository KC3 MC2 PC2 PC3 PC4 PC5 LOC_BLANK LOC_CODE_AND_COMMENT LOC_COMMENTS LOC_EXECUTABLE LOC_TOTAL NUMBER_OF_LINES HALSTEAD_CONTENT HALSTEAD_DIFFICULTY HALSTEAD_EFFORT HALSTEAD_ERROR_EST HALSTEAD_LENGTH HALSTEAD_LEVEL HALSTEAD_PROG_TIME HALSTEAD_VOLUME NUM_OPERANDS NUM_OPERATORS NUM_UNIQUE_OPERANDS NUM_UNIQUE_OPERATORS CYCLOMATIC_COMPLEXITY CYCLOMATIC_DENSITY DESIGN_COMPLEXITY ESSENTIAL_COMPLEXITY BRANCH_COUNT CALL_PAIRS CONDITION_COUNT DECISION_COUNT DECISION_DENSITY DESIGN_DENSITY EDGE_COUNT ESSENTIAL_DENSITY GLOBAL_DATA_COMPLEXITY GLOBAL_DATA_DENSITY MAINTENANCE_SEVERITY MODIFIED_CONDITION_COUNT MULTIPLE_CONDITION_COUNT NODE_COUNT NORMALIZED_CYLOMATIC_COMPLEXITY PARAMETER_COUNT PERCENT_COMMENTS Defective Jumlah attribut 40 40 37 38 38 39 Jumlah Modul 458 159 5356 1535 1379 16962 Jumlah modul yang cacat 43 52 23 158 178 502 Presentase modul yang cacat 9,39% 32,70% 0,43% 10,29% 12,91% 2,96% Miscellaneous
McCabe Attributes
Halstead Attributes
LOC Counts
Nama Atribut
89
Tabel 3.8 Spesifikasi dan Atribut PROMISE repository (D'') Nama Atribut
Miscellaneous
Halstead Attributes
McCabe Attributes
McCabe's line count of code McCabe "cyclomatic complexity" McCabe "essential complexity" McCabe "design complexity" Halstead total operators + operands Halstead "volume" Halstead "program length" Halstead "difficulty" Halstead "intelligence" Halstead "effort" Halstead "error" Halstead's time estimator Halstead's line count Halstead's count of lines of comments Halstead's count of blank lines Count of code and comment lines unique operators unique operands total operators total operands Count of the flow graph Defective Jumlah attribut Jumlah Modul Jumlah modul yang cacat Presentase modul yang cacat
Promise D'' Dataset Repository CM1 JM1 KC1 PC1 loc v(g) ev(g) iv(g) n v l d i e b t loCode loComment loBlank locCodeAndComment uniq_Op uniq_Opnd total_Op total_Opnd branchCount 21 22 22 22 437 7720 1162 919 46 1612 294 60 10,53% 20,88% 25,30% 6,53%
90
Tabel 3.9 Spesifikasi dan Atribut PROMISE repository (D'') (Lanjutan) Nama Atribut
Miscellaneous
McCabe Attributes
Halstead Attributes
LOC Counts
LOC_BLANK LOC_CODE_AND_COMMENT LOC_COMMENTS LOC_EXECUTABLE LOC_TOTAL NUMBER_OF_LINES HALSTEAD_CONTENT HALSTEAD_DIFFICULTY HALSTEAD_EFFORT HALSTEAD_ERROR_EST HALSTEAD_LENGTH HALSTEAD_LEVEL HALSTEAD_PROG_TIME HALSTEAD_VOLUME NUM_OPERANDS NUM_OPERATORS NUM_UNIQUE_OPERANDS NUM_UNIQUE_OPERATORS CYCLOMATIC_COMPLEXITY CYCLOMATIC_DENSITY DESIGN_COMPLEXITY ESSENTIAL_COMPLEXITY BRANCH_COUNT CALL_PAIRS CONDITION_COUNT DECISION_COUNT DECISION_DENSITY DESIGN_DENSITY EDGE_COUNT ESSENTIAL_DENSITY GLOBAL_DATA_COMPLEXITY GLOBAL_DATA_DENSITY MAINTENANCE_SEVERITY MODIFIED_CONDITION_COUNT MULTIPLE_CONDITION_COUNT NODE_COUNT NORMALIZED_CYLOMATIC_COMPLEXITY PARAMETER_COUNT PERCENT_COMMENTS Defective Jumlah attribut Jumlah Modul Jumlah modul yang cacat Presentase modul yang cacat
3.3
Promise D'' Dataset Repository KC3 MC2 PC2 PC3 PC4 PC5 40 40 37 38 38 39 324 155 1362 1409 1270 1694 42 51 21 148 176 458 12,96% 32,90% 1,54% 10,50% 13,86% 27,04%
Perancangan Penelitian Pada penelitian ini dilakukan dengan mengusulkan model, mengembangkan
aplikasi untuk mengimplementasikan model yang diusulkan, menerapkan pada
91
data yang digunakan, dan mengukur kinerjanya. Perangkat lunak yang digunakan untuk
mengembangkan
aplikasi
adalah
IDE
(Integrated
Development
Environment) NetBeans menggunakan bahasa Java.
3.3.1
Model yang Diusulkan Untuk mencari solusi masalah ketidakseimbangan kelas pada dataset
software metrics, diusulkan model dengan pendekatan level data dan level algoritma. Perancangan model yang diusulkan meliputi perancangan algoritma pendekatan level data (ROS, RUS, dan FSMOTE), pendekatan level algoritma (AdaBoost, dan Bagging), dan algoritma pengklasifikasi (Naïve Bayes). Perancangan algoritma ditunjukkan melalui flowchart pada Gambar 3.2.
92
Mulai Pilih dataset, pendekatan level data, pendekatan level algoritma, dan k-fold cross validation Lakukan standardisasi/normalisasi i=1
i <= k
Tidak
Ya
Hitung kinerja model pemrediksi cacat software
Bagi dataset menjadi k bagian, data ke-i jadikan sebagai data testing, sisanya sebagai data training
Level data = ROS Tidak
Ya
Lakukan resampling terhadap data training dengan algoritma ROS
Level data = RUS Tidak
Selesai
Ya
Lakukan resampling terhadap data training dengan algoritma RUS
Level data = FSMOTE
Ya
Lakukan resampling terhadap data training dengan algoritma FSMOTE Tidak
Level Algoritma = AdaBoost Tidak
Ya
Lakukan training terhadap model ensemble AdaBoost berbasis Naϊve Bayes
Level Algoritma = Bagging
Ya
Lakukan training terhadap model ensemble Bagging berbasis Naϊve Bayes Tidak
Lakukan training terhadap model Naϊve Bayes
Lakukan pengujian terhadap model yang telah dilatih i++
Gambar 3.2 Flowchart Model yang Diusulkan
93
Gambar 3.3 menggambarkan algoritma model yang diusulkan pada penelitian ini. Dataset dibagi menjadi X sesuai nilai validasi (X-Fold Cross Validation), satu bagian (1/X) digunakan sebagai data uji (testing), sisanya digunakan sebagai data latih (training). Kemudian data latih diproses sesuai dengan pendekatan tingkat data yang dipilih, hasilnya digunakan untuk melatih algoritma belajar (pendekatan level algoritma) yang dipilih. Selanjutnya algoritma yang sudah dilatih diuji dengan data uji untuk melakukan validasi. Hasil validasi digunakan untuk mengukur kinerja masing-masing model, dan dilakukan perbandingan untuk mencari model yang memiliki kinerja terbaik menggunakan analisa statistik dan uji post hoc.
Gambar 3.3 Kerangka Kerja Model yang Diusulkan
94
3.3.2
Class Diagram Aplikasi prediksi cacat software dikembangkan menggunakan teknik
pemrograman berorientasi objek dan arsitektur MVC (Model View Controller). Source code dibagi dalam empat paket, yaitu softwaredefectprediction, model, view, dan controller. Hubungan antar paket dan kelas digambarkan menggunakan class diagram. Gambar 3.4 menggambarkan class diagram utama, yang menunjukkan hubungan seluruh paket dan kelas. Kemudian detail dari masingmasing paket ditunjukkan pada Gambar 3.5 untuk paket model, Gambar 3.6 untuk paket view, Gambar 3.7 untuk paket controller, dan Gambar 3.8 untuk paket softwaredefectprediction.
Gambar 3.4 Class Diagram Aplikasi Prediksi Cacat Software
95
class model
AdaBoostBasedNaiv eBayesClassifier
Attribute + + + +
name: String type: String min: double max: double
+ +
name: String -label count: int
Label
-
labelName: String ([]) classifier: Classifier ([]) {readOnly} alfa: double ([]) {readOnly}
+ + +
AdaBoostBasedNaiveBayesClassifier(int, ArrayList
, ArrayList) initializeWeights(ArrayList) : Map generateSamples(Map, ArrayList) : ArrayList calcErrorRate(Classifier, ArrayList, Map, boolean[]) : double classify(ArrayList) : String getLabelName() : String[] -classifier
Naiv eBayesClassifier Statistic + + + + +
sum: double min: double max: double variant: double count: int
-
attributeName: ArrayList<String> labelName: String ([]) label: Label ([]) mean: ArrayList standardDeviation: ArrayList
+ + +
NaiveBayesClassifier(ArrayList, ArrayList) classify(ArrayList) : String caculate(double, double, double) : double getLabelName() : String[]
JLabel
«interface» Classifier + +
classify(ArrayList) : String getLabelName() : String[]
-ensembleClassifier
BaggingBasedNaiv eBayesClassifier
ConfussionMatrixTable -
truePositiveValue: String trueNegativeValue: String falsePositiveValue: String falseNegativeValue: String sensitivityValue: String specificityValue: String positivePredictiveValue: String negativePredictiveValue: String
+ + + + + + + + + + + + + + + + + +
ConfussionMatrixTable() getTruePositiveValue() : String setTruePositiveValue(String) : void getTrueNegativeValue() : String setTrueNegativeValue(String) : void getFalsePositiveValue() : String setFalsePositiveValue(String) : void getFalseNegativeValue() : String setFalseNegativeValue(String) : void getSensitivityValue() : String setSensitivityValue(String) : void getSpecificityValue() : String setSpecificityValue(String) : void getPositivePredictiveValue() : String setPositivePredictiveValue(String) : void getNegativePredictiveValue() : String setNegativePredictiveValue(String) : void updateTable() : void
-
labelName: String ([]) ensembleClassifier: Classifier ([]) {readOnly}
+ + +
BaggingBasedNaiveBayesClassifier(int, ArrayList, ArrayList) classify(ArrayList) : String getLabelName() : String[]
RenderTable
ValidationResult
+ + +
LEFT: int = 0 {readOnly} CENTER: int = 1 {readOnly} RIGHT: int = 2 {readOnly}
+
setAlign(int) : DefaultTableCellRenderer DataSet
-
fileName: String attributList: ArrayList dataList: ArrayList errorMessage: String
+ + + + +
setFileName(String) : void getAttributList() : ArrayList getDataList() : ArrayList getErrorMessage() : String readData() : boolean
Validation -
result: ValidationResult
+ +
getResult() : ValidationResult crossValidation(int, int, int, int, ArrayList, ArrayList) : void
Processing + +
DATA_PREPROCESSING: String ([]) = {"None","Random... {readOnly} ALGORITHM: String ([]) = {"Naive Bayes",... {readOnly}
+ +
data(ArrayList, int, int) : ArrayList algorithm(int, int, ArrayList, ArrayList) : Classifier JLabel Ev aluationTable
-
columnTitle: String ([]) = {"Data Level
+ + + + + + + + +
EvaluationTable() getColumnTitle() : String[] setRowTitle1(String[]) : void getRowTitle1() : String[] setRowTitle2(String[]) : void getRowTitle2() : String[] setData(String[][][]) : void getData() : String[] updateTable() : void
+ + + + -result + + + + + + + + + + + + + + + + + + + +
truePositive: int trueNegative: int falsePositive: int falseNegative: int accuracy: double sensitivity: double specificity: double positivePredictiveValue: double negativePredictiveValue: double fMeasureValue: double gMeanValue: double aucValue: double getTruePositive() : int setTruePositive(int) : void getTrueNegative() : int setTrueNegative(int) : void getFalsePositive() : int setFalsePositive(int) : void getFalseNegative() : int setFalseNegative(int) : void getAccuracy() : double setAccuracy(double) : void getSensitivity() : double setSensitivity(double) : void getSpecificity() : double setSpecificity(double) : void getPositivePredictiveValue() : double setPositivePredictiveValue(double) : void getNegativePredictiveValue() : double setNegativePredictiveValue(double) : void getFMeasureValue() : double setFMeasureValue(double) : void getGMeanValue() : double setGMeanValue(double) : void getAucValue() : double setAucValue(double) : void
Sampling + + + + + + -
sampleWithReplacement(Random, ArrayList, int) : ArrayList randomOverSampling(ArrayList) : ArrayList randomUnderSampling(ArrayList) : ArrayList getMinoritySamples(ArrayList) : ArrayList knn(ArrayList, ArrayList, int) : ArrayList fsmote(ArrayList, int, int) : ArrayList generateSyntheticSamples(int, ArrayList, ArrayList, int) : ArrayList caculate(double, double, double) : double
Gambar 3.5 Class Diagram Paket Model
96
class v iew javax.swing.JFrame
javax.swing.JInternalFrame
MainForm
AboutForm
+ + + ~ -
aboutForm: AboutForm performanceForm: PerformanceForm predictionForm: PredictionForm lastDirectory: String aboutButton: javax.swing.JButton desktopPane: javax.swing.JDesktopPane exitButton: javax.swing.JButton jLabel1: javax.swing.JLabel jPanel1: javax.swing.JPanel jPanel2: javax.swing.JPanel naiveBayesButton: javax.swing.JButton predictionButton: javax.swing.JButton
+ +
MainForm() initComponents() : void setFrameBounds(double, double, boolean) : void naiveBayesButtonActionPerformed(java.awt.event.ActionEvent) : void desktopPaneComponentResized(java.awt.event.ComponentEvent) : void aboutButtonActionPerformed(java.awt.event.ActionEvent) : void predictionButtonActionPerformed(java.awt.event.ActionEvent) : void exitButtonActionPerformed(java.awt.event.ActionEvent) : void formWindowOpened(java.awt.event.WindowEvent) : void main(String[]) : void
+aboutForm
-
jLabel1: javax.swing.JLabel jLabel2: javax.swing.JLabel jLabel3: javax.swing.JLabel jLabel4: javax.swing.JLabel jLabel5: javax.swing.JLabel jLabel6: javax.swing.JLabel jLabel7: javax.swing.JLabel jLabel8: javax.swing.JLabel jPanel1: javax.swing.JPanel logoPanel: javax.swing.JPanel
+ -
AboutForm() initComponents() : void formComponentMoved(java.awt.event.ComponentEvent) : void javax.swing.JInternalFrame PredictionForm
-
+predictionForm +performanceForm javax.swing.JInternalFrame PerformanceForm dataController: DataController = new DataController() {readOnly} performanceController: PerformanceController = new Performance... {readOnly} confussionMatrixTable: ConfussionMatrixTable {readOnly} trainingFileTextFieldOldValue: String = "" accuracyTextField: javax.swing.JTextField algorithmLevelApproachComboBox: javax.swing.JComboBox allPerformanceButton: javax.swing.JButton aucTextField: javax.swing.JTextField browseButton: javax.swing.JButton + crossValidationTextField: javax.swing.JTextField dataLevelApproachComboBox: javax.swing.JComboBox dataViewButton: javax.swing.JButton + fMeasureTextField: javax.swing.JTextField + gMeanTextField: javax.swing.JTextField + jLabel10: javax.swing.JLabel + jLabel11: javax.swing.JLabel jLabel12: javax.swing.JLabel jLabel13: javax.swing.JLabel jLabel2: javax.swing.JLabel jLabel3: javax.swing.JLabel jLabel4: javax.swing.JLabel jLabel5: javax.swing.JLabel jLabel6: javax.swing.JLabel jLabel7: javax.swing.JLabel jLabel8: javax.swing.JLabel jLabel9: javax.swing.JLabel jPanel1: javax.swing.JPanel jPanel2: javax.swing.JPanel jPanel3: javax.swing.JPanel jPanel4: javax.swing.JPanel jPanel5: javax.swing.JPanel jPanel6: javax.swing.JPanel metaDataViewButton: javax.swing.JButton negativePredictiveValueTextField: javax.swing.JTextField performanceButton: javax.swing.JButton positivePredictiveValueTextField: javax.swing.JTextField sensitivityTextField: javax.swing.JTextField specificityTextField: javax.swing.JTextField trainingFileTextField: javax.swing.JTextField
+ + + + + + + + + + -
PerformanceForm() initComponents() : void setItemProcessing() : void setConfusionMatrixValue(String, String, String, String, String, String, String, String) : void setAccuracyTextField(String) : void setNegativePredictiveValueTextField(String) : void setPositivePredictiveValueTextField(String) : void setSensitivityTextField(String) : void setSpecificityTextField(String) : void setAucTextField(String) : void setFMeasureTextField(String) : void setGMeanTextField(String) : void clearForm() : void formComponentMoved(java.awt.event.ComponentEvent) : void browseButtonActionPerformed(java.awt.event.ActionEvent) : void dataViewButtonActionPerformed(java.awt.event.ActionEvent) : void metaDataViewButtonActionPerformed(java.awt.event.ActionEvent) : void performanceButtonActionPerformed(java.awt.event.ActionEvent) : void trainingFileTextFieldCaretUpdate(javax.swing.event.CaretEvent) : void allPerformanceButtonActionPerformed(java.awt.event.ActionEvent) : void
predictionController: PredictionController = new PredictionC... {readOnly} attributeTableModel: DefaultTableModel {readOnly} trainingFileTextFieldOldValue: String = "" algorithmLevelApproachComboBox: javax.swing.JComboBox attributeTable: javax.swing.JTable browseButton: javax.swing.JButton dataLevelApproachComboBox: javax.swing.JComboBox defectProneLabel: javax.swing.JLabel jLabel8: javax.swing.JLabel jLabel9: javax.swing.JLabel jPanel1: javax.swing.JPanel jPanel2: javax.swing.JPanel jPanel3: javax.swing.JPanel jPanel5: javax.swing.JPanel jPanel6: javax.swing.JPanel jScrollPane1: javax.swing.JScrollPane predictionButton: javax.swing.JButton trainingFileTextField: javax.swing.JTextField PredictionForm() initComponents() : void setItemProcessing() : void clearAttributeTable() : void addAttributeTable(String, String) : void getPredictionData() : ArrayList setDefectProneLabel(String) : void formComponentMoved(java.awt.event.ComponentEvent) : void predictionButtonActionPerformed(java.awt.event.ActionEvent) : void attributeTableKeyPressed(java.awt.event.KeyEvent) : void attributeTablePropertyChange(java.beans.PropertyChangeEvent) : void trainingFileTextFieldCaretUpdate(javax.swing.event.CaretEvent) : void browseButtonActionPerformed(java.awt.event.ActionEvent) : void
javax.swing.JDialog DataView Form -
dataViewTableModel: DefaultTableModel {readOnly} dataViewTable: javax.swing.JTable jPanel1: javax.swing.JPanel jScrollPane1: javax.swing.JScrollPane
+ + + + +
DataViewForm(java.awt.Frame, boolean) initComponents() : void setFrameBounds(double, boolean) : void addAttribut(Object) : void setAlignment(int, int, int) : void appendData(Object[]) : void main(String[]) : void
javax.swing.JDialog Ev aluationForm -
evaluationTable: EvaluationTable {readOnly} evaluationPanel: javax.swing.JPanel evaluationPopupMenu: javax.swing.JPopupMenu evaluationScrollPane: javax.swing.JScrollPane saveMenuItem: javax.swing.JMenuItem
+ + + + + + +
EvaluationForm(java.awt.Frame, boolean) initComponents() : void saveMenuItemActionPerformed(java.awt.event.ActionEvent) : void setRowHeader1(String[]) : void setRowHeader2(String[]) : void setData(String[][][]) : void showTable() : void setFormSize(int, int) : void main(String[]) : void
Gambar 3.6 Class Diagram Paket View
97
class controller
DataController
PredictionController
-
dataSet: DataSet = new DataSet() {readOnly} dataViewForm: DataViewForm
+ +
showDataView(String) : void showMetaDataView(String) : void
+ +
setFileTraining(String) : void prediction(String, int, int, int) : void
PerformanceController -
dataSet: DataSet = new DataSet() {readOnly} evaluationForm: EvaluationForm = new EvaluationF... {readOnly}
+ +
performance(String, int, int, int, int) : void allPerformance(String, int, int, int, int) : void
Gambar 3.7 Class Diagram Paket Controller
class softw aredefectprediction
Softw areDefectPrediction -
formUtama: MainForm = new MainForm() {readOnly}
+
main(String[]) : void
Gambar 3.8 Class Diagram Paket Softwaredefectprediction
3.3.3
Antarmuka Pengguna Antarmuka
pengguna
(user
interface)
dari
aplikasi
yang
telah
dikembangkan untuk mengukur kinerja model yang diusulkan ditunjukkan pada Gambar 3.9. Di bagian atas ada tombol Browse untuk memilih file pelatihan (dataset). Di bawahnya ada beberapa pilihan pengolahan data (pendekatan level data: None, ROS, RUS, FSMOTE), pilihan pendekatan level algoritma (Naïve Bayes, AdaBoost Based on Naïve Bayes, Bagging Based on Naïve Bayes), dan validasi menggunakan algoritma k-fold cross validation. Di sebelah kanannya ada beberapa tombol, yaitu tombol Data View digunakan untuk menampilkan isi dataset, tombol Metadata View digunakan untuk menampilkan metadata dari dataset, tombol Performance digunakan untuk menampilkan kinerja model yang dipilih, sedangkan tombol All Performance digunakan untuk menampilkan kinerja semua kombinasi pendekatan level data dan pendekatan level algoritma. 98
Hasil pengukuran kinerja ditampilkan di bagian bawah menggunakan tabel Confusion Matrix, dan hasil penghitungan nilai akurasi, sensitivitas (recall), specificity (ketegasan), AUC, precision atau disebut Positive Predictive Value (PPV), Negative Predictive Value (NPV), F-Measure, dan G-Mean.
Gambar 3.9 Antarmuka Aplikasi untuk Mengukur Kinerja Model
Eksperimen dilakukan dengan beberapa tahap untuk menguji model yang diusulkan menggunakan dataset dari NASA MDP repository dan PROMISE repository. Semua dataset diuji dengan model yang diusulkan menggunakan aplikasi yang telah dibuat. Validasi menggunakan 10-fold cross validation, hasilnya digunakan untuk mengukur kinerja model yang diusulkan. Contoh tampilan hasil pengukuran kinerja model ketika diklik tombol All Performance ditunjukkan pada Gambar 3.10.
99
Gambar 3.10 Antarmuka Hasil Pengukuran Kinerja Semua Model
3.3.4
Pengukuran Kinerja Pengukuran kinerja model dilakukan dengan dilakukan menggunakan
confusion matrix. Kinerja yang diukur termasuk akurasi secara umum, akurasi dalam memprediksi kelas minoritas, dan Area Under the ROC Curve (AUC). Confusion matrix diperoleh dari proses validasi menggunakan 10-fold cross validation, sehingga model yang terbentuk dapat langsung diuji dengan melakukan 10 kali pengujian. Kinerja model yang diperoleh digunakan untuk membandingkan antara model dasar dengan algoritma Naïve Bayes dengan model yang dibentuk menggunakan algoritma Naïve Bayes dengan pendekatan level data (ROS, RUS, dan FSMOTE) dan pendekatan level algoritma (AdaBoost, dan Bagging). Untuk melihat kualitas model yang dihasilkan, nilai AUC dapat dijadikan ukuran untuk melihat model yang terbentuk. Selain itu kurva ROC akan digunakan untuk menemukan nilai AUC, di mana nilai AUC digunakan untuk menentukan klasifikasi keakuratan pengujian diagnostik. Sebuah pedoman umum untuk mengklasifikasikan keakuratan pengujian diagnostik menggunakan AUC dapat dilihat pada sistem tradisional (Gorunescu, 2011, p. 325), disajikan pada Tabel 3.10.
100
Tabel 3.10 Klasifikasi Keakuratan Pengujian Diagnostik Nilai AUC 0.9 – 1
3.4
Klasifikasi Excellent classification
0.8 – 0.9
Good classification
0.7 – 0.8
Fair classification
0.6 – 0.7
Poor classification
0.5 – 0.6
Failure
Teknik Analisis Teknik analisis dilakukan dengan menggunakan uji statistik. Uji statistik
dilakukan untuk membandingkan kinerja semua model yang kembangkan termasuk model Naïve Bayes dengan pendekatan level data (ROS, RUS, dan FSMOTE) dan pendekatan level algoritma (AdaBoost, dan Bagging). Analisis ini ditujukan untuk mengetahui algoritma dan pendekatan mana yang terbaik untuk mengurangi pengaruh ketidakseimbangan kelas, sehingga keakuratan prediksi kelas minoritas dapat ditingkatkan. Ukuran kinerja yang akan dianalisis adalah akurasi, sensitivitas (TPrate), F-Measure, G-Mean, dan AUC. Hanya sedikit penelitian prediksi cacat software yang dilaporkan menggunakan kesimpulan statistik dalam menentukan signifikansi hasil penelitian (Lessmann, Baesens, Mues, & Pietsch, 2008, p. 487). Biasanya hanya dilakukan berdasarkan pengalaman dan percobaan tanpa menerapkan pengujian statistik secara formal. Hal ini dapat menyesatkan dan bertentangan dengan penelitian lain. Dalam literatur ada dua jenis uji statistik, yaitu uji parametrik dan uji nonparametrik (García, Fernández, Luengo, & Herrera, 2010, p. 2045). Uji parametrik yang dapat digunakan uji T (T-test) dan ANOVA (Analysis of Variance). Uji nonparametrik yang dapat digunakan uji tanda (sign test), uji peringkat bertanda Wilcoxon (Wilcoxon signed-rank test), uji Friedman (Friedman test), dan uji konkordansi (keselarasan) Kendall (Kendall's coefficient of concordance atau Kendall's W). Untuk melakukan uji statistik tergantung pada data yang digunakan. Untuk uji parametrik menggunakan data dengan distribusi normal, varians bersifat homogen, data bersifat ratio atau interval, nilai tengah
101
berupa rata-rata. Jika tidak memenuhi syarat untuk uji parametrik, sebaiknya menggunakan uji nonparametrik. Aturan secara umum, lebih baik menggunakan uji parametrik daripada nonparametrik, karena uji parametrik lebih deskriminatif dan kuat (Carver & Nash, 2012, p. 249). Tetapi jika tidak memenuhi syarat, maka disarankan menggunakan uji nonparametrik. Uji t dan ANOVA tidak cocok digunakan pada penelitian machine learning, karena hasil pengukuran kinerja model harus terdistribusi normal, untuk memastikan bentuk distribusinya minimal 30 data, tetapi hasil pengukuran kinerja machine learning sering tidak mencukupi (Demšar, 2006, pp. 6-10). Jika datanya mencukupi, uji parametrik harus lebih diutamakan dari pada uji nonparametrik karena memiliki kesalahan yang lebih rendah dan memiliki kekuatan yang lebih tinggi (García, Fernández, Luengo, & Herrera, 2010, p. 2045). Tetapi jika datanya tidak mencukupi, uji nonparametrik sebaiknya lebih diutamakan daripada parametrik. Secara keseluruhan, uji nonparametrik yang diberi nama uji peringkat bertanda Wilcoxon dan uji Friedman cocok untuk menguji model machine learning (Demšar, 2006, p. 27). Tetapi beberapa uji perbandingan harus digunakan jika ingin membentuk perbandingan statistik dari hasil eksperimen di antara berbagai algoritma (García, Fernández, Luengo, & Herrera, 2010, p. 2060). Untuk melakukan analisa digunakan pengujian statistik berdasarkan hasil pengukuran kinerja model. Untuk mempermudah analisa digunakan aplikasi SPSS versi 21 32 bit. Uji statistik yang digunakan adalah uji t sampel berpasangan (paired-samples t-test) satu sisi untuk sisi bawah, uji tanda sampel berpasangan (paired-samples sign test) satu sisi (one-tailed) untuk sisi bawah, uji peringkat bertanda Wilcoxon (Wilcoxon signed-rank test) satu sisi untuk sisi bawah, uji Friedman (Friedman test), dan uji konkordansi (keselarasan) Kendall (Kendall's coefficient of concordance atau Kendall's W).
3.4.1
Uji T (T Test) Uji t sampel berpasangan (paired-samples t-test) digunakan untuk
membandingkan selisih dua rata-rata (mean) dari dua sampel yang berpasangan dengan asumsi data terdistribusi normal. Uji T berpasangan biasanya digunakan untuk menguji hipotesis penelitian apakah hasil setelah perbaikan lebih baik dari hasil sebelum perbaikan (Verma, 2013, p. 191). Ada tiga bentuk uji t sampel
102
berpasangan, di mana penggunaannya tergantung pada persoalan yang akan diuji. Ketiga bentuk tersebut dan penentuan hipotesisnya adalah: a. Uji t sampel berpasangan (paired-samples t-test) satu sisi (one-tailed) untuk sisi bawah dengan hipotesis: 𝐻0 : 𝜇1 ≥ 𝜇2 𝐻1 : 𝜇1 < 𝜇2
atau
𝐻0 : 𝜇𝐷 ≥ 0 𝐻1 : 𝜇𝐷 < 0
Di mana 𝜇𝐷 = 𝜇1 − 𝜇2 b. Uji t sampel berpasangan (paired-samples t-test) satu sisi (one-tailed) untuk sisi atas dengan hipotesis: 𝐻0 : 𝜇1 ≤ 𝜇2 𝐻1 : 𝜇1 > 𝜇2
atau
𝐻0 : 𝜇𝐷 ≤ 0 𝐻1 : 𝜇𝐷 > 0
Di mana 𝜇𝐷 = 𝜇1 − 𝜇2 c. Uji t sampel berpasangan (paired-samples t-test) dua sisi (two-tailed) dengan hipotesis: 𝐻0 : 𝜇1 = 𝜇2 𝐻1 : 𝜇1 ≠ 𝜇2
atau
𝐻0 : 𝜇𝐷 = 0 𝐻1 : 𝜇𝐷 ≠ 0
Di mana 𝜇𝐷 = 𝜇1 − 𝜇2 Penentuan 𝜇1 dan 𝜇2 tidak ada aturan, jadi bebas untuk menetapkannya. Sedangkan hipotesis mana yang diterima, ditentukan berdasarkan nilai P-value (pada aplikasi SPSS digunakan istilah Significance dan disingkat Sig.). Ketentuan untuk menolak atau menerima hipotesis adalah: a. Jika P-value < ∝, maka 𝐻0 ditolak dan 𝐻1 diterima b. Jika P-value ≥ ∝, maka 𝐻0 diterima dan 𝐻1 ditolak Pada pengujian dua sisi (two-tailed) daerah/bagian kritis dibagi menjadi dua sisi, jika level signifikansinya sebesar ∝, maka masing-masing sisi sebesar ∝⁄2 (Verma, 2013, p. 183). Jika hipotesis alternatif menggunakan satu sisi (> atau <), sedangkan nilai yang ditampilkan untuk dua sisi, maka nilai p-value dibagi dua (Carver & Nash, 2012, p. 116).
103
3.4.2
Uji Tanda (Sign Test) Uji tanda (sign test) merupakan uji nonparametrik yang paling sederhana,
digunakan untuk membandingkan dua sampel berpasangan dengan skala ordinal. Prinsip dari uji tanda adalah menghitung selisih pasangan nilai data dari sampel pertama dengan sampel kedua. Jika jumlah selisih yang positif dan jumlah selisih yang negatif sama, maka hipotesis nol (H0) diterima, dan sampel pertama dan kedua dianggap sama. Untuk menentukan hipotesis yang akan ditetapkan tergantung pada persoalan yang akan dianalisa. Ada tiga bentuk hipotesis pada uji tanda, yaitu: a. Uji tanda sampel berpasangan (paired-samples sign test) satu sisi (onetailed) untuk sisi bawah dengan hipotesis: 𝐻0 : 𝜋 ≥ 0,5 𝐻1 : 𝜋 < 0,5 b. Uji tanda sampel berpasangan (paired-samples sign test) satu sisi (onetailed) untuk sisi atas dengan hipotesis: 𝐻0 : 𝜋 ≤ 0,5 𝐻1 : 𝜋 > 0,5 c. Uji tanda sampel berpasangan (paired-samples sign test) dua sisi (twotailed) dengan hipotesis: 𝐻0 : 𝜋 = 0,5 𝐻1 : 𝜋 ≠ 0,5 Di mana 𝜋 adalah proporsi
Hipotesis mana yang diterima ditentukan berdasarkan nilai P-value (pada aplikasi SPSS digunakan istilah Significance dan disingkat Sig.). Ketentuan untuk menolak atau menerima hipotesis adalah: a. Jika P-value < ∝, maka 𝐻0 ditolak dan 𝐻1 diterima b. Jika P-value ≥ ∝, maka 𝐻0 diterima dan 𝐻1 ditolak Pada pengujian dua sisi (two-tailed) daerah/bagian kritis dibagi menjadi dua sisi, jika level signifikansinya sebesar ∝, maka masing-masing sisi sebesar ∝⁄2
104
(Verma, 2013, p. 183). Jika hipotesis alternatif menggunakan satu sisi (> atau <), sedangkan nilai yang ditampilkan untuk dua sisi, maka nilai p-value dibagi dua (Carver & Nash, 2012, p. 116).
3.4.3
Uji Peringkat Bertanda Wilcoxon (Wilcoxon Signed Rank Test) Uji peringkat bertanda Wilcoxon (Wilcoxon signed-rank test) merupakan uji
statistik nonparametrik yang digunakan untuk membandingkan dua sampel berpasangan dengan skala interval tetapi tidak terdistribusi normal. Pada prinsipnya untuk menguji apakah kedua sampel berasal dari populasi yang sama. Jika berasal dari populasi yang sama, maka kedua sampel dan populasinya memiliki ciri-ciri yang relatif sama, misalnya nilai rata-rata, median, dan lainnya. Uji peringkat bertanda Wilcoxon merupakan versi nonparametrik dari uji t dua sampel berpasangan (paired samples t-test) (Carver & Nash, 2012, p. 252) untuk sampel yang tidak terdistribusi normal. Ada tiga bentuk penentuan hipotesis pada uji peringkat Wilcoxon yang penggunaannya tergantung pada persoalan yang dianalisa. Ketiga bentuk tersebut adalah: a. Uji peringkat bertanda Wilcoxon sampel berpasangan (paired-samples Wilcoxon signed-rank test) satu sisi (one-tailed) untuk sisi bawah dengan hipotesis: 𝐻0 : 𝜂1 ≥ 𝜂2 𝐻1 : 𝜂1 < 𝜂2 b. Uji peringkat bertanda Wilcoxon sampel berpasangan (paired-samples Wilcoxon signed-rank test) satu sisi (one-tailed) untuk sisi atas dengan hipotesis: 𝐻0 : 𝜂1 ≤ 𝜂2 𝐻1 : 𝜂1 > 𝜂2 c. Uji peringkat bertanda Wilcoxon sampel berpasangan (paired-samples Wilcoxon signed-rank test) dua sisi (two-tailed) dengan hipotesis: 𝐻0 : 𝜂1 = 𝜂2 𝐻1 : 𝜂1 ≠ 𝜂2 𝜂 dibaca ‘eta’ merupakan notasi untuk median 105
Penentuan 𝜂1 dan 𝜂2 tidak ada aturan, jadi bebas untuk menetapkannya. Sedangkan hipotesis mana yang diterima, ditentukan berdasarkan nilai P-value (pada aplikasi SPSS digunakan istilah Significance dan disingkat Sig.). Ketentuan untuk menolak atau menerima hipotesis adalah: a. Jika P-value < ∝, maka 𝐻0 ditolak dan 𝐻1 diterima b. Jika P-value ≥ ∝, maka 𝐻0 diterima dan 𝐻1 ditolak Pada pengujian dua sisi (two-tailed) daerah/bagian kritis dibagi menjadi dua sisi, jika level signifikansinya sebesar ∝, maka masing-masing sisi sebesar ∝⁄2 (Verma, 2013, p. 183). Jika hipotesis alternatif menggunakan satu sisi (> atau <), sedangkan nilai yang ditampilkan untuk dua sisi, maka nilai p-value dibagi dua (Carver & Nash, 2012, p. 116).
3.4.4
Uji Friedman (Friedman Test) Uji Friedman (Friedman test) merupakan uji statistik nonparametrik, juga
disebut Anova dua arah berdasarkan peringkat (two-way Anova by ranks). Uji Friedman digunakan untuk membandingkan n-sampel yang saling berhubungan dan berasal dari blok eksperimen secara acak (randomized block experiment) dengan skala ordinal atau interval tetapi tidak terdistribusi normal. Hipotesis pada uji Friedman mengikuti bentuk berikut ini: 𝐻0 : 𝜂1 = 𝜂2 = 𝜂3 = ⋯ = 𝜂𝑛 𝐻1 : 𝑡𝑖𝑑𝑎𝑘 𝑠𝑒𝑚𝑢𝑎 𝑚𝑒𝑑𝑖𝑎𝑛 ( 𝜂𝑖 , 𝑖 = 1 … 𝑛 )𝑏𝑒𝑟𝑛𝑖𝑙𝑎𝑖 𝑠𝑎𝑚𝑎 𝑏𝑒𝑠𝑎𝑟 𝜂 dibaca ‘eta‘ merupakan simbol median
Ketentuan untuk menerima atau menolak hipotesis didasarkan pada nilai Pvalue (pada aplikasi SPSS digunakan istilah Significance dan disingkat Sig.). Jika P-value < ∝, maka 𝐻0 ditolak dan 𝐻1 diterima. Sedangkan jika P-value ≥ ∝, maka 𝐻0 diterima dan 𝐻1 ditolak. 3.4.5
Uji Konkordansi Kendall Uji konkordansi (keselarasan) Kendall (Kendall's coefficient of concordance
atau Kendall's W) adalah uji statistik nonparametrik untuk mengetahui apakah n-
106
sampel yang berhubungan memiliki keselarasan nilai. Keselarasan diberi nilai seperti halnya korelasi, yaitu antara 0 sampai 1. Jika bernilai 0, maka sama sekali tidak selaras antara satu dengan yang lainnya. Jika bernilai 1, maka sangat selaras antara satu dengan yang lainnya. Ketentuan untuk menerima atau menolak hipotesis didasarkan pada nilai Pvalue (pada aplikasi SPSS digunakan istilah Significance dan disingkat Sig.). Jika P-value < ∝, maka 𝐻0 ditolak dan 𝐻1 diterima. Sedangkan jika P-value ≥ ∝, maka 𝐻0 diterima dan 𝐻1 ditolak. Ketentuan hipotesisnya adalah: H0: Sampel memiliki nilai yang selaras atau sama H1: Sampel tidak memiliki nilai yang selaras atau sama
3.4.6
Uji Post Hoc Pada uji Friedman mungkin telah dinyatakan bahwa ada perbedaan
signifikan pada model yang diuji, tetapi tidak menunjukkan model mana yang memiliki perbedaan signifikan. Untuk mengidentifikasi model mana yang berbeda secara signifikan, maka dapat digunakan uji post hoc (Corder & Foreman, 2009, p. 80). Uji post hoc dapat membantu peneliti dalam upaya memahami pola yang benar dari rata-rata populasi (Huck, 2012, p. 258). Uji post hoc dilakukan dengan membuat tabel perbandingan, atau visualisasi grafis. Jika hipotesis nol (H0) ditolak, maka dapat dilanjutkan dengan melakukan uji post hoc (Demšar, 2006, p. 11). Untuk menunjukkan perbedaan secara signifikan, maka digunakan Nemenyi post hoc. Nemenyi post hoc digunakan untuk menyatakan bahwa dua atau lebih pengklasifikasi memiliki kinerja yang berbeda secara signifikan jika rata-rata peringkatnya memiliki perbedaan setidaknya sebesar Critical Different (CD), sesuai persamaan 3.4.
𝐾(𝐾+1)
𝐶𝐷 = 𝑞∝,∞,𝐾 √
12𝐷
(3. 4)
Pada persamaan 3.4, nilai 𝑞∝,∞,𝐾 didasarkan pada studentized range statistic untuk derajat kebebasan (degree of freedom) bernilai tak terhingga (infinity). Sedangkan K adalah jumlah pengklasifikasi, dan D adalah jumlah dataset. Hasil dari uji Friedman dan Nemenyi post hoc selanjutnya disajikan dalam bentuk grafis menggunakan diagram Demsar (Demšar, 2006, p. 16) yang telah
107
dimodifikasi (Lessmann, Baesens, Mues, & Pietsch, 2008, p. 491). Sehingga perbedaan antarmodel dapat sajikan dalam bentuk visualisasi grafis.
108
BAB IV HASIL DAN PEMBAHASAN
4.1
Hasil Pada subbab hasil akan dikemukakan hasil pengembangan aplikasi dan hasil
dari pengukuran kinerja model. Pada bagian hasil pengembangan aplikasi akan dibahas pengujian aplikasi untuk menunjukkan bahwa aplikasi yang dibuat telah bekerja sesuai yang diharapkan. Sedangkan pada bagian hasil pengukuran kinerja model ditunjukkan hasil pengukuran kinerja model prediksi cacat software pada aplikasi yang telah dibuat menggunakan dataset NASA yang telah ditransformasi (D''). Pada subbab berikutnya akan dibahas cara pengolahan hasil pengukuran dan intepretasinya untuk menjawab rumusan masalah.
4.1.1
Hasil Pengembangan Aplikasi Untuk menguji aplikasi yang telah dibuat, maka dibuat penghitungan secara
manual terlebih dahulu, kemudian hasilnya dibandingkan dengan hasil penghitungan aplikasi. Dataset yang digunakan untuk menguji aplikasi ditunjukkan pada Tabel 4.1.
109
Tabel 4.1
N Y Y N N N N N N Y N N N N N Y N N N N
6 15 27 7 51 3 13 22 16 4 23 23 40 23 8 19 6 134 9 164
9 7 9 3 25 5 9 29 9 3 13 11 9 9 3 3 7 60 8 110
2 3 1 2 13 2 5 0 2 0 3 0 4 6 1 1 0 9 2 26
1 1 4 0 0 0 12 8 11 2 10 10 2 3 6 2 6 63 4 37
0 19 22 0 14 0 16 35 28 4 17 17 15 20 5 0 0 31 5 191
16 12 16 4 48 8 16 44 12 4 24 24 16 16 4 4 10 38 8 128
CYCLOMATIC_DENSITY
CYCLOMATIC_COMPLEXITY
CONDITION_COUNT
LOC_COMMENTS
LOC_CODE_AND_COMMENT
CALL_PAIRS
BRANCH_COUNT
LOC_BLANK
Defective
Dataset untuk Menguji Aplikasi
5 4 5 2 13 3 5 15 5 2 7 7 5 5 2 2 4 41 5 70
0,2 0,13 0,15 0,17 0,12 0,2 0,14 0,28 0,11 0,17 0,21 0,21 0,15 0,19 0,11 0,06 0,15 0,17 0,28 0,18
Sebelum dilakukan penghitungan, dataset distandardisasi terlebih dahulu, sehingga nilainya menjadi seperti Tabel 4.2. Standardisasi (normalisasi) menggunakan teknik min-max dengan nilai minimal -1 dan maksimal 1. Teknik validasi yang digunakan adalah 10-fold cross validation, sehingga dataset dibagi menjadi 10, kemudian diambil satu bagian untuk dijadikan sebagai data uji dan yang lainnya dijadikan data latih. Pengambilan data uji dilakukan secara berurut mulai dari bagian pertama sampai bagian kesepuluh.
110
Tabel 4.2
LOC_CODE_AND_COMMENT
LOC_COMMENTS
CONDITION_COUNT
CYCLOMATIC_COMPLEXITY
CYCLOMATIC_DENSITY
N -0,96273292 -0,88785047 Y -0,85093168 -0,92523364 Y -0,70186335 -0,88785047 2 N -0,95031056 -1 N -0,40372671 -0,58878505 3 N -1 -0,96261682 N -0,8757764 -0,88785047 4 N -0,76397516 -0,51401869 N -0,83850932 -0,88785047 5 Y -0,98757764 -1 N -0,7515528 -0,81308411 6 N -0,7515528 -0,85046729 N -0,54037267 -0,88785047 7 N -0,7515528 -0,88785047 N -0,9378882 -1 8 Y -0,80124224 -1 N -0,96273292 -0,92523364 9 N 0,627329193 0,065420561 N -0,92546584 -0,90654206 10 N 1 1 1
CALL_PAIRS
BRANCH_COUNT
LOC_BLANK
Defective
Split
Dataset untuk Menguji Aplikasi Setelah Standardisasi
-0,84615385 -0,76923077 -0,92307692 -0,84615385 0 -0,84615385 -0,61538462 -1 -0,84615385 -1 -0,76923077 -1 -0,69230769 -0,53846154 -0,92307692 -0,92307692 -1 -0,30769231 -0,84615385 1
-0,96825397 -0,96825397 -0,87301587 -1 -1 -1 -0,61904762 -0,74603175 -0,65079365 -0,93650794 -0,68253968 -0,68253968 -0,93650794 -0,9047619 -0,80952381 -0,93650794 -0,80952381 1 -0,87301587 0,174603175
-1 -0,80104712 -0,76963351 -1 -0,85340314 -1 -0,83246073 -0,63350785 -0,70680628 -0,95811518 -0,82198953 -0,82198953 -0,84293194 -0,79057592 -0,94764398 -1 -1 -0,67539267 -0,94764398 1
-0,80645161 -0,87096774 -0,80645161 -1 -0,29032258 -0,93548387 -0,80645161 -0,35483871 -0,87096774 -1 -0,67741935 -0,67741935 -0,80645161 -0,80645161 -1 -1 -0,90322581 -0,4516129 -0,93548387 1
-0,91176471 -0,94117647 -0,91176471 -1 -0,67647059 -0,97058824 -0,91176471 -0,61764706 -0,91176471 -1 -0,85294118 -0,85294118 -0,91176471 -0,91176471 -1 -1 -0,94117647 0,147058824 -0,91176471 1
0,272727273 -0,36363636 -0,18181818 0 -0,45454545 0,272727273 -0,27272727 1 -0,54545455 0 0,363636364 0,363636364 -0,18181818 0,181818182 -0,54545455 -1 -0,18181818 0 1 0,090909091
Rumus pengklasifikasi (Naïve Bayes) ditunjukkan pada persamaan 4.1, maka yang dihitung terlebih dahulu adalah nilai rata-rata (𝜇) sesuai persamaan 4.2 dan standar deviasi (σ) sesuai persamaan 4.3 untuk setiap attribut. 𝑔(𝑥, 𝜇, σ) =
1 √2𝜋∙𝜎
𝑒
−
(𝑥−𝜇)2 2𝜎2
(4. 1)
Di mana: ∑𝑛 𝑖=1 𝑥𝑖
𝜇=
(4. 2)
𝑛
2 ∑𝑛 𝑖=1(𝑥𝑖 −𝜇)
𝜎= √
𝑛−1
111
(4. 3)
Setiap bagian (split) harus dilakukan pelatihan dan pengujian sesuai pembagian dataset. Di bawah ini akan dijelaskan proses penghitungan pada setiap tahapnya. A. Bagian (split) ke-1 sebagai data uji dan lainnya sebagai data latih Pertama dilakukan penghitungan probabilitas awal masing-masing kelas tanpa memandang bukti apapun. Selanjutnya dilakukan penghitungan mean (𝜇) dan standar deviasi (σ) untuk masing-masing kelas berdasarkan bukti pada setiap attribut. a. Probabilitas awal 3 = 0,166666666666667 18 15 𝑃(𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = = 0,833333333333333 18 𝑃(𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) =
b. Kelas cacat (defective) Setiap attribut dilakukan penghitungan sebagai berikut: Untuk atribut LOC_BLANK 𝜇= 𝜇=
𝜇=
∑𝑛𝑖=1 𝑥𝑖 𝑥1 + 𝑥2 + 𝑥3 = 𝑛 3
−0,701863354037267 + −0,987577639751553 + −0,801242236024845 3
−2,49068322981366 = −0,830227743271222 3
3
∑(𝑥𝑖 − 𝜇)2 = (𝑥1 − 𝜇)2 + (𝑥2 − 𝜇)2 + (𝑥3 − 𝜇)2 𝑖=1 2
= (−0,701863354037267 − (−0,830227743271222)) + (−0,987577639751553 − (−0,830227743271222)) + (−0,801242236024845 − (−0,830227743271222)) 3
∑(𝑥𝑖 − 𝜇)2 = 0,0420765659761069 𝑖=1
0,0420765659761069 𝜎= √ = √0,0210382829880534 3−1 𝜎 = 0,145045796175048
112
2 2
Untuk atribut BRANCH_COUNT 𝜇=
−2,88785046728972 = −0,962616822429907 3
0,00838501179142283 𝜎= √ = √0,00419250589571142 3−1 𝜎 = 0,0647495628997711
Untuk atribut CALL_PAIRS 𝜇=
−2,84615384615385 = −0,948717948717949 3
0,0039447731755424 𝜎= √ = √0,0019723865877712 3−1 𝜎 = 0,0444115591684327
Untuk atribut LOC_CODE_AND_COMMENT 𝜇=
−2,74603174603175 = −0,915343915343915 3
0,00268749475098681 𝜎= √ = √0,00134374737549341 3−1 𝜎 = 0,0366571599485477
Untuk atribut LOC_COMMENTS 𝜇=
−2,72774869109948 = −0,909249563699825 3
0,030116133512422 𝜎= √ = √0,015058066756211 3−1 𝜎 = 0,122711314703295
Untuk atribut CONDITION_COUNT 𝜇=
−2,80645161290323 = −0,935483870967742 3
0,0249739854318418 𝜎= √ = √0,0124869927159209 3−1 𝜎 = 0,111745213391541
113
Untuk atribut CYCLOMATIC_COMPLEXITY 𝜇=
−11,3167701863354 = −2,91176470588235 3
0,00519031141868512 𝜎= √ = √0,00259515570934256 3−1 𝜎 = 0,0509426708108493
Untuk atribut CYCLOMATIC_DENSITY 𝜇=
−1,18181818181818 = −0,393939393939394 3
0,567493112947658 𝜎= √ = √0,283746556473829 3−1 𝜎 = 0,532678661552938
c. Kelas tidak cacat (not defective) Setiap attribut dilakukan penghitungan sebagai berikut: Untuk atribut LOC_BLANK 𝜇=
−8,82608695652174 = −0,588405797101449 15
4,96952020883968 𝜎= √ = √0,354965729202834 15 − 1 𝜎 = 0,59579000428241
Untuk atribut BRANCH_COUNT 𝜇=
−10,0467289719626 = −0,669781931464174 15
4,02806649780185 𝜎= √ = √0,287719035557275 15 − 1 𝜎 = 0,536394477560381
Untuk atribut CALL_PAIRS 𝜇=
−9,23076923076923 = −0,615384615384615 15
3,8698224852071 𝜎= √ = √0,276415891800507 15 − 1
114
𝜎 = 0,525752690721129
Untuk atribut LOC_CODE_AND_COMMENT 𝜇=
−9,53968253968254 = −0,635978835978836 15
4,02694213487864 𝜎= √ = √0,287638723919903 15 − 1 𝜎 = 0,536319609859553
Untuk atribut LOC_COMMENTS 𝜇=
−10,8743455497382 = −0,724956369982548 15
3,37786062151074 𝜎= √ = √0,241275758679339 15 − 1 𝜎 = 0,491198288554977
Untuk atribut CONDITION_COUNT 𝜇=
−9,51612903225806 = −0,634408602150538 15
3,57058619493583 𝜎= √ = √0,255041871066845 15 − 1 𝜎 = 0,505016703750326
Untuk atribut CYCLOMATIC_COMPLEXITY 𝜇=
−10,3235294117647 = −0,688235294117647 15
4,19515570934256 𝜎= √ = √0,299653979238754 15 − 1 𝜎 = 0,547406594076792
Untuk atribut CYCLOMATIC_DENSITY 𝜇=
1,09090909090909 = 0,0727272727272727 15
3,24297520661157 𝜎= √ = √0,231641086186541 15 − 1
115
𝜎 = 0,481291061818668
Rekap hasil penghitungan mean dan standar deviasi dari bagian (split) pertama ditampilkan pada Tabel 4.3.
Tabel 4.3
Mean (µ) -0,830227743 -0,962616822 -0,948717949 -0,915343915 -0,909249564 -0,935483871 -0,970588235 SD (σ) 0,145045796 0,064749563 0,044411559 0,03665716 0,122711315 0,111745213 0,050942671 Mean (µ) -0,588405797 -0,669781931 -0,615384615 -0,635978836 -0,72495637 -0,634408602 -0,688235294 Not Defective SD (σ) 0,595790004 0,536394478 0,525752691 0,53631961 0,491198289 0,505016704 0,547406594 Defective
CYCLOMATIC_DENSITY
CYCLOMATIC_COMPLEXITY
CONDITION_COUNT
LOC_COMMENTS
LOC_CODE_AND_COMMENT
CALL_PAIRS
Statistic
LOC_BLANK
Class
BRANCH_COUNT
Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-1
-0,393939394 0,532678662 0,072727273 0,481291062
Berdasarkan pembagian fold cross validation, maka data bagian (split) pertama dijadikan sebagai data uji, maka dilakukan penghitungan sebagai berikut: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 𝑃(𝐿𝑂𝐶_𝐵𝐿𝐴𝑁𝐾 = −0,962732919254658|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑥 𝑃(𝐵𝑅𝐴𝑁𝐶𝐻_𝐶𝑂𝑈𝑁𝑇 = −0,88785046728972|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑥 𝑃(𝐶𝐴𝐿𝐿_𝑃𝐴𝐼𝑅𝑆 = −0,846153846153846|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑥 𝑃(𝐿𝑂𝐶_𝐶𝑂𝐷𝐸_𝐴𝑁𝐷_𝐶𝑂𝑀𝑀𝐸𝑁𝑇 = −0,968253968253968|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑥 𝑃(𝐿𝑂𝐶_𝐶𝑂𝑀𝑀𝐸𝑁𝑇𝑆 = −1|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑥 𝑃(𝐶𝑂𝑁𝐷𝐼𝑇𝐼𝑂𝑁_𝐶𝑂𝑈𝑁𝑇 = −0,806451612903226|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑥 𝑃(𝐶𝑌𝐶𝐿𝑂𝑀𝐴𝑇𝐼𝐶_𝐶𝑂𝑀𝑃𝐿𝐸𝑋𝐼𝑇𝑌 = −0,911764705882353|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑥 𝑃(𝐶𝑌𝐶𝐿𝑂𝑀𝐴𝑇𝐼𝐶_𝐷𝐸𝑁𝑆𝐼𝑇𝑌 = 0,272727272727273|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑥 𝑃(𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = (
(
(
(
1 √2𝜋 ∙ (0,145045796175048)
𝑒
1 √2𝜋 ∙ (0,0647495628997711) 1 √2𝜋 ∙ (0,0444115591684327) 1 √2𝜋 ∙ (0,0366571599485477)
−
𝑒
𝑒
𝑒
(−0,962732919254658−(−0,830227743271222))2 2(0,145045796175048)2 )
𝑥
−
(−0,88785046728972−(−0,962616822429907))2 2(0,0647495628997711)2 )
𝑥
−
(−0,846153846153846−(−0,948717948717949))2 2(0,0444115591684327)2 )
𝑥
−
(−0,968253968253968−(−0,915343915343915))2 2(0,0366571599485477)2 )
𝑥
116
(
(
(
(
1 √2𝜋 ∙ (0,122711314703295) 1 √2𝜋 ∙ (0,111745213391541)
𝑒
𝑒
1 √2𝜋 ∙ (0,0509426708108493) 1 √2𝜋 ∙ (0,532678661552938)
𝑒
−
(−1−(−0,909249563699825))2 2(0,122711314703295)2 )
−
(−0,806451612903226−(−0,935483870967742))2 2(0,111745213391541)2 )
𝑒 −
−
𝑥
𝑥
(−0,911764705882353−(−0,970588235294118))2 2(0,0509426708108493)2 )
(0,272727272727273−(−0,393939393939394))2 2(0,532678661552938)2 )
𝑥
𝑥
0,166666666666667 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 1,812105274 𝑥 3,163323227 𝑥 0,624159273 𝑥 3,840264751 𝑥 2,47321618 𝑥 1,832953646 𝑥 4,020672513 𝑥 0,3422297 𝑥 0,166666666666667 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 14,28440961 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 𝑃(𝐿𝑂𝐶_𝐵𝐿𝐴𝑁𝐾 = −0,962732919254658|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑥 𝑃(𝐵𝑅𝐴𝑁𝐶𝐻_𝐶𝑂𝑈𝑁𝑇 = −0,88785046728972|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑥 𝑃(𝐶𝐴𝐿𝐿_𝑃𝐴𝐼𝑅𝑆 = −0,846153846153846|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑥 𝑃(𝐿𝑂𝐶_𝐶𝑂𝐷𝐸_𝐴𝑁𝐷_𝐶𝑂𝑀𝑀𝐸𝑁𝑇 = −0,968253968253968|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑥 𝑃(𝐿𝑂𝐶_𝐶𝑂𝑀𝑀𝐸𝑁𝑇𝑆 = −1|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑥 𝑃(𝐶𝑂𝑁𝐷𝐼𝑇𝐼𝑂𝑁_𝐶𝑂𝑈𝑁𝑇 = −0,806451612903226|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑥 𝑃(𝐶𝑌𝐶𝐿𝑂𝑀𝐴𝑇𝐼𝐶_𝐶𝑂𝑀𝑃𝐿𝐸𝑋𝐼𝑇𝑌 = −0,911764705882353|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑥 𝑃(𝐶𝑌𝐶𝐿𝑂𝑀𝐴𝑇𝐼𝐶_𝐷𝐸𝑁𝑆𝐼𝑇𝑌 = 0,272727272727273|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑥 𝑃(𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = (
(
(
(
(
(
(
1 √2𝜋 ∙ (0,59579000428241)
𝑒
1 √2𝜋 ∙ (0,536394477560381) 1 √2𝜋 ∙ (0,525752690721129) 1 √2𝜋 ∙ (0,536319609859553) 1 √2𝜋 ∙ (0,491198288554977) 1 √2𝜋 ∙ (0,505016703750326) 1 √2𝜋 ∙ (0,547406594076792)
−
𝑒
𝑒
𝑒
𝑒
𝑒
𝑒
(−0,962732919254658−(−0,588405797101449))2 2(0,59579000428241)2 )
𝑥
−
(−0,88785046728972−(−0,669781931464174))2 2(0,536394477560381)2 )
𝑥
−
(−0,846153846153846−(−0,615384615384615))2 2(0,525752690721129)2 )
𝑥
−
(−0,968253968253968−(−0,635978835978836))2 2(0,536319609859553)2 )
𝑥
−
(−1−(−0,724956369982548))2 2(0,491198288554977)2 )
−
(−0,806451612903226−(−0,634408602150538))2 2(0,505016703750326)2 )
𝑥
−
(−0,911764705882353−(−0,688235294117647))2 2(0,547406594076792)2 )
𝑥
117
𝑥
(
1 √2𝜋 ∙ (0,481291061818668)
𝑒
−
(0,272727272727273−(0,0727272727272727))2 2(0,481291061818668)2 )
𝑥
0,833333333333333 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,54966636 𝑥 0,684756101 𝑥 0,689116827 𝑥 0,61395559 𝑥 0,694335575 𝑥 0,745424004 𝑥 0,670489711 𝑥 0,760335171 𝑥 0,833333333333333 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,035014959
Karena probabilitas defective (14,28440961) lebih besar dari probabilitas not
defective
(0,035014959),
maka
data/record/fitur
pertama
diklasifikasikan sebagai rawan cacat (fault-prone).
Dengan cara yang sama dilakukan penghitungan untuk data/record/fitur kedua, yaitu: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 2,722579478 𝑥 5,215438291 𝑥 0,002550796 𝑥 3,840264751 𝑥 2,203899163 𝑥 3,022029664 𝑥 6,628968295 𝑥 0,747725211 𝑥 0,166666666666667 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,765306636
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,607653122 𝑥 0,664012254 𝑥 0,727000843 𝑥 0,61395559 𝑥 0,802495159 𝑥 0,707878592 𝑥 0,654993286 𝑥 0,54954499 𝑥 0,833333333333333 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,030687659
Karena probabilitas defective (0,765306636) lebih besar dari probabilitas not defective (0,030687659), maka data/record/fitur kedua diklasifikasikan sebagai rawan cacat (fault-prone).
B. Bagian (split) ke-2 sebagai data uji dan lainnya sebagai data latih Dengan cara yang sama pada bagian (split) pertama, dilakukan penghitungan mean dan standar deviasi, kemudian hasilnya ditampilkan pada Tabel 4.4.
118
Tabel 4.4
CYCLOMATIC_DENSITY
CYCLOMATIC_COMPLEXITY
CONDITION_COUNT
LOC_COMMENTS
LOC_CODE_AND_COMMENT
CALL_PAIRS
Statistic
LOC_BLANK
Class
BRANCH_COUNT
Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-2
Mean (µ) -0,879917184 -0,975077882 -0,897435897 -0,947089947 -0,919720768 -0,956989247 -0,980392157 -0,454545455 SD (σ) 0,096490105 0,043166375 0,117501941 0,01832858 0,104886417 0,074496809 0,033961781 0,506160397 Mean (µ) -0,589233954 -0,662305296 -0,615384615 -0,633862434 -0,72495637 -0,621505376 -0,682352941 0,090909091 Not Defective SD (σ) 0,596337372 0,532228328 0,525752691 0,534841118 0,491198289 0,497424117 0,544282283 0,483493778 Defective
Dengan cara yang sama pada langkah sebelumnya, dilakukan penghitungan probabilitas terhadap data uji pada bagian (split) ke-2 sebagai berikut: Data uji pertama: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,753367601 𝑥 1,199720049 𝑥 3,3153141 𝑥 0,006180776 𝑥 1,366331215 𝑥 0,695164888 𝑥 1,52487782 𝑥 0,681677809 𝑥 0,166666666666667 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,003047623
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,657161488 𝑥 0,685197231 𝑥 0,639372528 𝑥 0,674945116 𝑥 0,808829135 𝑥 0,74845302 𝑥 0,670668769 𝑥 0,703763716 𝑥 0,833333333333333 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,046268474
Karena probabilitas defective (0,003047623) lebih kecil dari probabilitas not
defective
(0,046268474),
maka
data/record/fitur
diklasifikasikan sebagai tidak rawan cacat (not fault-prone).
Data uji kedua: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 3,168512071 𝑥 7,823157436 𝑥 3,086765561 𝑥 0,337458915 𝑥 2,837791794 𝑥 4,533044496 𝑥 9,943452442 𝑥 0,526627048 𝑥 0,166666666666667 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 289,8822414
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,556939209 𝑥 0,612904594 𝑥 0,689116827 𝑥 0,590094378 𝑥 0,694335575 𝑥 0,600424886 𝑥 0,618195858 𝑥 0,81066655 𝑥 0,833333333333333
119
pertama
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,024167415
Karena probabilitas defective (289,8822414) lebih besar dari probabilitas not defective (0,024167415), maka data/record/fitur kedua diklasifikasikan sebagai rawan cacat (fault-prone).
C. Bagian (split) ke-3 sebagai data uji dan lainnya sebagai data latih Hasil penghitungan mean dan standar deviasi bagian (split) ke-3 ditampilkan pada Tabel 4.5.
Tabel 4.5
CYCLOMATIC_DENSITY
CYCLOMATIC_COMPLEXITY
CONDITION_COUNT
LOC_COMMENTS
LOC_CODE_AND_COMMENT
CALL_PAIRS
Statistic
LOC_BLANK
Class
BRANCH_COUNT
Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-3
Mean (µ) -0,835403727 -0,953271028 -0,903846154 -0,928571429 -0,882198953 -0,919354839 -0,963235294 -0,386363636 SD (σ) 0,118880971 0,056074766 0,096792749 0,039946214 0,113866823 0,096774194 0,044117647 0,43519414 Mean (µ) -0,598935226 -0,670226969 -0,659340659 -0,607709751 -0,715781601 -0,649769585 -0,68487395 0,11038961 Not Defective SD (σ) 0,614227012 0,553541385 0,516204669 0,54498681 0,508405016 0,510492978 0,566032164 0,475968677 Defective
Selanjutnya dilakukan penghitungan probabilitas terhadap data uji pada bagian (split) ke-3 sebagai berikut: Data uji pertama: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,004598598 𝑥 4,76071𝐸 − 09 𝑥 4,7907𝐸 − 19 𝑥 2,018992526 𝑥 3,393325644 𝑥 2,75854𝐸 − 09 𝑥 6,05099𝐸 − 09 𝑥 0,90551792 𝑥 0,222222222222222 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 2,4135𝐸 − 46
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,617516203 𝑥 0,712950542 𝑥 0,341838966 𝑥 0,564953182 𝑥 0,756465058 𝑥 0,609905766 𝑥 0,704727299 𝑥 0,414401212 𝑥 0,777777777777778 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,008910274
Karena probabilitas defective (2,4135𝐸 − 46) lebih kecil dari probabilitas not
defective
(0,008910274),
maka
data/record/fitur
diklasifikasikan sebagai tidak rawan cacat (not fault-prone).
120
pertama
Data uji kedua: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 1,28686498 𝑥 7,016341604 𝑥 3,450824129 𝑥 2,018992526 𝑥 2,051639458 𝑥 4,065543733 𝑥 8,917966898 𝑥 0,291185818 𝑥 0,222222222222222 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 302,7920626
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,524806703 𝑥 0,626863628 𝑥 0,723849709 𝑥 0,564953182 𝑥 0,671175823 𝑥 0,66819 𝑥 0,620500446 𝑥 0,790808867 𝑥 0,777777777777778 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,023027073
Karena probabilitas defective (302,7920626) lebih besar dari probabilitas not defective (0,023027073), maka data/record/fitur kedua diklasifikasikan sebagai rawan cacat (fault-prone).
D. Bagian (split) ke-4 sebagai data uji dan lainnya sebagai data latih Hasil penghitungan mean dan standar deviasi bagian (split) ke-4 ditampilkan pada Tabel 4.6.
Tabel 4.6
Mean (µ) -0,835403727 -0,953271028 -0,903846154 -0,928571429 SD (σ) 0,118880971 0,056074766 0,096792749 0,039946214 Mean (µ) -0,582076309 -0,680907877 -0,604395604 -0,653061224 Not Defective SD (σ) 0,619905307 0,554843796 0,53876335 0,563018327 Defective
CYCLOMATIC_DENSITY
CYCLOMATIC_COMPLEXITY
CONDITION_COUNT
LOC_COMMENTS
LOC_CODE_AND_COMMENT
CALL_PAIRS
Statistic
LOC_BLANK
Class
BRANCH_COUNT
Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-4
-0,882198953 -0,919354839 -0,963235294 -0,386363636 0,113866823 0,096774194 0,044117647 0,43519414 -0,743455497 -0,65437788 -0,693277311 0,045454545 0,513569601 0,51789842 0,567709101 0,420017255
Selanjutnya dilakukan penghitungan probabilitas terhadap data uji pada bagian (split) ke-4 sebagai berikut: Data uji pertama: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 3,167770217 𝑥 3,602309892 𝑥 0,048579929 𝑥 9,1628𝐸 − 13 𝑥 3,184787314 𝑥 2,087319751 𝑥 4,578636873 𝑥 0,885975135 𝑥 0,222222222222222
121
𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 3,04393𝐸 − 12
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,575230317 𝑥 0,670705678 𝑥 0,74032375 𝑥 0,707285909 𝑥 0,765224148 𝑥 0,737806642 𝑥 0,652561273 𝑥 0,712898671 𝑥 0,777777777777778 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,041269223
Karena probabilitas defective (3,04393𝐸 − 12) lebih kecil dari probabilitas not
defective
(0,041269223),
maka
data/record/fitur
pertama
diklasifikasikan sebagai tidak rawan cacat (not fault-prone).
Data uji kedua: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 2,80159527 𝑥 3,37091𝐸 − 13 𝑥 2,516385652 𝑥 0,000291781 𝑥 0,322628077 𝑥 1,68311𝐸 − 07 𝑥 4,28452𝐸 − 13 𝑥 0,00573558 𝑥 0,222222222222222 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 2,05621𝐸 − 38
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,616436114 𝑥 0,68721646 𝑥 0,565500031 𝑥 0,698982768 𝑥 0,759203782 𝑥 0,65166749 𝑥 0,696514832 𝑥 0,071797079 𝑥 0,777777777777778 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,00322224
Karena probabilitas defective (2,05621𝐸 − 38) lebih kecil dari probabilitas not defective (0,00322224), maka data/record/fitur kedua diklasifikasikan sebagai tidak rawan cacat (not fault-prone).
E. Bagian (split) ke-5 sebagai data uji dan lainnya sebagai data latih Hasil penghitungan mean dan standar deviasi bagian (split) ke-5 ditampilkan pada Tabel 4.7.
122
Tabel 4.7
CONDITION_COUNT
CYCLOMATIC_COMPLEXITY
CYCLOMATIC_DENSITY
Mean (µ) -0,784679089 -0,937694704 -0,871794872 -0,925925926 SD (σ) 0,075901875 0,057103747 0,088823118 0,048492864 Mean (µ) -0,596687371 -0,669781931 -0,615384615 -0,657142857 Not Defective SD (σ) 0,600360634 0,536394478 0,525752691 0,543166028 Defective
LOC_COMMENTS
LOC_CODE_AND_COMMENT
CALL_PAIRS
Statistic
LOC_BLANK
Class
BRANCH_COUNT
Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-5
-0,856893543 0,124925167 -0,744502618 0,496232186
-0,892473118 0,098550015 -0,630107527 0,503129299
-0,950980392 0,044927213 -0,688235294 0,547406594
-0,515151515 0,429619602 0,127272727 0,451679275
Selanjutnya dilakukan penghitungan probabilitas terhadap data uji pada bagian (split) ke-5 sebagai berikut: Data uji pertama: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 4,087310869 𝑥 4,773093509 𝑥 4,308126494 𝑥 8,41704𝐸 − 07 𝑥 1,551775961 𝑥 3,952874504 𝑥 6,066735674 𝑥 0,926287157 𝑥 0,166666666666667 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,000406422
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,612727192 𝑥 0,684756101 𝑥 0,689116827 𝑥 0,734425581 𝑥 0,801626462 𝑥 0,70707473 𝑥 0,670489711 𝑥 0,291329855 𝑥 0,83333333333333 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,019591917
Karena probabilitas defective (0,000406422) lebih kecil dari probabilitas not
defective
(0,019591917),
maka
data/record/fitur
diklasifikasikan sebagai tidak rawan cacat (not fault-prone).
Data uji kedua: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,147556916 𝑥 3,852448479 𝑥 1,584871167 𝑥 8,033261088 𝑥 2,299847185 𝑥 2,232259866 𝑥 4,896570029 𝑥 0,452490324 𝑥 0,166666666666667 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 13,72069163
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,537581734 𝑥 0,615358391 𝑥 0,580655126 𝑥 0,643479867 𝑥 0,732802567 𝑥 0,605150554 𝑥 0,619676603 𝑥 0,848865363 𝑥 0,833333333333333 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,024026966
123
pertama
Karena probabilitas defective (13,72069163) lebih besar dari probabilitas not defective (0,024026966), maka data/record/fitur kedua diklasifikasikan sebagai rawan cacat (fault-prone).
F. Bagian (split) ke-6 sebagai data uji dan lainnya sebagai data latih Hasil penghitungan mean dan standar deviasi bagian (split) ke-6 ditampilkan pada Tabel 4.8.
Tabel 4.8
-0,919354839 0,096774194 -0,640552995 0,525939203
CYCLOMATIC_DENSITY
-0,882198953 0,113866823 -0,730740464 0,513974735
CYCLOMATIC_COMPLEXITY
CONDITION_COUNT
Mean (µ) -0,835403727 -0,953271028 -0,903846154 -0,928571429 SD (σ) 0,118880971 0,056074766 0,096792749 0,039946214 Mean (µ) -0,591836735 -0,662216288 -0,593406593 -0,653061224 Not Defective SD (σ) 0,62365192 0,556198382 0,536707686 0,563568831 Defective
LOC_COMMENTS
LOC_CODE_AND_COMMENT
CALL_PAIRS
Statistic
LOC_BLANK
Class
BRANCH_COUNT
Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-6
-0,963235294 -0,386363636 0,044117647 0,43519414 -0,680672269 0,045454545 0,567725845 0,48858554
Selanjutnya dilakukan penghitungan probabilitas terhadap data uji pada bagian (split) ke-6 sebagai berikut: Data uji pertama: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 2,616781523 𝑥 0,312588025 𝑥 1,566963071 𝑥 5,78263𝐸 − 08 𝑥 3,046483718 𝑥 0,181125772 𝑥 0,397308145 𝑥 0,207634598 𝑥 0,222222222222222 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 7,49752𝐸 − 10
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,619050294 𝑥 0,691358977 𝑥 0,704478854 𝑥 0,706917911 𝑥 0,764053935 𝑥 0,756671841 𝑥 0,67108543 𝑥 0,660506432 𝑥 0,777777777777778 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,042482344
Karena probabilitas defective (7,49752𝐸 − 10) lebih kecil dari probabilitas not
defective
(0,042482344),
maka
data/record/fitur
diklasifikasikan sebagai tidak rawan cacat (not fault-prone).
124
pertama
Data uji kedua: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 2,616781523 𝑥 1,32521575 𝑥 2,516385652 𝑥 5,78263𝐸 − 08 𝑥 3,046483718 𝑥 0,181125772 𝑥 0,397308145 𝑥 0,207634598 𝑥 0,222222222222222 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 5,10447𝐸 − 09
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,619050294 𝑥 0,67733728 𝑥 0,557890443 𝑥 0,706917911 𝑥 0,764053935 𝑥 0,756671841 𝑥 0,67108543 𝑥 0,660506432 𝑥 0,777777777777778 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,032960273
Karena probabilitas defective (5,10447𝐸 − 09) lebih kecil dari probabilitas not defective (0,032960273), maka data/record/fitur kedua diklasifikasikan sebagai tidak rawan cacat (not fault-prone).
G. Bagian (split) ke-7 sebagai data uji dan lainnya sebagai data latih Hasil penghitungan mean dan standar deviasi bagian (split) ke-7 ditampilkan pada Tabel 4.9.
Tabel 4.9
-0,919354839 0,096774194 -0,622119816 0,521748038
CYCLOMATIC_DENSITY
-0,882198953 0,113866823 -0,731488407 0,514010484
CYCLOMATIC_COMPLEXITY
CONDITION_COUNT
Mean (µ) -0,835403727 -0,953271028 -0,903846154 -0,928571429 SD (σ) 0,118880971 0,056074766 0,096792749 0,039946214 Mean (µ) -0,606921029 -0,654205607 -0,631868132 -0,619047619 Not Defective SD (σ) 0,624864138 0,553111194 0,548244661 0,552669987 Defective
LOC_COMMENTS
LOC_CODE_AND_COMMENT
CALL_PAIRS
Statistic
LOC_BLANK
Class
BRANCH_COUNT
Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-7
-0,963235294 -0,386363636 0,044117647 0,43519414 -0,672268908 0,097402597 0,564434459 0,49596501
Selanjutnya dilakukan penghitungan probabilitas terhadap data uji pada bagian (split) ke-7 sebagai berikut: Data uji pertama: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,154307163 𝑥 3,602309892 𝑥 0,378358456 𝑥 9,791806904 𝑥 3,301332955 𝑥 2,087319751 𝑥 4,578636873 𝑥 0,820837573 𝑥 0,222222222222222 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 11,852028
125
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,634835936 𝑥 0,659705765 𝑥 0,723263588 𝑥 0,612063693 𝑥 0,758107114 𝑥 0,718365148 𝑥 0,645953684 𝑥 0,68648933 𝑥 0,777777777777778 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,034823429
Karena probabilitas defective (11,852028) lebih besar dari probabilitas not defective (0,034823429), maka data/record/fitur pertama diklasifikasikan sebagai rawan cacat (fault-prone).
Data uji kedua: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 2,616781523 𝑥 3,602309892 𝑥 0,003316798 𝑥 8,361612314 𝑥 2,534650353 𝑥 2,087319751 𝑥 4,578636873 𝑥 0,390921615 𝑥 0,222222222222222 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,550146093
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,621571313 𝑥 0,659705765 𝑥 0,717187088 𝑥 0,631552787 𝑥 0,771025281 𝑥 0,718365148 𝑥 0,645953684 𝑥 0,792808593 𝑥 0,777777777777778 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,040975333
Karena probabilitas defective (0,550146093) lebih besar dari probabilitas not defective (0,040975333), maka data/record/fitur kedua diklasifikasikan sebagai rawan cacat (fault-prone).
H. Bagian (split) ke-8 sebagai data uji dan lainnya sebagai data latih Hasil penghitungan mean dan standar deviasi bagian (split) ke-8 ditampilkan pada Tabel 4.10.
126
Tabel 4.10
CYCLOMATIC_DENSITY
Mean (µ) -0,84679089 -0,937694704 -0,897435897 -0,925925926 -0,842931937 -0,892473118 SD (σ) 0,142902144 0,057103747 0,117501941 0,048492864 0,100980636 0,098550015 Mean (µ) -0,590062112 -0,662305296 -0,61025641 -0,646560847 -0,728446771 -0,621505376 Not Defective SD (σ) 0,59686454 0,532228328 0,522904518 0,54152901 0,493076139 0,497424117 Defective
CYCLOMATIC_COMPLEXITY
CONDITION_COUNT
LOC_COMMENTS
LOC_CODE_AND_COMMENT
CALL_PAIRS
Statistic
LOC_BLANK
Class
BRANCH_COUNT
Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-8
-0,950980392 0,044927213 -0,682352941 0,544282283
-0,181818182 0,181818182 0,127272727 0,451679275
Selanjutnya dilakukan penghitungan probabilitas terhadap data uji pada bagian (split) ke-8 sebagai berikut: Data uji pertama: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 2,278383178 𝑥 3,852448479 𝑥 3,3153141 𝑥 0,461371226 𝑥 2,307705081 𝑥 2,232259866 𝑥 4,896570029 𝑥 0,296950316 𝑥 0,166666666666667 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 16,7605536
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,564014443 𝑥 0,612904594 𝑥 0,637930761 𝑥 0,704082544 𝑥 0,732963483 𝑥 0,600424886 𝑥 0,618195858 𝑥 0,291329855 𝑥 0,833333333333333 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,010255364
Karena probabilitas defective (16,7605536) lebih besar dari probabilitas not
defective
(0,010255364),
maka
data/record/fitur
diklasifikasikan sebagai rawan cacat (fault-prone).
Data uji kedua: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 2,653445558 𝑥 3,852448479 𝑥 3,3153141 𝑥 8,033261088 𝑥 1,178462412 𝑥 2,232259866 𝑥 4,896570029 𝑥 8,79106𝐸 − 05 𝑥 0,166666666666667 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,051381398
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,627842298 𝑥 0,612904594 𝑥 0,637930761 𝑥 0,638317935 𝑥 0,695238592 𝑥 0,600424886 𝑥 0,618195858 𝑥 0,039222392 𝑥 0,833333333333333 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,001321678
127
pertama
Karena probabilitas defective (0,051381398) lebih besar dari probabilitas not defective (0,001321678), maka data/record/fitur kedua diklasifikasikan sebagai rawan cacat (fault-prone).
I. Bagian (split) ke-9 sebagai data uji dan lainnya sebagai data latih Hasil penghitungan mean dan standar deviasi bagian (split) ke-9 ditampilkan pada Tabel 4.11.
Tabel 4.11
CYCLOMATIC_DENSITY
CYCLOMATIC_COMPLEXITY
CONDITION_COUNT
LOC_COMMENTS
LOC_CODE_AND_COMMENT
CALL_PAIRS
Statistic
LOC_BLANK
Class
BRANCH_COUNT
Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-9
Mean (µ) -0,835403727 -0,953271028 -0,903846154 -0,928571429 -0,882198953 -0,919354839 -0,963235294 -0,386363636 SD (σ) 0,118880971 0,056074766 0,096792749 0,039946214 0,113866823 0,096774194 0,044117647 0,43519414 Mean (µ) -0,675244011 -0,719626168 -0,626373626 -0,764172336 -0,728496634 -0,640552995 -0,745798319 0,11038961 Not Defective SD (σ) 0,510349532 0,514038298 0,531961736 0,303914748 0,50954192 0,518428059 0,514186181 0,495598646 Defective
Selanjutnya dilakukan penghitungan probabilitas terhadap data uji pada bagian (split) ke-9 sebagai berikut: Data uji pertama: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 1,890997319 𝑥 6,278498327 𝑥 2,516385652 𝑥 0,117712905 𝑥 2,051639458 𝑥 4,065543733 𝑥 7,980147407 𝑥 0,820837573 𝑥 0,222222222222222 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 42,69954843
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,667015163 𝑥 0,716429864 𝑥 0,586016928 𝑥 1,298144021 𝑥 0,67932636 𝑥 0,676824944 𝑥 0,721834519 𝑥 0,67653769 𝑥 0,777777777777778 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,063486652
Karena probabilitas defective (42,69954843) lebih besar dari probabilitas not
defective
(0,063486652),
maka
data/record/fitur
diklasifikasikan sebagai tidak rawan cacat (not fault-prone).
128
pertama
Data uji kedua: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 4,47978𝐸 − 33 𝑥 1,54𝐸 − 71 𝑥 2,38648𝐸 − 08 𝑥 0 𝑥 0,673325982 𝑥 3,48618𝐸 − 05 𝑥 2,6526𝐸 − 137 𝑥 0,618123877 𝑥 0,222222222222222 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,030093767 𝑥 0,241793058 𝑥 0,626757156 𝑥 6,32649𝐸 − 08 𝑥 0,778702517 𝑥 0,720078019 𝑥 0,17180536 𝑥 0,785247588 𝑥 0,777777777777778 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 1,69759𝐸 − 11
Karena probabilitas defective (0) lebih kecil dari probabilitas not defective (1,69759𝐸 − 11), maka data/record/fitur kedua diklasifikasikan sebagai tidak rawan cacat (not fault-prone).
J. Bagian (split) ke-10 sebagai data uji dan lainnya sebagai data latih Hasil penghitungan mean dan standar deviasi bagian (split) ke-10 ditampilkan pada Tabel 4.12.
Tabel 4.12
-0,919354839 0,096774194 -0,741935484 0,228098962
CYCLOMATIC_DENSITY
-0,882198953 0,113866823 -0,851907255 0,124904268
CYCLOMATIC_COMPLEXITY
CONDITION_COUNT
Mean (µ) -0,835403727 -0,953271028 -0,903846154 -0,928571429 SD (σ) 0,118880971 0,056074766 0,096792749 0,039946214 Mean (µ) -0,704525288 -0,787716956 -0,730769231 -0,700680272 Not Defective SD (σ) 0,419177422 0,282389795 0,28742417 0,508807904 Defective
LOC_COMMENTS
LOC_CODE_AND_COMMENT
CALL_PAIRS
Statistic
LOC_BLANK
Class
BRANCH_COUNT
Rekap Penghitungan Mean dan Standar Deviasi Bagian (Split) ke-10
-0,963235294 -0,386363636 0,044117647 0,43519414 -0,808823529 0,019480519 0,296315319 0,428154976
Selanjutnya dilakukan penghitungan probabilitas terhadap data uji pada bagian (split) ke-10 sebagai berikut: Data uji pertama: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 2,518663933 𝑥 5,027428445 𝑥 3,450824129 𝑥 3,796872057 𝑥 2,970166665 𝑥 4,065543733 𝑥 4,578636873 𝑥 0,00573558 𝑥 0,222222222222222 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 11,69136985
129
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,828295887 𝑥 1,293043578 𝑥 1,280536542 𝑥 0,740363335 𝑥 2,381005187 𝑥 1,220227319 𝑥 1,267501658 𝑥 0,067680515 𝑥 0,777777777777778 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,19683592
Karena probabilitas defective (11,69136985) lebih besar dari probabilitas not
defective
(0,19683592),
maka
data/record/fitur
pertama
diklasifikasikan sebagai rawan cacat (fault-prone).
Data uji kedua: 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 5,83401𝐸 − 52 𝑥 2,3666𝐸 − 263 𝑥 4,02531𝐸 − 84 𝑥 2,4407𝐸 − 165 𝑥 1,63021𝐸 − 59 𝑥 1,57714𝐸 − 85 𝑥 0 𝑥 0,502409819 𝑥 0,222222222222222 𝑃 (𝑋|𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0
𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 0,000244301 𝑥 2,80133𝐸 − 09 𝑥 1,85591𝐸 − 08 𝑥 0,178546481 𝑥 5,87746𝐸 − 48 𝑥 3,79105𝐸 − 13 𝑥 1,09013𝐸 − 08 𝑥 0,918894099 𝑥 0,777777777777778 𝑃 (𝑋|𝑛𝑜𝑡 𝑑𝑒𝑓𝑒𝑐𝑡𝑖𝑣𝑒) = 3,93684𝐸 − 89
Karena probabilitas defective (0) lebih kecil dari probabilitas not defective (3,93684𝐸 − 89), maka data/record/fitur kedua diklasifikasikan sebagai tidak rawan cacat (not fault-prone).
Berdasarkan penghitungan probabilitas secara manual untuk model Naïve Bayes dan 10-fold cross validation di atas, dibuat tabel rekapitulasinya seperti pada Tabel 4.13.
130
Tabel 4.13 Rekapitulasi Penghitungan Manual untuk Model Naïve Bayes Split 1 2 3 4 5 6 7 8 9 10
Actual N Y Y N N N N N N Y N N N N N Y N N N N
Prediction Y Y N Y N Y N N N Y N N Y Y Y Y Y N Y N
Kemudian dibuat tabel confusion matrix seperti Tabel 4.14, dan dilakukan penghitungan kinerja model.
Tabel 4.14 Hasil Klasifikasi Penghitungan Manual dengan 10-Fold Cross Validation Class Defective Not Defective Class Recall
Prediction
𝐴𝑘𝑢𝑟𝑎𝑠𝑖 =
Actual Class Precision Defective Not Defective 3 8 27,27% 1 8 88,89% 75,00% 50,00%
𝑇𝑃 + 𝑇𝑁 3+8 11 = = = 0,55 = 55% 𝑇𝑃 + 𝑇𝑁 + 𝐹𝑃 + 𝐹𝑁 3 + 8 + 8 + 1 20
𝑆𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑎𝑠 = 𝑟𝑒𝑐𝑎𝑙𝑙 = 𝑇𝑃𝑟𝑎𝑡𝑒 =
𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦 = 𝑇𝑁𝑟𝑎𝑡𝑒 =
𝑇𝑃 3 3 = = = 0,75 = 75% 𝑇𝑃 + 𝐹𝑁 3+1 4
𝑇𝑁 8 8 = = = 0,5 = 50% 𝑇𝑁 + 𝐹𝑃 8+8 16
131
𝐹𝑃𝑟𝑎𝑡𝑒 =
𝐹𝑃 8 8 = = = 0,5 = 50% 𝐹𝑃 + 𝑇𝑁 8+8 16
𝐹𝑁𝑟𝑎𝑡𝑒 =
𝐹𝑁 1 1 = = = 0,25 = 25% 𝑇𝑃 + 𝐹𝑁 3+1 4
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑃𝑃𝑉 =
𝑁𝑃𝑉 =
𝑇𝑃 3 3 = = = 0,2727 = 27,273% 𝑇𝑃 + 𝐹𝑃 3+8 11
𝑇𝑁 8 8 = = = 0,88889 = 88,889% 𝑇𝑁 + 𝐹𝑁 8+1 9
𝐹 − 𝑀𝑒𝑎𝑠𝑢𝑟𝑒 =
2 𝑥 𝑟𝑒𝑐𝑎𝑙𝑙 𝑥 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 2 𝑥 0,75 𝑥 0,27273 = (𝑟𝑒𝑐𝑎𝑙𝑙 + 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛) (0,75 𝑥 0,27273) =
0,409095 = 0,4 1,02273
𝐺 − 𝑀𝑒𝑎𝑛 = √𝑆𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑎𝑠 𝑥 𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦 = √0,75 𝑥 0,5 = √0,375 = 0,612
𝐴𝑈𝐶 =
1 + 𝑇𝑃𝑟𝑎𝑡𝑒 − 𝐹𝑃𝑟𝑎𝑡𝑒 1 + 0,75 − 0,5 1,25 = = = 0,625 2 2 2
Untuk menguji aplikasi yang telah dibuat, hasil penghitungan di atas dibandingkan dengan keluaran dari aplikasi. Tampilan aplikasi untuk pengukuran kinerja model Naïve Bayes ditunjukkan Gambar 4.1.
132
Gambar 4.1 Tampilan Aplikasi untuk Pengukuran Kinerja Model Naïve Bayes
Dari Gambar 4.1 terlihat bahwa aplikasi yang telah dibuat dapat memberikan keluaran yang sesuai dengan hasil penghitungan manual. Sehingga aplikasi yang telah dibuat dianggap telah sesuai dan dapat digunakan.
4.1.2
Hasil Pengukuran Kinerja Model Pengukuran model dilakukan dengan mengujinya menggunakan 10 dataset
NASA MDP repository (CM1, JM1, KC1, KC3, MC2, PC1, PC2, PC3, PC4, dan PC5) dan 10 dataset PROMISE repository (CM1, JM1, KC1, KC3, MC2, PC1, PC2, PC3, PC4, dan PC5). Model yang diuji adalah model pengklasifikasi Naïve Bayes (NB), dan model yang telah diperbaiki, yaitu AdaBoost berbasis Naïve Bayes (AB+NB), Bagging berbasis Naïve Bayes (BG+NB), Random OverSampling (ROS) dan Naïve Bayes (ROS+NB), Random Over-Sampling (ROS) dan AdaBoost berbasis Naïve Bayes (ROS+AB+NB), Random Over-Sampling (ROS) dan Bagging berbasis Naïve Bayes (ROS+BG+NB), Random Under-
133
Sampling (RUS) dan Naïve Bayes (RUS+NB), Random Under-Sampling (RUS) dan AdaBoost berbasis Naïve Bayes (RUS+AB+NB), Random Under-Sampling (RUS) dan Bagging berbasis Naïve Bayes (RUS+BG+NB), FSMOTE dan Naïve Bayes (FSMOTE +NB), FSMOTE dan AdaBoost berbasis Naïve Bayes (FSMOTE +AB+NB), dan FSMOTE dan Bagging berbasis Naïve Bayes (FSMOTE +BG+NB). Hasil pengukuran penerapan dataset NASA dari NASA MDP repository ditunjukkan pada Tabel 4.15 sampai 4.24, sedangkan hasil pengukuran penerapan dataset NASA dari NASA MDP repository ditunjukkan pada Tabel 4.25 sampai 4.34. Sedangkan hasil rekap pengukuran akurasi ditunjukkan pada Tabel 4.35 dan Tabel 4.36, hasil rekap pengukuran sensitivitas ditunjukkan pada Tabel 4.37 dan Tabel 4.38, hasil rekap pengukuran F-Measure ditunjukkan pada Tabel 4.39 dan Tabel 4.40, hasil rekap pengukuran G-Mean ditunjukkan pada Tabel 4.41 dan Tabel 4.42, dan hasil rekap pengukuran AUC ditunjukkan pada Tabel 4.43 dan Tabel 4.44.
Tabel 4.15 Hasil Pengukuran Penerapan Dataset CM1 dari NASA MDP Repository Model TP FP FN TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC NB 13 31 29 254 81,65% 30,95% 89,12% 29,55% 89,75% 0,302 0,525 0,6 AB+NB 13 31 29 254 81,65% 30,95% 89,12% 29,55% 89,75% 0,302 0,525 0,6 BG+NB 14 31 28 254 81,96% 33,33% 89,12% 31,11% 90,07% 0,322 0,545 0,612 ROS+NB 14 32 28 253 81,65% 33,33% 88,77% 30,44% 90,04% 0,318 0,544 0,611 ROS+AB+NB 14 33 28 252 81,35% 33,33% 88,42% 29,79% 90,00% 0,315 0,543 0,609 ROS+BG+NB 14 34 28 251 81,04% 33,33% 88,07% 29,17% 89,96% 0,311 0,542 0,607 RUS+NB 15 39 27 246 79,82% 35,71% 86,32% 27,78% 90,11% 0,313 0,555 0,61 RUS+AB+NB 14 66 28 219 71,25% 33,33% 76,84% 17,50% 88,66% 0,23 0,506 0,551 RUS+BG+NB 17 46 25 239 78,29% 40,48% 83,86% 26,98% 90,53% 0,324 0,583 0,622 FSMOTE+NB 18 65 24 220 72,78% 42,86% 77,19% 21,69% 90,16% 0,288 0,575 0,6 FSMOTE+AB+NB 18 65 24 220 72,78% 42,86% 77,19% 21,69% 90,16% 0,288 0,575 0,6 FSMOTE+BG+NB 19 63 23 222 73,70% 45,24% 77,90% 23,17% 90,61% 0,306 0,594 0,616
134
Tabel 4.16 Hasil Pengukuran Penerapan Dataset JM1 dari NASA MDP Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
TP 320 320 332 316 316 316 322 322 329 346 351 366
FP 339 339 360 340 340 346 347 347 358 371 375 385
FN 1292 1292 1280 1296 1296 1296 1290 1290 1283 1266 1261 1246
TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC 5769 78,87% 19,85% 94,45% 48,56% 81,70% 0,282 0,433 0,572 5769 78,87% 19,85% 94,45% 48,56% 81,70% 0,282 0,433 0,572 5748 78,76% 20,60% 94,11% 47,98% 81,79% 0,288 0,44 0,574 5768 78,81% 19,60% 94,43% 48,17% 81,65% 0,279 0,43 0,57 5768 78,81% 19,60% 94,43% 48,17% 81,65% 0,279 0,43 0,57 5762 78,73% 19,60% 94,34% 47,73% 81,64% 0,278 0,43 0,57 5761 78,80% 19,98% 94,32% 48,13% 81,71% 0,282 0,434 0,571 5761 78,80% 19,98% 94,32% 48,13% 81,71% 0,282 0,434 0,571 5750 78,74% 20,41% 94,14% 47,89% 81,76% 0,286 0,438 0,573 5737 78,80% 21,46% 93,93% 48,26% 81,92% 0,297 0,449 0,577 5733 78,81% 21,77% 93,86% 48,35% 81,97% 0,3 0,452 0,578 5723 78,87% 22,71% 93,70% 48,74% 82,12% 0,31 0,461 0,582
Tabel 4.17 Hasil Pengukuran Penerapan Dataset KC1 dari NASA MDP Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
TP 99 99 101 100 135 103 96 96 98 134 122 136
FP 106 106 111 107 258 110 111 111 117 191 157 196
FN 195 195 193 194 159 191 198 198 196 160 172 158
TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC 762 74,10% 33,67% 87,79% 48,29% 79,62% 0,397 0,544 0,607 762 74,10% 33,67% 87,79% 48,29% 79,62% 0,397 0,544 0,607 757 73,84% 34,35% 87,21% 47,64% 79,68% 0,399 0,547 0,608 761 74,10% 34,01% 87,67% 48,31% 79,69% 0,399 0,546 0,608 610 64,11% 45,92% 70,28% 34,35% 79,32% 0,393 0,568 0,581 758 74,10% 35,03% 87,33% 48,36% 79,87% 0,406 0,553 0,612 757 73,41% 32,65% 87,21% 46,38% 79,27% 0,383 0,534 0,599 757 73,41% 32,65% 87,21% 46,38% 79,27% 0,383 0,534 0,599 751 73,06% 33,33% 86,52% 45,58% 79,30% 0,385 0,537 0,599 677 69,79% 45,58% 78,00% 41,23% 80,88% 0,433 0,596 0,618 711 71,69% 41,50% 81,91% 43,73% 80,52% 0,426 0,583 0,617 672 69,54% 46,26% 77,42% 40,96% 80,96% 0,435 0,598 0,618
Tabel 4.18 Hasil Pengukuran Penerapan Dataset KC3 dari NASA MDP Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
TP 13 13 13 13 14 13 13 11 18 8 8 9
FP 18 18 19 18 22 19 20 24 33 18 18 18
FN 23 23 23 23 22 23 23 25 18 28 28 27
TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC 140 78,87% 36,11% 88,61% 41,94% 85,89% 0,388 0,566 0,624 140 78,87% 36,11% 88,61% 41,94% 85,89% 0,388 0,566 0,624 139 78,35% 36,11% 87,98% 40,63% 85,80% 0,382 0,564 0,62 140 78,87% 36,11% 88,61% 41,94% 85,89% 0,388 0,566 0,624 136 77,32% 38,89% 86,08% 38,89% 86,08% 0,389 0,579 0,625 139 78,35% 36,11% 87,98% 40,63% 85,80% 0,382 0,564 0,62 138 77,84% 36,11% 87,34% 39,39% 85,71% 0,377 0,562 0,617 134 74,74% 30,56% 84,81% 31,43% 84,28% 0,31 0,509 0,577 125 73,71% 50,00% 79,11% 35,29% 87,41% 0,414 0,629 0,646 140 76,29% 22,22% 88,61% 30,77% 83,33% 0,258 0,444 0,554 140 76,29% 22,22% 88,61% 30,77% 83,33% 0,258 0,444 0,554 140 76,80% 25,00% 88,61% 33,33% 83,83% 0,286 0,471 0,568
135
Tabel 4.19 Hasil Pengukuran Penerapan Dataset MC2 dari NASA MDP Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
TP 17 18 18 16 16 18 19 19 20 17 17 20
FP 7 7 9 7 7 7 8 8 9 7 7 9
FN 27 26 26 28 28 26 25 25 24 27 27 24
TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC 73 72,58% 38,64% 91,25% 70,83% 73,00% 0,5 0,594 0,649 73 73,39% 40,91% 91,25% 72,00% 73,74% 0,522 0,611 0,661 71 71,77% 40,91% 88,75% 66,67% 73,20% 0,507 0,603 0,648 73 71,77% 36,36% 91,25% 69,57% 72,28% 0,478 0,576 0,638 73 71,77% 36,36% 91,25% 69,57% 72,28% 0,478 0,576 0,638 73 73,39% 40,91% 91,25% 72,00% 73,74% 0,522 0,611 0,661 72 73,39% 43,18% 90,00% 70,37% 74,23% 0,535 0,623 0,666 72 73,39% 43,18% 90,00% 70,37% 74,23% 0,535 0,623 0,666 71 73,39% 45,46% 88,75% 68,97% 74,74% 0,548 0,635 0,671 73 72,58% 38,64% 91,25% 70,83% 73,00% 0,5 0,594 0,649 73 72,58% 38,64% 91,25% 70,83% 73,00% 0,5 0,594 0,649 71 73,39% 45,46% 88,75% 68,97% 74,74% 0,548 0,635 0,671
Tabel 4.20 Hasil Pengukuran Penerapan Dataset PC1 dari NASA MDP Repository Model TP FP FN TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC NB 22 43 33 581 88,81% 40,00% 93,11% 33,85% 94,63% 0,367 0,61 0,666 AB+NB 19 26 36 598 90,87% 34,55% 95,83% 42,22% 94,32% 0,38 0,575 0,652 BG+NB 23 48 32 576 88,22% 41,82% 92,31% 32,39% 94,74% 0,365 0,621 0,671 ROS+NB 22 43 33 581 88,81% 40,00% 93,11% 33,85% 94,63% 0,367 0,61 0,666 ROS+AB+NB 22 45 33 579 88,51% 40,00% 92,79% 32,84% 94,61% 0,361 0,609 0,664 ROS+BG+NB 22 45 33 579 88,51% 40,00% 92,79% 32,84% 94,61% 0,361 0,609 0,664 RUS+NB 24 56 31 568 87,19% 43,64% 91,03% 30,00% 94,83% 0,356 0,63 0,673 RUS+AB+NB 24 56 31 568 87,19% 43,64% 91,03% 30,00% 94,83% 0,356 0,63 0,673 RUS+BG+NB 25 75 30 549 84,54% 45,46% 87,98% 25,00% 94,82% 0,323 0,632 0,667 FSMOTE+NB 17 25 38 599 90,72% 30,91% 95,99% 40,48% 94,04% 0,351 0,545 0,635 FSMOTE+AB+NB 17 25 38 599 90,72% 30,91% 95,99% 40,48% 94,04% 0,351 0,545 0,635 FSMOTE+BG+NB 17 26 38 598 90,57% 30,91% 95,83% 39,54% 94,03% 0,347 0,544 0,634
Tabel 4.21 Hasil Pengukuran Penerapan Dataset PC2 dari NASA MDP Repository Model TP FP FN TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC NB 2 72 14 634 88,09% 12,50% 89,80% 2,70% 97,84% 0,044 0,335 0,512 AB+NB 2 70 14 636 88,37% 12,50% 90,09% 2,78% 97,85% 0,045 0,336 0,513 BG+NB 7 163 9 543 76,18% 43,75% 76,91% 4,12% 98,37% 0,075 0,58 0,603 ROS+NB 2 69 14 637 88,50% 12,50% 90,23% 2,82% 97,85% 0,046 0,336 0,514 ROS+AB+NB 2 68 14 638 88,64% 12,50% 90,37% 2,86% 97,85% 0,047 0,336 0,514 ROS+BG+NB 2 74 14 632 87,81% 12,50% 89,52% 2,63% 97,83% 0,043 0,335 0,51 RUS+NB 10 223 6 483 68,28% 62,50% 68,41% 4,29% 98,77% 0,08 0,654 0,655 RUS+AB+NB 10 219 6 487 68,84% 62,50% 68,98% 4,37% 98,78% 0,082 0,657 0,657 RUS+BG+NB 12 455 4 251 36,43% 75,00% 35,55% 2,57% 98,43% 0,05 0,516 0,553 FSMOTE+NB 4 39 12 667 92,94% 25,00% 94,48% 9,30% 98,23% 0,136 0,486 0,597 FSMOTE+AB+NB 4 39 12 667 92,94% 25,00% 94,48% 9,30% 98,23% 0,136 0,486 0,597 FSMOTE+BG+NB 4 37 12 669 93,21% 25,00% 94,76% 9,76% 98,24% 0,14 0,487 0,599
136
Tabel 4.22 Hasil Pengukuran Penerapan Dataset PC3 dari NASA MDP Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
TP 118 12 119 116 116 117 92 73 90 97 97 97
FP 654 42 626 652 655 572 388 271 420 428 428 413
FN 12 118 11 14 14 13 38 57 40 33 33 33
TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC 269 36,75% 90,77% 29,14% 15,29% 95,73% 0,262 0,514 0,6 881 84,81% 9,23% 95,45% 22,22% 88,19% 0,13 0,297 0,523 297 39,51% 91,54% 32,18% 15,97% 96,43% 0,272 0,543 0,619 271 36,75% 89,23% 29,36% 15,10% 95,09% 0,258 0,512 0,593 268 36,47% 89,23% 29,04% 15,05% 95,04% 0,257 0,509 0,591 351 44,44% 90,00% 38,03% 16,98% 96,43% 0,286 0,585 0,64 535 59,54% 70,77% 57,96% 19,17% 93,37% 0,302 0,64 0,644 652 68,85% 56,15% 70,64% 21,22% 91,96% 0,308 0,63 0,634 503 56,32% 69,23% 54,50% 17,65% 92,63% 0,281 0,614 0,619 495 56,22% 74,62% 53,63% 18,48% 93,75% 0,296 0,633 0,641 495 56,22% 74,62% 53,63% 18,48% 93,75% 0,296 0,633 0,641 510 57,65% 74,62% 55,26% 19,02% 93,92% 0,303 0,642 0,649
Tabel 4.23 Hasil Pengukuran Penerapan Dataset PC4 dari NASA MDP Repository Model TP FP FN TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC NB 51 58 125 1036 85,59% 28,98% 94,70% 46,79% 89,23% 0,358 0,524 0,618 AB+NB 85 87 91 1007 85,98% 48,30% 92,05% 49,42% 91,71% 0,489 0,667 0,702 BG+NB 62 76 114 1018 85,04% 35,23% 93,05% 44,93% 89,93% 0,395 0,573 0,641 ROS+NB 51 54 125 1040 85,91% 28,98% 95,06% 48,57% 89,27% 0,363 0,525 0,62 ROS+AB+NB 47 62 129 1032 84,96% 26,71% 94,33% 43,12% 88,89% 0,33 0,502 0,605 ROS+BG+NB 52 55 124 1039 85,91% 29,55% 94,97% 48,60% 89,34% 0,367 0,53 0,623 RUS+NB 56 78 120 1016 84,41% 31,82% 92,87% 41,79% 89,44% 0,361 0,544 0,623 RUS+AB+NB 84 110 92 984 84,09% 47,73% 89,95% 43,30% 91,45% 0,454 0,655 0,688 RUS+BG+NB 71 99 105 995 83,94% 40,34% 90,95% 41,77% 90,46% 0,41 0,606 0,656 FSMOTE+NB 84 111 92 983 84,02% 47,73% 89,85% 43,08% 91,44% 0,453 0,655 0,688 FSMOTE+AB+NB 84 111 92 983 84,02% 47,73% 89,85% 43,08% 91,44% 0,453 0,655 0,688 FSMOTE+BG+NB 86 110 90 984 84,25% 48,86% 89,95% 43,88% 91,62% 0,462 0,663 0,694
Tabel 4.24 Hasil Pengukuran Penerapan Dataset PC5 dari NASA MDP Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
TP 102 102 108 101 237 100 110 110 115 116 116 115
FP 67 67 76 66 333 73 76 76 82 77 77 82
FN 356 356 350 357 221 358 348 348 343 342 342 343
TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC 1169 75,03% 22,27% 94,58% 60,36% 76,66% 0,325 0,459 0,584 1169 75,03% 22,27% 94,58% 60,36% 76,66% 0,325 0,459 0,584 1160 74,85% 23,58% 93,85% 58,70% 76,82% 0,336 0,47 0,587 1170 75,03% 22,05% 94,66% 60,48% 76,62% 0,323 0,457 0,584 903 67,30% 51,75% 73,06% 41,58% 80,34% 0,461 0,615 0,624 1163 74,56% 21,83% 94,09% 57,80% 76,46% 0,317 0,453 0,58 1160 74,97% 24,02% 93,85% 59,14% 76,92% 0,342 0,475 0,589 1160 74,97% 24,02% 93,85% 59,14% 76,92% 0,342 0,475 0,589 1154 74,91% 25,11% 93,37% 58,38% 77,09% 0,351 0,484 0,592 1159 75,27% 25,33% 93,77% 60,10% 77,22% 0,356 0,487 0,595 1159 75,27% 25,33% 93,77% 60,10% 77,22% 0,356 0,487 0,595 1154 74,91% 25,11% 93,37% 58,38% 77,09% 0,351 0,484 0,592
137
Tabel 4.25 Hasil Pengukuran Penerapan Dataset CM1 dari PROMISE Repository Model TP FP FN TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC NB 15 45 31 346 82,61% 32,61% 88,49% 25,00% 91,78% 0,283 0,537 0,605 AB+NB 15 42 31 349 83,30% 32,61% 89,26% 26,32% 91,84% 0,291 0,539 0,609 BG+NB 14 47 32 344 81,92% 30,44% 87,98% 22,95% 91,49% 0,262 0,517 0,592 ROS+NB 15 44 31 347 82,84% 32,61% 88,75% 25,42% 91,80% 0,286 0,538 0,607 ROS+AB+NB 16 46 30 345 82,61% 34,78% 88,24% 25,81% 92,00% 0,296 0,554 0,615 ROS+BG+NB 17 50 29 341 81,92% 36,96% 87,21% 25,37% 92,16% 0,301 0,568 0,621 RUS+NB 15 71 31 320 76,66% 32,61% 81,84% 17,44% 91,17% 0,227 0,517 0,572 RUS+AB+NB 16 78 30 313 75,29% 34,78% 80,05% 17,02% 91,25% 0,229 0,528 0,574 RUS+BG+NB 18 85 28 306 74,14% 39,13% 78,26% 17,48% 91,62% 0,242 0,553 0,587 FSMOTE+NB 22 115 24 276 68,19% 47,83% 70,59% 16,06% 92,00% 0,24 0,581 0,592 FSMOTE+AB+NB 22 115 24 276 68,19% 47,83% 70,59% 16,06% 92,00% 0,24 0,581 0,592 FSMOTE+BG+NB 22 116 24 275 67,96% 47,83% 70,33% 15,94% 91,97% 0,239 0,58 0,591
Tabel 4.26 Hasil Pengukuran Penerapan Dataset JM1 dari PROMISE Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
TP 318 318 324 324 324 333 325 325 339 382 375 395
FP 342 342 344 344 344 346 353 353 370 411 395 426
FN 1294 1294 1288 1288 1288 1279 1287 1287 1273 1230 1237 1217
TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC 5766 78,81% 19,73% 94,40% 48,18% 81,67% 0,28 0,432 0,571 5766 78,81% 19,73% 94,40% 48,18% 81,67% 0,28 0,432 0,571 5764 78,86% 20,10% 94,37% 48,50% 81,74% 0,284 0,436 0,572 5764 78,86% 20,10% 94,37% 48,50% 81,74% 0,284 0,436 0,572 5764 78,86% 20,10% 94,37% 48,50% 81,74% 0,284 0,436 0,572 5762 78,95% 20,66% 94,34% 49,04% 81,84% 0,291 0,441 0,575 5755 78,76% 20,16% 94,22% 47,94% 81,72% 0,284 0,436 0,572 5755 78,76% 20,16% 94,22% 47,94% 81,72% 0,284 0,436 0,572 5738 78,72% 21,03% 93,94% 47,81% 81,84% 0,292 0,444 0,575 5697 78,74% 23,70% 93,27% 48,17% 82,24% 0,318 0,47 0,585 5713 78,86% 23,26% 93,53% 48,70% 82,20% 0,315 0,466 0,584 5682 78,72% 24,50% 93,03% 48,11% 82,36% 0,325 0,477 0,588
Tabel 4.27 Hasil Pengukuran Penerapan Dataset KC1 dari PROMISE Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
TP 99 99 99 100 113 100 98 98 101 139 124 142
FP 107 107 111 112 204 113 108 108 118 173 157 181
FN 195 195 195 194 181 194 196 196 193 155 170 152
TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC 761 74,01% 33,67% 87,67% 48,06% 79,60% 0,396 0,543 0,607 761 74,01% 33,67% 87,67% 48,06% 79,60% 0,396 0,543 0,607 757 73,67% 33,67% 87,21% 47,14% 79,52% 0,393 0,542 0,604 756 73,67% 34,01% 87,10% 47,17% 79,58% 0,395 0,544 0,606 664 66,87% 38,44% 76,50% 35,65% 78,58% 0,37 0,542 0,575 755 73,58% 34,01% 86,98% 46,95% 79,56% 0,394 0,544 0,605 760 73,84% 33,33% 87,56% 47,57% 79,50% 0,392 0,54 0,604 760 73,84% 33,33% 87,56% 47,57% 79,50% 0,392 0,54 0,604 750 73,24% 34,35% 86,41% 46,12% 79,53% 0,394 0,545 0,604 695 71,77% 47,28% 80,07% 44,55% 81,77% 0,459 0,615 0,637 711 71,86% 42,18% 81,91% 44,13% 80,70% 0,431 0,588 0,62 687 71,34% 48,30% 79,15% 43,96% 81,88% 0,46 0,618 0,637
138
Tabel 4.28 Hasil Pengukuran Penerapan Dataset KC3 dari PROMISE Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
TP 18 17 18 18 18 18 22 17 24 19 19 20
FP 34 26 34 33 34 36 84 44 124 44 44 43
FN 24 25 24 24 24 24 20 25 18 23 23 22
TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC 248 82,10% 42,86% 87,94% 34,62% 91,18% 0,383 0,614 0,654 256 84,26% 40,48% 90,78% 39,54% 91,10% 0,4 0,606 0,656 248 82,10% 42,86% 87,94% 34,62% 91,18% 0,383 0,614 0,654 249 82,41% 42,86% 88,30% 35,29% 91,21% 0,387 0,615 0,656 248 82,10% 42,86% 87,94% 34,62% 91,18% 0,383 0,614 0,654 246 81,48% 42,86% 87,23% 33,33% 91,11% 0,375 0,611 0,65 198 67,90% 52,38% 70,21% 20,76% 90,83% 0,297 0,606 0,613 238 78,70% 40,48% 84,40% 27,87% 90,49% 0,33 0,584 0,624 158 56,17% 57,14% 56,03% 16,22% 89,77% 0,253 0,566 0,566 238 79,32% 45,24% 84,40% 30,16% 91,19% 0,362 0,618 0,648 238 79,32% 45,24% 84,40% 30,16% 91,19% 0,362 0,618 0,648 239 79,94% 47,62% 84,75% 31,75% 91,57% 0,381 0,635 0,662
Tabel 4.29 Hasil Pengukuran Penerapan Dataset MC2 dari PROMISE Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
TP 18 18 18 18 24 19 20 20 24 20 22 23
FP 9 12 10 9 16 10 9 10 14 9 14 10
FN 33 33 33 33 27 32 31 31 27 31 29 28
TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC 95 72,90% 35,29% 91,35% 66,67% 74,22% 0,462 0,568 0,633 92 70,97% 35,29% 88,46% 60,00% 73,60% 0,444 0,559 0,619 94 72,26% 35,29% 90,39% 64,29% 74,02% 0,456 0,565 0,628 95 72,90% 35,29% 91,35% 66,67% 74,22% 0,462 0,568 0,633 88 72,26% 47,06% 84,62% 60,00% 76,52% 0,527 0,631 0,658 94 72,90% 37,26% 90,39% 65,52% 74,60% 0,475 0,58 0,638 95 74,19% 39,22% 91,35% 68,97% 75,40% 0,5 0,599 0,653 94 73,55% 39,22% 90,39% 66,67% 75,20% 0,494 0,595 0,648 90 73,55% 47,06% 86,54% 63,16% 76,92% 0,539 0,638 0,668 95 74,19% 39,22% 91,35% 68,97% 75,40% 0,5 0,599 0,653 90 72,26% 43,14% 86,54% 61,11% 75,63% 0,506 0,611 0,648 94 75,48% 45,10% 90,39% 69,70% 77,05% 0,548 0,638 0,677
Tabel 4.30 Hasil Pengukuran Penerapan Dataset PC1 dari PROMISE Repository Model TP FP FN TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC NB 21 56 39 803 89,66% 35,00% 93,48% 27,27% 95,37% 0,307 0,572 0,642 AB+NB 21 56 39 803 89,66% 35,00% 93,48% 27,27% 95,37% 0,307 0,572 0,642 BG+NB 22 67 38 792 88,58% 36,67% 92,20% 24,72% 95,42% 0,295 0,581 0,644 ROS+NB 22 60 38 799 89,34% 36,67% 93,02% 26,83% 95,46% 0,31 0,584 0,648 ROS+AB+NB 22 58 38 801 89,55% 36,67% 93,25% 27,50% 95,47% 0,314 0,585 0,65 ROS+BG+NB 22 63 38 796 89,01% 36,67% 92,67% 25,88% 95,44% 0,303 0,583 0,647 RUS+NB 24 81 36 778 87,27% 40,00% 90,57% 22,86% 95,58% 0,291 0,602 0,653 RUS+AB+NB 24 81 36 778 87,27% 40,00% 90,57% 22,86% 95,58% 0,291 0,602 0,653 RUS+BG+NB 25 93 35 766 86,07% 41,67% 89,17% 21,19% 95,63% 0,281 0,61 0,654 FSMOTE+NB 25 102 35 757 85,09% 41,67% 88,13% 19,69% 95,58% 0,267 0,606 0,649 FSMOTE+AB+NB 25 99 35 760 85,42% 41,67% 88,48% 20,16% 95,60% 0,272 0,607 0,651 FSMOTE+BG+NB 25 100 35 759 85,31% 41,67% 88,36% 20,00% 95,59% 0,27 0,607 0,65
139
Tabel 4.31 Hasil Pengukuran Penerapan Dataset PC2 dari PROMISE Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
TP 5 5 7 5 12 6 10 8 20 4 4 4
FP 86 86 117 87 252 75 413 143 1036 50 56 58
FN 16 16 14 16 9 15 11 13 1 17 17 17
TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC 1255 92,51% 23,81% 93,59% 5,50% 98,74% 0,089 0,472 0,587 1255 92,51% 23,81% 93,59% 5,50% 98,74% 0,089 0,472 0,587 1224 90,38% 33,33% 91,28% 5,65% 98,87% 0,097 0,552 0,623 1254 92,44% 23,81% 93,51% 5,44% 98,74% 0,088 0,472 0,587 1089 80,84% 57,14% 81,21% 4,55% 99,18% 0,084 0,681 0,692 1266 93,39% 28,57% 94,41% 7,41% 98,83% 0,118 0,519 0,615 928 68,87% 47,62% 69,20% 2,36% 98,83% 0,045 0,574 0,584 1198 88,55% 38,10% 89,34% 5,30% 98,93% 0,093 0,583 0,637 305 23,86% 95,24% 22,74% 1,89% 99,67% 0,037 0,465 0,59 1291 95,08% 19,05% 96,27% 7,41% 98,70% 0,107 0,428 0,577 1285 94,64% 19,05% 95,82% 6,67% 98,69% 0,099 0,427 0,574 1283 94,49% 19,05% 95,68% 6,45% 98,69% 0,096 0,427 0,574
Tabel 4.32 Hasil Pengukuran Penerapan Dataset PC3 dari PROMISE Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
TP 126 21 117 126 126 128 103 108 106 97 97 94
FP 720 88 481 758 759 790 553 552 418 441 441 417
FN 22 127 31 22 22 20 45 40 42 51 51 54
TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC 541 47,34% 85,14% 42,90% 14,89% 96,09% 0,254 0,604 0,64 ### 84,74% 14,19% 93,02% 19,27% 90,23% 0,163 0,363 0,536 780 63,66% 79,05% 61,86% 19,57% 96,18% 0,314 0,699 0,705 503 44,64% 85,14% 39,89% 14,25% 95,81% 0,244 0,583 0,625 502 44,57% 85,14% 39,81% 14,24% 95,80% 0,244 0,582 0,625 471 42,51% 86,49% 37,35% 13,94% 95,93% 0,24 0,568 0,619 708 57,56% 69,60% 56,15% 15,70% 94,02% 0,256 0,625 0,629 709 57,98% 72,97% 56,23% 16,36% 94,66% 0,267 0,641 0,646 843 67,35% 71,62% 66,85% 20,23% 95,25% 0,315 0,692 0,692 820 65,08% 65,54% 65,03% 18,03% 94,15% 0,283 0,653 0,653 820 65,08% 65,54% 65,03% 18,03% 94,15% 0,283 0,653 0,653 844 66,57% 63,51% 66,93% 18,40% 93,99% 0,285 0,652 0,652
Tabel 4.33 Hasil Pengukuran Penerapan Dataset PC4 dari PROMISE Repository Model TP FP FN TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC NB 51 60 125 1034 85,43% 28,98% 94,52% 45,95% 89,22% 0,355 0,523 0,617 AB+NB 88 102 88 992 85,04% 50,00% 90,68% 46,32% 91,85% 0,481 0,673 0,703 BG+NB 56 69 120 1025 85,12% 31,82% 93,69% 44,80% 89,52% 0,372 0,546 0,628 ROS+NB 53 62 123 1032 85,43% 30,11% 94,33% 46,09% 89,35% 0,364 0,533 0,622 ROS+AB+NB 70 94 106 1000 84,25% 39,77% 91,41% 42,68% 90,42% 0,412 0,603 0,656 ROS+BG+NB 56 71 120 1023 84,96% 31,82% 93,51% 44,09% 89,50% 0,37 0,545 0,627 RUS+NB 51 91 125 1003 82,99% 28,98% 91,68% 35,92% 88,92% 0,321 0,515 0,603 RUS+AB+NB 56 92 120 1002 83,31% 31,82% 91,59% 37,84% 89,31% 0,346 0,54 0,617 RUS+BG+NB 63 113 113 981 82,21% 35,80% 89,67% 35,80% 89,67% 0,358 0,567 0,627 FSMOTE+NB 82 120 94 974 83,15% 46,59% 89,03% 40,59% 91,20% 0,434 0,644 0,678 FSMOTE+AB+NB 82 120 94 974 83,15% 46,59% 89,03% 40,59% 91,20% 0,434 0,644 0,678 FSMOTE+BG+NB 84 126 92 968 82,84% 47,73% 88,48% 40,00% 91,32% 0,435 0,65 0,681
140
Tabel 4.34 Hasil Pengukuran Penerapan Dataset PC5 dari PROMISE Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
TP 99 99 106 101 187 101 101 101 113 145 145 150
FP 69 69 73 69 251 75 73 73 78 108 108 115
FN 359 359 352 357 271 357 357 357 345 313 313 308
TN Accuracy Sensitivity Specificity PPV NPV F-Measure G-Mean AUC 1167 74,73% 21,62% 94,42% 58,93% 76,47% 0,316 0,452 0,58 1167 74,73% 21,62% 94,42% 58,93% 76,47% 0,316 0,452 0,58 1163 74,91% 23,14% 94,09% 59,22% 76,77% 0,333 0,467 0,586 1167 74,85% 22,05% 94,42% 59,41% 76,58% 0,322 0,456 0,582 985 69,19% 40,83% 79,69% 42,69% 78,42% 0,417 0,57 0,603 1161 74,50% 22,05% 93,93% 57,39% 76,48% 0,319 0,455 0,58 1163 74,62% 22,05% 94,09% 58,05% 76,51% 0,32 0,456 0,581 1163 74,62% 22,05% 94,09% 58,05% 76,51% 0,32 0,456 0,581 1158 75,03% 24,67% 93,69% 59,16% 77,05% 0,348 0,481 0,592 1128 75,15% 31,66% 91,26% 57,31% 78,28% 0,408 0,538 0,615 1128 75,15% 31,66% 91,26% 57,31% 78,28% 0,408 0,538 0,615 1121 75,03% 32,75% 90,70% 56,60% 78,45% 0,415 0,545 0,617
Tabel 4.35 Rekap Pengukuran Akurasi Model pada NASA MDP Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
CM1 81,65% 81,65% 81,96% 81,65% 81,35% 81,04% 79,82% 71,25% 78,29% 72,78% 72,78% 73,70%
JM1 78,87% 78,87% 78,76% 78,81% 78,81% 78,73% 78,80% 78,80% 78,74% 78,80% 78,81% 78,87%
KC1 74,10% 74,10% 73,84% 74,10% 64,11% 74,10% 73,41% 73,41% 73,06% 69,79% 71,69% 69,54%
NASA MDP Repository KC3 MC2 PC1 PC2 78,87% 72,58% 88,81% 88,09% 78,87% 73,39% 90,87% 88,37% 78,35% 71,77% 88,22% 76,18% 78,87% 71,77% 88,81% 88,50% 77,32% 71,77% 88,51% 88,64% 78,35% 73,39% 88,51% 87,81% 77,84% 73,39% 87,19% 68,28% 74,74% 73,39% 87,19% 68,84% 73,71% 73,39% 84,54% 36,43% 76,29% 72,58% 90,72% 92,94% 76,29% 72,58% 90,72% 92,94% 76,80% 73,39% 90,57% 93,21%
PC3 36,75% 84,81% 39,51% 36,75% 36,47% 44,44% 59,54% 68,85% 56,32% 56,22% 56,22% 57,65%
PC4 85,59% 85,98% 85,04% 85,91% 84,96% 85,91% 84,41% 84,09% 83,94% 84,02% 84,02% 84,25%
PC5 75,03% 75,03% 74,85% 75,03% 67,30% 74,56% 74,97% 74,97% 74,91% 75,27% 75,27% 74,91%
Tabel 4.36 Rekap Pengukuran Akurasi Model pada PROMISE Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
CM1 82,61% 83,30% 81,92% 82,84% 82,61% 81,92% 76,66% 75,29% 74,14% 68,19% 68,19% 67,96%
JM1 78,81% 78,81% 78,86% 78,86% 78,86% 78,95% 78,76% 78,76% 78,72% 78,74% 78,86% 78,72%
KC1 74,01% 74,01% 73,67% 73,67% 66,87% 73,58% 73,84% 73,84% 73,24% 71,77% 71,86% 71,34%
PROMISE Repository KC3 MC2 PC1 PC2 82,10% 72,90% 89,66% 92,51% 84,26% 70,97% 89,66% 92,51% 82,10% 72,26% 88,58% 90,38% 82,41% 72,90% 89,34% 92,44% 82,10% 72,26% 89,55% 80,84% 81,48% 72,90% 89,01% 93,39% 67,90% 74,19% 87,27% 68,87% 78,70% 73,55% 87,27% 88,55% 56,17% 73,55% 86,07% 23,86% 79,32% 74,19% 85,09% 95,08% 79,32% 72,26% 85,42% 94,64% 79,94% 75,48% 85,31% 94,49%
141
PC3 47,34% 84,74% 63,66% 44,64% 44,57% 42,51% 57,56% 57,98% 67,35% 65,08% 65,08% 66,57%
PC4 85,43% 85,04% 85,12% 85,43% 84,25% 84,96% 82,99% 83,31% 82,21% 83,15% 83,15% 82,84%
PC5 74,73% 74,73% 74,91% 74,85% 69,19% 74,50% 74,62% 74,62% 75,03% 75,15% 75,15% 75,03%
Tabel 4.37 Rekap Pengukuran Sensitivitas Model pada NASA MDP Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
CM1 30,95% 30,95% 33,33% 33,33% 33,33% 33,33% 35,71% 33,33% 40,48% 42,86% 42,86% 45,24%
JM1 19,85% 19,85% 20,60% 19,60% 19,60% 19,60% 19,98% 19,98% 20,41% 21,46% 21,77% 22,71%
KC1 33,67% 33,67% 34,35% 34,01% 45,92% 35,03% 32,65% 32,65% 33,33% 45,58% 41,50% 46,26%
NASA MDP Repository KC3 MC2 PC1 PC2 36,11% 38,64% 40,00% 12,50% 36,11% 40,91% 34,55% 12,50% 36,11% 40,91% 41,82% 43,75% 36,11% 36,36% 40,00% 12,50% 38,89% 36,36% 40,00% 12,50% 36,11% 40,91% 40,00% 12,50% 36,11% 43,18% 43,64% 62,50% 30,56% 43,18% 43,64% 62,50% 50,00% 45,46% 45,46% 75,00% 22,22% 38,64% 30,91% 25,00% 22,22% 38,64% 30,91% 25,00% 25,00% 45,46% 30,91% 25,00%
PC3 90,77% 9,23% 91,54% 89,23% 89,23% 90,00% 70,77% 56,15% 69,23% 74,62% 74,62% 74,62%
PC4 28,98% 48,30% 35,23% 28,98% 26,71% 29,55% 31,82% 47,73% 40,34% 47,73% 47,73% 48,86%
PC5 22,27% 22,27% 23,58% 22,05% 51,75% 21,83% 24,02% 24,02% 25,11% 25,33% 25,33% 25,11%
Tabel 4.38 Rekap Pengukuran Sensitivitas Model pada PROMISE Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
CM1 32,61% 32,61% 30,44% 32,61% 34,78% 36,96% 32,61% 34,78% 39,13% 47,83% 47,83% 47,83%
JM1 19,73% 19,73% 20,10% 20,10% 20,10% 20,66% 20,16% 20,16% 21,03% 23,70% 23,26% 24,50%
KC1 33,67% 33,67% 33,67% 34,01% 38,44% 34,01% 33,33% 33,33% 34,35% 47,28% 42,18% 48,30%
PROMISE Repository KC3 MC2 PC1 PC2 42,86% 35,29% 35,00% 23,81% 40,48% 35,29% 35,00% 23,81% 42,86% 35,29% 36,67% 33,33% 42,86% 35,29% 36,67% 23,81% 42,86% 47,06% 36,67% 57,14% 42,86% 37,26% 36,67% 28,57% 52,38% 39,22% 40,00% 47,62% 40,48% 39,22% 40,00% 38,10% 57,14% 47,06% 41,67% 95,24% 45,24% 39,22% 41,67% 19,05% 45,24% 43,14% 41,67% 19,05% 47,62% 45,10% 41,67% 19,05%
PC3 85,14% 14,19% 79,05% 85,14% 85,14% 86,49% 69,60% 72,97% 71,62% 65,54% 65,54% 63,51%
PC4 28,98% 50,00% 31,82% 30,11% 39,77% 31,82% 28,98% 31,82% 35,80% 46,59% 46,59% 47,73%
PC5 21,62% 21,62% 23,14% 22,05% 40,83% 22,05% 22,05% 22,05% 24,67% 31,66% 31,66% 32,75%
Tabel 4.39 Rekap Pengukuran F-Measure Model pada NASA MDP Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
CM1 0,302 0,302 0,322 0,318 0,315 0,311 0,313 0,230 0,324 0,288 0,288 0,306
JM1 0,282 0,282 0,288 0,279 0,279 0,278 0,282 0,282 0,286 0,297 0,300 0,310
KC1 0,397 0,397 0,399 0,399 0,393 0,406 0,383 0,383 0,385 0,433 0,426 0,435
NASA MDP Repository KC3 MC2 PC1 PC2 0,388 0,500 0,367 0,044 0,388 0,522 0,380 0,045 0,382 0,507 0,365 0,075 0,388 0,478 0,367 0,046 0,389 0,478 0,361 0,047 0,382 0,522 0,361 0,043 0,377 0,535 0,356 0,080 0,310 0,535 0,356 0,082 0,414 0,548 0,323 0,050 0,258 0,500 0,351 0,136 0,258 0,500 0,351 0,136 0,286 0,548 0,347 0,140
142
PC3 0,262 0,130 0,272 0,258 0,257 0,286 0,302 0,308 0,281 0,296 0,296 0,303
PC4 0,358 0,489 0,395 0,363 0,330 0,367 0,361 0,454 0,410 0,453 0,453 0,462
PC5 0,325 0,325 0,336 0,323 0,461 0,317 0,342 0,342 0,351 0,356 0,356 0,351
Tabel 4.40 Rekap Pengukuran F-Measure Model pada PROMISE Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
CM1 0,283 0,291 0,262 0,286 0,296 0,301 0,227 0,229 0,242 0,240 0,240 0,239
JM1 0,280 0,280 0,284 0,284 0,284 0,291 0,284 0,284 0,292 0,318 0,315 0,325
KC1 0,396 0,396 0,393 0,395 0,370 0,394 0,392 0,392 0,394 0,459 0,431 0,460
PROMISE Repository KC3 MC2 PC1 0,383 0,462 0,307 0,400 0,444 0,307 0,383 0,456 0,295 0,387 0,462 0,310 0,383 0,527 0,314 0,375 0,475 0,303 0,297 0,500 0,291 0,330 0,494 0,291 0,253 0,539 0,281 0,362 0,500 0,267 0,362 0,506 0,272 0,381 0,548 0,270
PC2 0,089 0,089 0,097 0,088 0,084 0,118 0,045 0,093 0,037 0,107 0,099 0,096
PC3 0,254 0,163 0,314 0,244 0,244 0,240 0,256 0,267 0,315 0,283 0,283 0,285
PC4 0,355 0,481 0,372 0,364 0,412 0,370 0,321 0,346 0,358 0,434 0,434 0,435
PC5 0,316 0,316 0,333 0,322 0,417 0,319 0,320 0,320 0,348 0,408 0,408 0,415
Tabel 4.41 Rekap Pengukuran G-Mean Model pada NASA MDP Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
CM1 0,525 0,525 0,545 0,544 0,543 0,542 0,555 0,506 0,583 0,575 0,575 0,594
JM1 0,433 0,433 0,440 0,430 0,430 0,430 0,434 0,434 0,438 0,449 0,452 0,461
KC1 0,544 0,544 0,547 0,546 0,568 0,553 0,534 0,534 0,537 0,596 0,583 0,598
NASA MDP Repository KC3 MC2 PC1 PC2 0,566 0,594 0,610 0,335 0,566 0,611 0,575 0,336 0,564 0,603 0,621 0,580 0,566 0,576 0,610 0,336 0,579 0,576 0,609 0,336 0,564 0,611 0,609 0,335 0,562 0,623 0,630 0,654 0,509 0,623 0,630 0,657 0,629 0,635 0,632 0,516 0,444 0,594 0,545 0,486 0,444 0,594 0,545 0,486 0,471 0,635 0,544 0,487
143
PC3 0,514 0,297 0,543 0,512 0,509 0,585 0,640 0,630 0,614 0,633 0,633 0,642
PC4 0,524 0,667 0,573 0,525 0,502 0,530 0,544 0,655 0,606 0,655 0,655 0,663
PC5 0,459 0,459 0,470 0,457 0,615 0,453 0,475 0,475 0,484 0,487 0,487 0,484
Tabel 4.42 Rekap Pengukuran G-Mean Model pada PROMISE Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
CM1 0,537 0,539 0,517 0,538 0,554 0,568 0,517 0,528 0,553 0,581 0,581 0,580
JM1 0,432 0,432 0,436 0,436 0,436 0,441 0,436 0,436 0,444 0,470 0,466 0,477
KC1 0,543 0,543 0,542 0,544 0,542 0,544 0,540 0,540 0,545 0,615 0,588 0,618
PROMISE Repository KC3 MC2 PC1 0,614 0,568 0,572 0,606 0,559 0,572 0,614 0,565 0,581 0,615 0,568 0,584 0,614 0,631 0,585 0,611 0,580 0,583 0,606 0,599 0,602 0,584 0,595 0,602 0,566 0,638 0,610 0,618 0,599 0,606 0,618 0,611 0,607 0,635 0,638 0,607
PC2 0,472 0,472 0,552 0,472 0,681 0,519 0,574 0,583 0,465 0,428 0,427 0,427
PC3 0,604 0,363 0,699 0,583 0,582 0,568 0,625 0,641 0,692 0,653 0,653 0,652
PC4 0,523 0,673 0,546 0,533 0,603 0,545 0,515 0,540 0,567 0,644 0,644 0,650
PC5 0,452 0,452 0,467 0,456 0,570 0,455 0,456 0,456 0,481 0,538 0,538 0,545
Tabel 4.43 Rekap Pengukuran AUC Model pada NASA MDP Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
CM1 0,600 0,600 0,612 0,611 0,609 0,607 0,610 0,551 0,622 0,600 0,600 0,616
JM1 0,572 0,572 0,574 0,570 0,570 0,570 0,571 0,571 0,573 0,577 0,578 0,582
KC1 0,607 0,607 0,608 0,608 0,581 0,612 0,599 0,599 0,599 0,618 0,617 0,618
NASA MDP Repository KC3 MC2 PC1 PC2 0,624 0,649 0,666 0,512 0,624 0,661 0,652 0,513 0,620 0,648 0,671 0,603 0,624 0,638 0,666 0,514 0,625 0,638 0,664 0,514 0,620 0,661 0,664 0,510 0,617 0,666 0,673 0,655 0,577 0,666 0,673 0,657 0,646 0,671 0,667 0,553 0,554 0,649 0,635 0,597 0,554 0,649 0,635 0,597 0,568 0,671 0,634 0,599
PC3 0,600 0,523 0,619 0,593 0,591 0,640 0,644 0,634 0,619 0,641 0,641 0,649
PC4 0,618 0,702 0,641 0,620 0,605 0,623 0,623 0,688 0,656 0,688 0,688 0,694
PC5 0,584 0,584 0,587 0,584 0,624 0,580 0,589 0,589 0,592 0,595 0,595 0,592
Tabel 4.44 Rekap Pengukuran AUC Model pada PROMISE Repository Model NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
CM1 0,605 0,609 0,592 0,607 0,615 0,621 0,572 0,574 0,587 0,592 0,592 0,591
JM1 0,571 0,571 0,572 0,572 0,572 0,575 0,572 0,572 0,575 0,585 0,584 0,588
KC1 0,607 0,607 0,604 0,606 0,575 0,605 0,604 0,604 0,604 0,637 0,620 0,637
PROMISE Repository KC3 MC2 PC1 0,654 0,633 0,642 0,656 0,619 0,642 0,654 0,628 0,644 0,656 0,633 0,648 0,654 0,658 0,650 0,650 0,638 0,647 0,613 0,653 0,653 0,624 0,648 0,653 0,566 0,668 0,654 0,648 0,653 0,649 0,648 0,648 0,651 0,662 0,677 0,650
144
PC2 0,587 0,587 0,623 0,587 0,692 0,615 0,584 0,637 0,590 0,577 0,574 0,574
PC3 0,640 0,536 0,705 0,625 0,625 0,619 0,629 0,646 0,692 0,653 0,653 0,652
PC4 0,617 0,703 0,628 0,622 0,656 0,627 0,603 0,617 0,627 0,678 0,678 0,681
PC5 0,580 0,580 0,586 0,582 0,603 0,580 0,581 0,581 0,592 0,615 0,615 0,617
4.2 4.2.1
Pembahasan Meningkatkan Kinerja Pengklasifikasi (Naϊve Bayes) pada Model Prediksi Cacat Software Pada bagian ini akan dibahas hasil pengukuran kinerja model, untuk
menjawab rumusan masalah yang pertama, yaitu dapatkah kinerja pengklasifikasi (Naϊve Bayes) ditingkatkan untuk memperbaiki model prediksi cacat software? Untuk menjawabnya ditunjukkan perbandingan kinerja model pengklasifikasi (Naϊve Bayes) dan model yang telah dioptimasi menggunakan diagram box and whisker plots. Gambar 4.2 menunjukkan perbandingan akurasi, Gambar 4.3 menunjukkan perbandingan sensitivitas, Gambar 4.4 menunjukkan perbandingan F-Measure, Gambar 45 menunjukkan perbandingan G-Mean, dan Gambar 4.6 menunjukkan perbandingan AUC.
Gambar 4.2 Diagram Perbandingan Akurasi Model Prediksi Cacat Software
Diagram perbandingan akurasi Gambar 4.2 menunjukkan bahwa model AB+NB menghasilkan akurasi yang lebih baik dari pada pengklasifikasi NB, Sedangkan akurasi model lain cenderung sama atau lebih rendah. Hal ini menunjukkan bahwa model AB+NB memiliki kemampuan lebih baik dalam mengklasifikasikan data secara umum (baik cacat maupun tidak cacat).
145
Gambar 4.3 Diagram Perbandingan Sensitivitas Model Prediksi Cacat Software
Diagram perbandingan Sensitivitas Gambar 4.3 menunjukkan bahwa model BG+NB,
ROS+AB+NB,
ROS+BG+NB,
RUS+NB,
RUS+AB+NB,
RUS+BG+NB, FSMOTE+NB, FSMOTE+AB+NB, dan FSMOTE+BG+NB menghasilkan nilai sensitivitas yang lebih baik dari pada pengklasifikasi NB. Sedangkan sensitifitas model AB+NB lebih rendah dari pada model NB, dan model ROS+NB cenderung memiliki sensitifitas yang sama.
146
Gambar 4.4 Diagram Perbandingan F-Measure Model Prediksi Cacat Software
Diagram perbandingan F-Measure Gambar 4.4 menunjukkan bahwa model BG+NB,
ROS+AB+NB,
FSMOTE+NB,
FSMOTE+AB+NB,
dan
FSMOTE+BG+NB menghasilkan nilai F-Measure yang lebih baik dari pada pengklasifikasi NB.
147
Gambar 4.5 Diagram Perbandingan G-Mean Model Prediksi Cacat Software
Diagram perbandingan G-Mean Gambar 4.5 menunjukkan bahwa model BG+NB,
ROS+AB+NB,
ROS+BG+NB,
RUS+NB,
RUS+AB+NB,
RUS+BG+NB, FSMOTE+NB, FSMOTE+AB+NB, dan FSMOTE+BG+NB menghasilkan nilai G-Mean yang lebih baik dari pada pengklasifikasi NB.
148
Gambar 4.6 Diagram Perbandingan AUC Model Prediksi Cacat Software
Diagram perbandingan AUC Gambar 4.6 menunjukkan bahwa model BG+NB,
ROS+AB+NB,
ROS+BG+NB,
RUS+NB,
RUS+AB+NB,
RUS+BG+NB, FSMOTE+NB, FSMOTE+AB+NB, dan FSMOTE+BG+NB menghasilkan nilai AUC yang lebih baik dari pada pengklasifikasi NB. Tetapi klasifikasi
keakuratan
pengujian
diagnostik
berdasarkan
grafik
tersebut
menunjukkan bahwa nilai AUC hanya berkisar antara 0,6 sampai 0,7, maka dikategorikan sedang (fair). Dari kelima diagram perbandingan kinerja model prediksi cacat software menunjukkan bahwa ada model prediksi cacat software yang memiliki kinerja lebih baik dari model pengklasifikasi NB. Sehingga dapat disimpulkan bahwa kinerja pengklasifikasi NB masih dapat ditingkatkan untuk memperbaiki model prediksi cacat software. Kesimpulan ini telah menjawab rumusan masalah yang pertama (RQ1).
4.2.2
Pendekatan Level Algoritma (Ensemble)
4.2.2.1 AdaBoost Berbasis Naïve Bayes Untuk mengetahui signifikansi peningkatan kinerja Naϊve Bayes jika diintegrasikan dengan algoritma AdaBoost pada prediksi cacat software, maka
149
dilakukan uji statistik. Uji statistik yang digunakan adalah uji T (T-test) satu sisi untuk sisi bawah, uji tanda (sign test) satu sisi untuk sisi bawah, uji peringkat bertanda Wilcoxon (Wilcoxon signed-rank test) satu sisi untuk sisi bawah, dan uji Friedman (Friedman test) dan uji konkordansi Kendall (Kendall's coefficient of concordance atau Kendall's W). Beberapa pengujian yang dilakukan adalah: A. Uji T (T-test) Pada uji T (T-test) satu sisi untuk sisi bawah ditetapkan hipotesis sebagai berikut: 𝐻0 : 𝜇𝑁𝐵 ≥ 𝜇𝐴𝐵+𝑁𝐵 (Model AB+NB tidak lebih baik daripada NB) 𝐻1 : 𝜇𝑁𝐵 < 𝜇𝐴𝐵+𝑁𝐵 (Model AB+NB lebih baik daripada NB)
Tabel 4.45 Uji T (T-Test) Sampel Berpasangan Akurasi Model NB dan AB+NB
Berdasarkan hasil uji T terhadap pengukuran akurasi seperti yang terlihat pada Tabel 4.45, nilai mean model AB+NB lebih tinggi 0,04476 dari pada model NB. P-value untuk dua sisi adalah 0,147, maka nilai P-value untuk satu sisi adalah
0,147 2
= 0,0735. Karena P-value lebih besar dari ∝
= 0,05 maka H0 diterima dan H1 ditolak. Sehingga disimpulkan bahwa model AB+NB tidak lebih baik dari pada NB.
Tabel 4.46 Uji T (T-Test) Sampel Berpasangan Sensitivitas Model NB dan AB+NB
150
Berdasarkan hasil uji T terhadap pengukuran sensitivitas seperti yang terlihat pada Tabel 4.46, nilai mean model AB+NB lebih rendah 0,05885 dari pada model NB. P-value untuk dua sisi adalah 0,305, maka nilai Pvalue untuk satu sisi adalah
0,305 2
= 0,1525. Karena P-value lebih besar
dari ∝= 0,05 maka H0 diterima dan H1 ditolak. Sehingga disimpulkan bahwa model AB+NB tidak lebih baik dari pada NB.
Tabel 4.47 Uji T (T-Test) Sampel Berpasangan F-Measure Model NB dan AB+NB
Berdasarkan hasil uji T terhadap pengukuran F-Measure seperti yang terlihat pada Tabel 4.47, nilai mean model AB+NB lebih tinggi 0,00385 dari pada model NB. P-value untuk dua sisi adalah 0,762, maka nilai Pvalue untuk satu sisi adalah
0,762 2
= 0,381. Karena P-value lebih besar
dari ∝= 0,05 maka H0 diterima dan H1 ditolak. Sehingga disimpulkan bahwa model AB+NB tidak lebih baik dari pada NB.
Tabel 4.48 Uji T (T-Test) Sampel Berpasangan G-Mean Model NB dan AB+NB
Berdasarkan hasil uji T terhadap pengukuran G-Mean seperti yang terlihat pada Tabel 4.48, nilai mean model AB+NB lebih rendah 0,00985 dari pada model NB. P-value untuk dua sisi adalah 0,623, maka nilai Pvalue untuk satu sisi adalah
0,623 2
= 0,3115. Karena P-value lebih besar
dari ∝= 0,05 maka H0 diterima dan H1 ditolak. Sehingga disimpulkan bahwa model AB+NB tidak lebih baik dari pada NB.
151
Tabel 4.49 Uji T (T-Test) Sampel Berpasangan AUC Model NB dan AB+NB
Berdasarkan hasil uji T terhadap pengukuran AUC seperti yang terlihat pada Tabel 4.49, nilai mean model AB+NB lebih rendah 0,001 dari pada model NB. P-value untuk dua sisi adalah 0,914, maka nilai P-value untuk satu sisi adalah
0,914 2
= 0,457. Karena P-value lebih besar dari ∝= 0,05
maka H0 diterima dan H1 ditolak. Sehingga disimpulkan bahwa model AB+NB tidak lebih baik dari pada NB. Rekap hasil uji T berpasangan model NB dan AB+NB ditampilkan pada Tabel 4.50.
Tabel 4.50 Rekap Uji T untuk Model NB dan AB+NB Pengukuran
Mean (AB+NB - NB)
Akurasi
0,04476
Sensitivitas
-0,05885
F-Measure
0,00385
G-Mean
-0,00985
AUC
-0,00100
P-Value
Hasil (α = 0,05)
Model AB+NB tidak lebih baik daripada NB Model AB+NB tidak lebih baik 0,1525 daripada NB Model AB+NB tidak lebih baik 0,3810 daripada NB Model AB+NB tidak lebih baik 0,3115 daripada NB Model AB+NB tidak lebih baik 0,4570 daripada NB 0,0735
B. Uji tanda (sign test) Pada uji tanda (sign test) satu sisi untuk sisi bawah ditetapkan hipotesis sebagai berikut: 𝐻0 : 𝜋 ≥ 0,5 (Model AB+NB tidak lebih baik daripada NB) 𝐻1 : 𝜋 < 0,5 (Model AB+NB lebih baik daripada NB)
152
Tabel 4.51 Frekuensi Pengukuran Akurasi pada Uji Tanda
Tabel 4.52 Uji Tanda Pengukuran Akurasi
Berdasarkan frekuensi pengukuran akurasi pada uji tanda yang ditunjukkan pada Tabel 4.51 terlihat bahwa 2 sampel mengalami penurunan akurasi, 8 mengalami peningkatan akurasi, dan 10 relatif sama. Berdasarkan Tabel 4.52, P-value untuk dua sisi adalah 0,109, maka nilai P-value untuk satu sisi adalah
0,109 2
= 0,0545. Karena P-value lebih
besar dari ∝= 0,05 maka H0 diterima dan H1 ditolak. Sehingga disimpulkan bahwa model AB+NB tidak lebih baik dari pada NB.
Tabel 4.53 Frekuensi Pengukuran Sensitivitas pada Uji Tanda
153
Tabel 4.54 Uji Tanda Pengukuran Sensitivitas
Berdasarkan frekuensi pengukuran akurasi pada uji tanda yang ditunjukkan pada Tabel 4.53 terlihat bahwa 4 sampel mengalami penurunan akurasi, 3 mengalami peningkatan akurasi, dan 13 relatif sama. Berdasarkan Tabel 4.54, P-value untuk dua sisi adalah 1,0, maka nilai P-value untuk satu sisi adalah
1,0 2
= 0,5. Karena P-value lebih besar
dari ∝= 0,05 maka H0 diterima dan H1 ditolak. Sehingga disimpulkan bahwa model AB+NB tidak lebih baik dari pada NB.
Tabel 4.55 Frekuensi Pengukuran F-Measure pada Uji Tanda
Tabel 4.56 Uji Tanda Pengukuran F-Measure
154
Berdasarkan frekuensi pengukuran akurasi pada uji tanda yang ditunjukkan pada Tabel 4.55 terlihat bahwa 3 sampel mengalami penurunan akurasi, 7 mengalami peningkatan akurasi, dan 10 relatif sama. Berdasarkan Tabel 4.56, P-value untuk dua sisi adalah 0,344, maka nilai P-value untuk satu sisi adalah
0,344 2
= 0,172. Karena P-value lebih
besar dari ∝= 0,05 maka H0 diterima dan H1 ditolak. Sehingga disimpulkan bahwa model AB+NB tidak lebih baik dari pada NB.
Tabel 4.57 Frekuensi Pengukuran G-Mean pada Uji Tanda
Tabel 4.58 Uji Tanda Pengukuran G-Mean
Berdasarkan frekuensi pengukuran akurasi pada uji tanda yang ditunjukkan pada Tabel 4.57 terlihat bahwa 5 sampel mengalami penurunan akurasi, 5 mengalami peningkatan akurasi, dan 10 relatif sama. Berdasarkan Tabel 4.58, P-value untuk dua sisi adalah 1,0, maka nilai P-value untuk satu sisi adalah
1,0 2
= 0,5. Karena P-value lebih besar
dari ∝= 0,05 maka H0 diterima dan H1 ditolak. Sehingga disimpulkan bahwa model AB+NB tidak lebih baik dari pada NB.
155
Tabel 4.59 Frekuensi Pengukuran AUC pada Uji Tanda
Tabel 4.60 Uji Tanda Pengukuran AUC
Berdasarkan frekuensi pengukuran akurasi pada uji tanda yang ditunjukkan pada Tabel 4.59 terlihat bahwa 4 sampel mengalami penurunan akurasi, 6 mengalami peningkatan akurasi, dan 10 relatif sama. Berdasarkan Tabel 4.60, P-value untuk dua sisi adalah 0,754, maka nilai P-value untuk satu sisi adalah
0,754 2
= 0,377. Karena P-value lebih
besar dari ∝= 0,05 maka H0 diterima dan H1 ditolak. Sehingga disimpulkan bahwa model AB+NB tidak lebih baik dari pada NB.
Tabel 4.61 Rekap Uji Tanda untuk Model NB dan AB+NB Pengukuran Akurasi Sensitivitas F-Measure G-Mean AUC
Jumlah P-Value Hasil (α = 0,05) P N T 8 2 10 0,0545 Model AB+NB tidak lebih baik daripada NB 3 4 13 0,5000 Model AB+NB tidak lebih baik daripada NB 7 3 10 0,1720 Model AB+NB tidak lebih baik daripada NB 5 5 10 0,5000 Model AB+NB tidak lebih baik daripada NB 6 4 10 0,3770 Model AB+NB tidak lebih baik daripada NB
156
C. Uji Peringkat Bertanda Wilcoxon Pada uji peringkat bertanda Wilcoxon (Wilcoxon sign rank test) satu sisi untuk sisi bawah ditetapkan hipotesis sebagai berikut: 𝐻0 : 𝜂𝑁𝐵 ≥ 𝜂𝐴𝐵+𝑁𝐵 (Model AB+NB tidak lebih baik daripada NB) 𝐻1 : 𝜂𝑁𝐵 < 𝜂𝐴𝐵+𝑁𝐵 (Model AB+NB lebih baik daripada NB) Tabel 4.62 Peringkat Pengukuran Akurasi pada Uji Peringkat Bertanda Wilcoxon
Tabel 4.63 Uji Peringkat Bertanda Wilcoxon Pengukuran Akurasi
Berdasarkan frekuensi pengukuran akurasi pada uji tanda yang ditunjukkan pada Tabel 4.62 terlihat bahwa 2 sampel mengalami penurunan akurasi, 8 mengalami peningkatan akurasi, dan 10 relatif sama. Berdasarkan Tabel 4.63, P-value untuk dua sisi adalah 0,059, maka nilai P-value untuk satu sisi adalah
0,059 2
= 0,0295. Karena P-value lebih
kecil dari ∝= 0,05 maka H0 ditolak dan H1 diterima. Sehingga disimpulkan bahwa model AB+NB lebih baik dari pada NB.
157
Tabel 4.64 Peringkat Pengukuran Sensitivitas pada Uji Peringkat Bertanda Wilcoxon
Tabel 4.65 Uji Peringkat Bertanda Wilcoxon Pengukuran Sensitivitas
Berdasarkan frekuensi pengukuran akurasi pada uji tanda yang ditunjukkan pada Tabel 4.64 terlihat bahwa 4 sampel mengalami penurunan akurasi, 3 mengalami peningkatan akurasi, dan 13 relatif sama. Berdasarkan Tabel 4.65, P-value untuk dua sisi adalah 0,499, maka nilai P-value untuk satu sisi adalah
0,499 2
= 0,2495. Karena P-value lebih
besar dari ∝= 0,05 maka H0 diterima dan H1 ditolak. Sehingga disimpulkan bahwa model AB+NB tidak lebih baik dari pada NB.
Tabel 4.66 Peringkat Pengukuran F-Measure pada Uji Peringkat Bertanda Wilcoxon
158
Tabel 4.67 Uji Peringkat Bertanda Wilcoxon Pengukuran F-Measure
Berdasarkan frekuensi pengukuran akurasi pada uji tanda yang ditunjukkan pada Tabel 4.66 terlihat bahwa 3 sampel mengalami penurunan akurasi, 7 mengalami peningkatan akurasi, dan 10 relatif sama. Berdasarkan Tabel 4.67, P-value untuk dua sisi adalah 0,575, maka nilai P-value untuk satu sisi adalah
0,575 2
= 0,2875. Karena P-value lebih
besar dari ∝= 0,05 maka H0 diterima dan H1 ditolak. Sehingga disimpulkan bahwa model AB+NB tidak lebih baik dari pada NB.
Tabel 4.68 Peringkat Pengukuran G-Mean pada Uji Peringkat Bertanda Wilcoxon
Tabel 4.69 Uji Peringkat Bertanda Wilcoxon Pengukuran G-Mean
159
Berdasarkan frekuensi pengukuran akurasi pada uji tanda yang ditunjukkan pada Tabel 4.68 terlihat bahwa 5 sampel mengalami penurunan akurasi, 5 mengalami peningkatan akurasi, dan 10 relatif sama. Berdasarkan Tabel 4.69, P-value untuk dua sisi adalah 0,646, maka nilai P-value untuk satu sisi adalah
0,646 2
= 0,323. Karena P-value lebih
besar dari ∝= 0,05 maka H0 diterima dan H1 ditolak. Sehingga disimpulkan bahwa model AB+NB tidak lebih baik dari pada NB.
Tabel 4.70 Peringkat Pengukuran AUC pada Uji Peringkat Bertanda Wilcoxon
Tabel 4.71 Uji Peringkat Bertanda Wilcoxon Pengukuran AUC
Berdasarkan frekuensi pengukuran akurasi pada uji tanda yang ditunjukkan pada Tabel 4.70 terlihat bahwa 4 sampel mengalami penurunan akurasi, 6 mengalami peningkatan akurasi, dan 10 relatif sama. Berdasarkan Tabel 4.71, P-value untuk dua sisi adalah 0,959, maka nilai P-value untuk satu sisi adalah
0,959 2
= 0,4795. Karena P-value lebih
besar dari ∝= 0,05 maka H0 diterima dan H1 ditolak. Sehingga disimpulkan bahwa model AB+NB tidak lebih baik dari pada NB.
160
Tabel 4.72 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan AB+NB Pengukuran
Jumlah P N T
Rata-rata Peringkat P-Value P N
Akurasi
8
2 10
5,75
4,50
Sensitivitas
3
4 13
3,33
4,50
F-Measure
7
3 10
4,71
7,33
G-Mean
5
5 10
4,60
6,40
AUC
6
4 10
4,50
7,00
Hasil (α = 0,05)
Model AB+NB lebih baik daripada NB Model AB+NB tidak lebih baik 0,2495 daripada NB Model AB+NB tidak lebih baik 0,2875 daripada NB Model AB+NB tidak lebih baik 0,3230 daripada NB Model AB+NB tidak lebih baik 0,4795 daripada NB 0,0295
Keterangan: P = Positive (Positif) N = Negative (Negatif) T = Ties (sama)
D. Uji Friedman Pada uji Friedman (Friedman test) ditetapkan hipotesis sebagai berikut: 𝐻0 : 𝜂𝑁𝐵 = 𝜂𝐴𝐵+𝑁𝐵 (Model NB dan AB+NB memiliki nilai yang relatif sama) 𝐻1 : 𝜂𝑁𝐵 ≠ 𝜂𝐴𝐵+𝑁𝐵 (Model NB dan AB+NB memiliki nilai yang tidak sama)
Tabel 4.73 Peringkat Pengukuran Akurasi pada Uji Friedman
161
Tabel 4.74 Uji Friedman Pengukuran Akurasi
Tabel 4.75 Peringkat Pengukuran Sensitivitas pada Uji Friedman
Tabel 4.76 Uji Friedman Pengukuran Sensitivitas
Tabel 4.77 Peringkat Pengukuran F-Measure pada Uji Friedman
Tabel 4.78 Uji Friedman Pengukuran F-Measure
162
Tabel 4.79 Peringkat Pengukuran G-Mean pada Uji Friedman
Tabel 4.80 Uji Friedman Pengukuran G-Mean
Tabel 4.81 Peringkat Pengukuran AUC pada Uji Friedman
Tabel 4.82 Uji Friedman Pengukuran AUC
163
Tabel 4.83 Rekap Uji Friedman untuk Model NB dan AB+NB Pengukuran
Rata-rata Peringkat NB AB+NB
Akurasi
1,35
1,65
Sensitivitas
1,53
1,48
F-Measure
1,40
1,60
G-Mean
1,50
1,50
AUC
1,45
1,55
P-Value
Hasil (α = 0,05)
Model NB dan AB+NB memiliki nilai yang relatif sama Model NB dan AB+NB memiliki nilai yang 0,705 relatif sama Model NB dan AB+NB memiliki nilai yang 0,206 relatif sama Model NB dan AB+NB memiliki nilai yang 1,000 relatif sama Model NB dan AB+NB memiliki nilai yang 0,527 relatif sama 0,058
E. Uji Konkordansi Kendall Pada uji konkordansi ditetapkan hipotesis sebagai berikut: 𝐻0 : Model NB dan AB+NB memiliki nilai yang selaras (relatif sama) 𝐻1 : Model NB dan AB+NB memiliki nilai yang tidak selaras (relatif sama)
Tabel 4.84 Peringkat Pengukuran Akurasi pada Uji Konkordansi Kendall
Tabel 4.85 Uji Konkordansi Kendall Pengukuran Akurasi
164
Tabel 4.86 Peringkat Pengukuran Sensitivitas pada Uji Konkordansi Kendall
Tabel 4.87 Uji Konkordansi Kendall Pengukuran Sensitivitas
Tabel 4.88 Peringkat Pengukuran F-Measure pada Uji Konkordansi Kendall
Tabel 4.89 Uji Konkordansi Kendall Pengukuran F-Measure
165
Tabel 4.90 Peringkat Pengukuran G-Mean pada Uji Konkordansi Kendall
Tabel 4.91 Uji Konkordansi Kendall Pengukuran G-Mean
Tabel 4.92 Peringkat Pengukuran UAC pada Uji Konkordansi Kendall
Tabel 4.93 Uji Konkordansi Kendall Pengukuran AUC
166
Tabel 4.94 Rekap Uji Konkordansi Kendall untuk Model NB dan AB+NB Pengukuran
Rata-rata Peringkat NB AB+NB
Akurasi
1,35
1,65
Sensitivitas
1,53
1,48
F-Measure
1,40
1,60
G-Mean
1,50
1,50
AUC
1,45
1,55
P-Value
Hasil (α = 0,05)
Model NB dan AB+NB memiliki nilai yang selaras (relatif sama) Model NB dan AB+NB memiliki nilai 0,705 yang selaras (relatif sama) Model NB dan AB+NB memiliki nilai 0,206 yang selaras (relatif sama) Model NB dan AB+NB memiliki nilai 1,000 yang selaras (relatif sama) Model NB dan AB+NB memiliki nilai 0,527 yang selaras (relatif sama) 0,058
Rekap hasil dari uji statistik di atas selanjutnya ditampilkan pada Tabel 4.95 untuk mempermudah analisa selanjutnya. Dengan menampilkan hasil uji statistik pada satu tabel, maka akan mudah dilihat pada bagian mana yang memiliki perbedaan secara signifikan.
Tabel 4.95 Rekap Uji Statistik No
Uji Statistik
1 Uji T 2 Uji Tanda 3 Uji Wilcoxon 4 Uji Friedman 5 Uji Kendall
Akurasi
Pengukuran Meningkat Signifikan Sensitivitas F-Measure G-Mean
AUC
Berdasarkan uji T, uji tanda, uji peringkat bertanda Wilcoxon, uji Friedman, dan uji konkordansi Kendall yang dilakukan, ditemukan peningkatan hanya pada akurasi dengan pengujian Wilcoxon, sedangkan pada pengujian lain tidak ditemukan indikasi peningkatan kinerja akurasi, sensitivitas, F-Measure, G-Mean, dan AUC. Sehingga disimpulkan bahwa AdaBoost tidak dapat meningkatkan kinerja pengklasifikasi Naïve Bayes pada prediksi cacat software. Hal ini bertentangan dengan hasil penelitian yang menyatakan bahwa AdaBoost dapat meningkatkan kinerja Naϊve Bayes (Korada, Kumar, & Deekshitulu, 2012, p. 73). Tetapi menegaskan hasil penelitian yang menyatakan bahwa boosting tidak
167
bekerja dengan baik pada pengklasifikasi Naϊve Bayes, karena merupakan pengklasifikasi yang stabil dengan bias yang kuat (Ting & Zheng, 2003, p. 199).
4.2.2.2 Bagging Berbasis Naïve Bayes Untuk mengetahui signifikansi peningkatan kinerja Naϊve Bayes jika diintegrasikan dengan algoritma Bagging pada prediksi cacat software, maka dilakukan uji statistik. Uji statistik yang digunakan adalah uji T (T-test) satu sisi untuk sisi bawah, uji tanda (sign test) satu sisi untuk sisi bawah, uji peringkat bertanda Wilcoxon (Wilcoxon signed-rank test) satu sisi untuk sisi bawah, dan uji Friedman (Friedman test) dan uji konkordansi Kendall (Kendall's coefficient of concordance atau Kendall's W). Cara pengujian yang dilakukan sama dengan pengujian sebelumnya, sehingga pada bagian ini hanya ditunjukkan hasilnya saja. Rekap hasil uji statistik yang dilakukan adalah: A. Uji T (T-test)
Tabel 4.96 Rekap Uji T untuk Model NB dan BG+NB Pengukuran Akurasi
Mean (BG+NB - NB) -0,00026
Sensitivitas
0,02758
F-Measure
0,00900
G-Mean
0,02920
AUC
0,01255
P-Value
Hasil (α = 0,05)
Model BG+NB tidak lebih baik daripada NB Model BG+NB tidak lebih baik 0,0550 daripada NB Model BG+NB lebih baik daripada 0,0200 NB Model BG+NB lebih baik daripada 0,0180 NB Model BG+NB lebih baik daripada 0,0195 NB 0,4900
168
B. Uji tanda (sign test)
Tabel 4.97 Rekap Uji Tanda untuk Model NB dan BG+NB Pengukuran Akurasi Sensitivitas F-Measure G-Mean AUC
Jumlah P-Value Hasil (α = 0,05) P N T 5 14 1 0,0320 Model BG+NB tidak lebih baik daripada NB 14 2 4 0,0020 Model BG+NB lebih baik daripada NB 13 6 1 0,0835 Model BG+NB tidak lebih baik daripada NB 15 4 1 0,0095 Model BG+NB lebih baik daripada NB 14 5 1 0,0320 Model BG+NB lebih baik daripada NB
C. Uji Peringkat Bertanda Wilcoxon
Tabel 4.98 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan BG+NB Pengukuran Akurasi
Jumlah P N T 5 14
Rata-rata Peringkat P-Value P N
1
9,20
10,29
Sensitivitas
14
2
4
8,14
11,00
F-Measure
13
6
1
11,19
7,42
G-Mean
15
4
1
11,40
4,75
AUC
14
5
1
10,71
8,00
Hasil (α = 0,05)
Model BG+NB tidak lebih baik daripada NB Model BG+NB lebih baik 0,0085 daripada NB Model BG+NB lebih baik 0,0210 daripada NB Model BG+NB lebih baik 0,0010 daripada NB Model BG+NB lebih baik 0,0135 daripada NB 0,0245
Keterangan: P = Positive (Positif) N = Negative (Negatif) T = Ties (sama)
169
D. Uji Friedman
Tabel 4.99 Rekap Uji Friedman untuk Model NB dan BG+NB Pengukuran
Rata-rata Peringkat NB BG+NB
Akurasi
1,73
1,28
Sensitivitas
1,20
1,80
F-Measure
1,33
1,68
G-Mean
1,23
1,78
AUC
1,28
1,73
P-Value
Hasil (α = 0,05)
Model NB dan BG+NB memiliki nilai yang relatif tidak sama (menurun) Model NB dan BG+NB memiliki nilai yang 0,003 relatif tidak sama (meningkat) Model NB dan BG+NB memiliki nilai yang 0,108 relatif sama Model NB dan BG+NB memiliki nilai yang 0,012 relatif tidak sama (meningkat) Model NB dan BG+NB memiliki nilai yang 0,039 relatif tidak sama (meningkat) 0,039
E. Uji Konkordansi Kendall
Tabel 4.100 Rekap Uji Konkordansi Kendall untuk Model NB dan BG+NB Pengukuran
Rata-rata Peringkat NB BG+NB
Akurasi
1,73
1,28
Sensitivitas
1,20
1,80
F-Measure
1,33
1,68
G-Mean
1,23
1,78
AUC
1,28
1,73
P-Value
Hasil (α = 0,05)
Model NB dan BG+NB memiliki nilai yang tidak selaras (menurun) Model NB dan BG+NB memiliki nilai 0,003 yang tidak selaras (meningkat) Model NB dan BG+NB memiliki nilai 0,108 yang selaras (relatif sama) Model NB dan BG+NB memiliki nilai 0,012 yang tidak selaras (meningkat) Model NB dan BG+NB memiliki nilai 0,039 yang tidak selaras (meningkat) 0,039
Rekap hasil dari uji statistik di atas selanjutnya ditampilkan pada Tabel 4.101 untuk mempermudah analisa selanjutnya. Dengan menampilkan hasil uji statistik pada satu tabel, maka akan mudah dilihat pada bagian mana yang memiliki perbedaan secara signifikan.
170
Tabel 4.101 Rekap Uji Statistik No
Uji Statistik
Akurasi
1 Uji T 2 Uji Tanda 3 Uji Wilcoxon 4 Uji Friedman 5 Uji Kendall
Berdasarkan
pengujian
Pengukuran Meningkat Signifikan Sensitivitas F-Measure G-Mean
yang
dilakukan
terindikasi
AUC
ada
beberapa
peningkatan. Pada uji t menunjukkan ada peningkatan F-Measure, G-Mean, dan AUC. Pada uji tanda ada peningkatan sensitivitas, G-Mean, dan AUC. Pada uji peringkat bertanda Wilcoxon ada peningkatan sensitivitas, F-Measure, G-Mean, dan AUC. Pada uji Friedman dan uji konkordansi Kendall terdapat peningkatan sensitivitas, G-Mean, dan AUC. Sehingga disimpulkan bahwa Bagging dapat meningkatkan kinerja pengklasifikasi Naïve Bayes pada prediksi cacat software, walaupun memiliki akurasi yang relatif sama atau cenderung menurun, tetapi kemampuan untuk memprediksi kelas minoritas meningkat. Hal ini bertentangan dengan penelitian yang menyatakan bahwa Naïve Bayes merupakan pembelajar stabil yang tidak dapat ditingkatkan dengan Bagging (Liang, Zhu, & Zhang, 2011, p. 1803).
4.2.2.3 Algoritma Ensemble Terbaik Untuk mengetahui algoritma ensemble manakah antara AdaBoost dan Bagging yang dapat meningkatkan kinerja Naϊve Bayes menjadi lebih baik pada prediksi cacat software, maka dilakukan uji Friedman, Nemenyi post hoc, dan disajikan dalam diagram Demsar yang dimodifikasi. Karena nilai CD (Critical Difference) pada Nemenyi post hoc dipengaruhi oleh nilai studentized range statistic (3,314), jumlah model (K=3), dan jumlah dataset (D=20), maka nilainya dihitung sebagai berikut:
𝐾(𝐾 + 1) 3(3 + 1) 𝐶𝐷 = 𝑞∝,∞,𝐾 √ = 3,314√ 12𝐷 12 ∙ 20
171
12 𝐶𝐷 = 3,314√ = 0,74103292774343 240
Untuk mengetahui signifikansi perbedaan di antara ketiga model, dilakukan uji Friedman menggunakan aplikasi SPSS. Nilai p-value dari uji Friedman ditunjukkan pada Tabel 4.102.
Tabel 4.102 Rekap P-Value pada Uji Friedman untuk Model yang Mengintegrasikan Pendekatan Level Algoritma Pengukuran P-Value Hasil (α = 0,05) Akurasi 0,010714 Sig., Ada perbedaan nilai di antara Sensitivitas
0,001531
F-Measure
0,224753
G-Mean
0,019130
AUC
0,072571
model Sig., Ada perbedaan nilai di antara model Not Sig., Tidak ada perbedaan nilai di antara model Sig., Ada perbedaan nilai di antara model Not Sig., Tidak ada perbedaan nilai di antara model
Hasil pada Tabel 4.102 menunjukkan bahwa nilai akurasi, sensitivitas, dan G-Mean memiliki perbedaan secara signifikan. Berdasarkan signifikansi dari uji Friedman tersebut, maka hanya pengukuran yang memiliki perbedaan secara signifikan saja yang dibuatkan diagram Demsar yang telah dimodifikasi. Berikut ini adalah tahapan pembuatan diagram Demsar sesuai hasil pengukuran yang diuji: A. Akurasi Data yang diperoleh dari pengukuran akurasi model ditunjukkan pada Tabel 4.103.
172
Tabel 4.103 Hasil Pengukuran Nilai Akurasi Model NB, AB+NB, dan BG+NB Data Set CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5
NB 81,65% 78,87% 74,10% 78,87% 72,58% 88,81% 88,09% 36,75% 85,59% 75,03% 82,61% 78,81% 74,01% 82,10% 72,90% 89,66% 92,51% 47,34% 85,43% 74,73%
Model AB+NB 81,65% 78,87% 74,10% 78,87% 73,39% 90,87% 88,37% 84,81% 85,98% 75,03% 83,30% 78,81% 74,01% 84,26% 70,97% 89,66% 92,51% 84,74% 85,04% 74,73%
BG+NB 81,96% 78,76% 73,84% 78,35% 71,77% 88,22% 76,18% 39,51% 85,04% 74,85% 81,92% 78,86% 73,67% 82,10% 72,26% 88,58% 90,38% 63,66% 85,12% 74,91%
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.104.
173
Tabel 4.104 Peringkat Akurasi Model pada Uji Friedman Data Set CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5 Jumlah Rata-Rata
Model AB+NB BG+NB 2,5 1 1,5 3 1,5 3 1,5 3 1 3 1 3 1 3 1 2 1 3 1,5 3 1 3 2,5 1 1,5 3 1 2,5 3 2 1,5 3 1,5 3 1 2 3 2 2,5 1 32 49,5 1,6 2,475
NB 2,5 1,5 1,5 1,5 2 2 2 3 2 1,5 2 2,5 1,5 2,5 1 1,5 1,5 3 1 2,5 38,5 1,925
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
Tabel 4.105 Perbandingan Berpasangan pada Nemenyi Post Hoc NB NB AB+NB BG+NB
0 -0,325 0,550
AB+NB BG+NB 0,325 -0,550 0 -0,875 0,875 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai. 174
Tabel 4.106 P-value pada Nemenyi Post Hoc NB
NB AB+NB BG+NB
AB+NB BG+NB 1 0,559306 0,190612 0,559306 1 0,015615 0,190612 0,015615 1
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not.
Tabel 4.107 Perbedaan Signifikan pada Nemenyi Post Hoc NB NB AB+NB BG+NB
Not Not
AB+NB BG+NB Not Not Sig Sig
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.7 Perbandingan Akurasi Model Menggunakan Diagram Demsar
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa tidak ada model yang akurasinya meningkat atau menurun secara signifikan terhadap model NB. Menurut uji Friedman ada perbedaan secara signifikan, yaitu antara model AB+NB dengan BG+NB.
B. Sensitivitas Data yang diperoleh dari pengukuran sensitivitas model ditunjukkan pada Tabel 4.108.
175
Tabel 4.108 Hasil Pengukuran Nilai Sensitivitas Model NB, AB+NB, dan BG+NB Data Set CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5
NB 30,95% 19,85% 33,67% 36,11% 38,64% 40,00% 12,50% 90,77% 28,98% 22,27% 32,61% 19,73% 33,67% 42,86% 35,29% 35,00% 23,81% 85,14% 28,98% 21,62%
Model AB+NB 30,95% 19,85% 33,67% 36,11% 40,91% 34,55% 12,50% 9,23% 48,30% 22,27% 32,61% 19,73% 33,67% 40,48% 35,29% 35,00% 23,81% 14,19% 50,00% 21,62%
BG+NB 33,33% 20,60% 34,35% 36,11% 40,91% 41,82% 43,75% 91,54% 35,23% 23,58% 30,44% 20,10% 33,67% 42,86% 35,29% 36,67% 33,33% 79,05% 31,82% 23,14%
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.109.
176
Tabel 4.109 Peringkat Sensitivitas Model pada Uji Friedman Data Set CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5 Jumlah Rata-Rata
NB 2,5 2,5 2,5 2 3 2 2,5 2 3 2,5 1,5 2,5 2 1,5 2 2,5 2,5 1 3 2,5 45,5 2,275
Model AB+NB BG+NB 2,5 1 2,5 1 2,5 1 2 2 1,5 1,5 3 1 2,5 1 3 1 1 2 2,5 1 1,5 3 2,5 1 2 2 3 1,5 2 2 2,5 1 2,5 1 3 2 1 2 2,5 1 45,5 29 2,275 1,45
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
Tabel 4.110 Perbandingan Berpasangan pada Nemenyi Post Hoc NB NB AB+NB BG+NB
0 0 -0,825
AB+NB BG+NB 0 0,825 0 0,825 -0,825 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak
177
lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
Tabel 4.111 P-value pada Nemenyi Post Hoc NB
NB AB+NB BG+NB
AB+NB BG+NB 1 1 0,024644 1 1 0,024644 0,024644 0,024644 1
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not.
Tabel 4.112 Perbedaan Signifikan pada Nemenyi Post Hoc NB NB AB+NB BG+NB
Not Sig
AB+NB BG+NB Not Sig Sig Sig
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.8 Perbandingan Sensitivitas Model Menggunakan Diagram Demsar
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa sensitivitas model BG+NB meningkat secara signifikan dibanding model NB maupun model AB+NB, sedangkan model AB+NB tidak meningkat secara signifikan dibanding model NB.
178
C. G-Mean Data yang diperoleh dari pengukuran G-Mean model ditunjukkan pada Tabel 4.113.
Tabel 4.113 Hasil Pengukuran Nilai G-Mean Model Data Set CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5
Model NB AB+NB BG+NB 0,525 0,525 0,545 0,433 0,433 0,440 0,544 0,544 0,547 0,566 0,566 0,564 0,594 0,611 0,603 0,610 0,575 0,621 0,335 0,336 0,580 0,514 0,297 0,543 0,524 0,667 0,573 0,459 0,459 0,470 0,537 0,539 0,517 0,432 0,432 0,436 0,543 0,543 0,542 0,614 0,606 0,614 0,568 0,559 0,565 0,572 0,572 0,581 0,472 0,472 0,552 0,604 0,363 0,699 0,523 0,673 0,546 0,452 0,452 0,467
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.114.
179
Tabel 4.114 Peringkat G-Mean Model pada Uji Friedman Data Set CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5 Jumlah Rata-Rata
Model AB+NB BG+NB 2,5 1 2,5 1 2,5 1 1,5 3 1 2 3 1 2 1 3 1 1 2 2,5 1 1 3 2,5 1 1,5 3 3 1,5 3 2 2,5 1 2,5 1 3 1 1 2 2,5 1 44 30,5 2,2 1,525
NB 2,5 2,5 2,5 1,5 3 2 3 2 3 2,5 2 2,5 1,5 1,5 1 2,5 2,5 2 3 2,5 45,5 2,275
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
Tabel 4.115 Perbandingan Berpasangan pada Nemenyi Post Hoc NB NB AB+NB BG+NB
0 -0,075 -0,750
AB+NB BG+NB 0,075 0,750 0 0,675 -0,675 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
180
Tabel 4.116 P-value pada Nemenyi Post Hoc NB
NB AB+NB BG+NB
AB+NB BG+NB 1 0,969467 0,046560 0,969467 1 0,082975 0,046560 0,082975 1
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not.
Tabel 4.117 Perbedaan Signifikan pada Nemenyi Post Hoc NB NB AB+NB BG+NB
Not Sig
AB+NB BG+NB Not Sig Not Not
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.9 Perbandingan G-Mean Model Menggunakan Diagram Demsar
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa model BG+NB memiliki nilai yang meningkat secara signifikan dibanding NB, sedangkan model AB+NB tidak mengalami peningkatan secara signifikan.
Berdasarkan uji Friedman, Nemenyi post hoc, dan diagram Demsar yang dimodifikasi model BG+NB meningkat secara signifikan terhadap model NB untuk pengukuran sensitivitas dan G-Mean, sedangkan model AB+NB tidak 181
meningkat secara signifikan. Sehingga disimpulkan bahwa model ensemble terbaik adalah model BG+NB. Hasil penelitian ini bertentangan dengan penelitian yang menyatakan bahwa Naïve Bayes merupakan pembelajar stabil yang tidak dapat ditingkatkan dengan Bagging (Liang, Zhu, & Zhang, 2011, p. 1803), dan AdaBoost dapat meningkatkan kinerja Naϊve Bayes (Korada, Kumar, & Deekshitulu, 2012, p. 73). Tetapi menegaskan hasil penelitian yang menyatakan bahwa boosting tidak bekerja dengan baik pada pengklasifikasi Naϊve Bayes, karena merupakan pengklasifikasi yang stabil dengan bias yang kuat (Ting & Zheng, 2003, p. 199).
4.2.3
Pendekatan Level Data
4.2.3.1 ROS (Random Over-Sampling) Untuk mengetahui signifikansi peningkatan kinerja Naϊve Bayes jika diintegrasikan dengan ROS (Random Over-Sampling) pada prediksi cacat software, maka dilakukan uji statistik. Uji statistik yang digunakan adalah uji T (T-test) satu sisi untuk sisi bawah, uji tanda (sign test) satu sisi untuk sisi bawah, uji peringkat bertanda Wilcoxon (Wilcoxon signed-rank test) satu sisi untuk sisi bawah, dan uji Friedman (Friedman test) dan uji konkordansi Kendall (Kendall's coefficient of concordance atau Kendall's W). Cara pengujian yang dilakukan sama dengan pengujian sebelumnya, sehingga pada bagian ini hanya ditunjukkan hasilnya saja. Rekap hasil uji statistik yang dilakukan adalah: A. Uji T (T-test)
Tabel 4.118 Rekap Uji T untuk Model NB dan ROS+NB Pengukuran Akurasi
Mean (ROS+NB - NB) -0,00144
Sensitivitas
0,00120
F-Measure
0,00055
G-Mean
0,00050
AUC
-0,00010
P-Value
Hasil (α = 0,05)
Model ROS+NB tidak lebih baik daripada NB Model ROS+NB tidak lebih baik 0,2920 daripada NB Model ROS+NB tidak lebih baik 0,3730 daripada NB Model ROS+NB tidak lebih baik 0,3995 daripada NB Model ROS+NB tidak lebih baik 0,4690 daripada NB 0,1695
182
B. Uji tanda (sign test)
Tabel 4.119 Rekap Uji Tanda untuk Model NB dan ROS+NB Pengukuran Akurasi Sensitivitas F-Measure G-Mean AUC
Jumlah P-Value Hasil (α = 0,05) P N T 6 6 8 0,5000 Model ROS+NB tidak lebih baik daripada NB 7 4 9 0,2745 Model ROS+NB tidak lebih baik daripada NB 10 7 3 0,3145 Model ROS+NB tidak lebih baik daripada NB 11 5 4 0,1050 Model ROS+NB tidak lebih baik daripada NB 10 5 5 0,1510 Model ROS+NB tidak lebih baik daripada NB
C. Uji Peringkat Bertanda Wilcoxon
Tabel 4.120 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan ROS+NB Pengukuran
Jumlah P N T
Rata-rata Peringkat P-Value P N
Akurasi
6
6
8
5,50
7,50
Sensitivitas
7
4
9
6,43
5,25
F-Measure
10
7
3
9,70
8,00
G-Mean
11
5
4
7,55
10,60
AUC
10
5
5
7,10
9,80
Hasil (α = 0,05)
Model ROS+NB tidak lebih baik daripada NB Model ROS+NB tidak lebih baik 0,1430 daripada NB Model ROS+NB tidak lebih baik 0,1655 daripada NB Model ROS+NB tidak lebih baik 0,2180 daripada NB Model ROS+NB tidak lebih baik 0,2645 daripada NB 0,3190
Keterangan: P = Positive (Positif) N = Negative (Negatif) T = Ties (sama)
183
D. Uji Friedman
Tabel 4.121 Rekap Uji Friedman untuk Model NB dan ROS+NB Pengukuran
Rata-rata Peringkat NB ROS+NB
Akurasi
1,50
1,50
Sensitivitas
1,43
1,58
F-Measure
1,43
1,58
G-Mean
1,35
1,65
AUC
1,38
1,63
P-Value
Hasil (α = 0,05)
Model NB dan ROS+NB memiliki nilai yang relatif sama Model NB dan ROS+NB memiliki nilai 0,366 yang relatif sama Model NB dan ROS+NB memiliki nilai 0,467 yang relatif sama Model NB dan ROS+NB memiliki nilai 0,134 yang relatif sama Model NB dan ROS+NB memiliki nilai 0,197 yang relatif sama 1,000
E. Uji Konkordansi Kendall
Tabel 4.122 Rekap Uji Konkordansi Kendall untuk Model NB dan ROS+NB Pengukuran
Rata-rata Peringkat NB ROS+NB
Akurasi
1,50
1,50
Sensitivitas
1,43
1,58
F-Measure
1,43
1,58
G-Mean
1,35
1,65
AUC
1,38
1,63
P-Value
Hasil (α = 0,05)
Model NB dan ROS+NB memiliki nilai yang selaras (relatif sama) Model NB dan ROS+NB memiliki nilai 0,366 yang selaras (relatif sama) Model NB dan ROS+NB memiliki nilai 0,467 yang selaras (relatif sama) Model NB dan ROS+NB memiliki nilai 0,134 yang selaras (relatif sama) Model NB dan ROS+NB memiliki nilai 0,197 yang selaras (relatif sama) 1,000
Rekap hasil dari uji statistik di atas selanjutnya ditampilkan pada Tabel 4.123 untuk mempermudah analisa selanjutnya. Dengan menampilkan hasil uji statistik pada satu tabel, maka akan mudah dilihat pada bagian mana yang memiliki perbedaan secara signifikan.
184
Tabel 4.123 Rekap Uji Statistik No
Uji Statistik
Akurasi
Pengukuran Meningkat Signifikan Sensitivitas F-Measure G-Mean
AUC
1 Uji T 2 Uji Tanda 3 Uji Wilcoxon 4 Uji Friedman 5 Uji Kendall
Berdasarkan pengujian yang dilakukan menggunakan uji t, uji tanda, uji peringkat bertanda Wilcoxon, uji Friedman, dan uji konkordansi Kendall menunjukkan bahwa akurasi, sensitivitas, F-Measure, G-Mean, dan AUC tidak memiliki perbedaan secara signifikan. Sehingga disimpulkan bahwa ROS tidak dapat meningkatkan kinerja pengklasifikasi Naïve Bayes pada prediksi cacat software. Hal ini bertentangan dengan penelitian yang menyatakan bahwa meningkatkan jumlah kelas minoritas dapat meningkatkan kemampuan algoritma pembelajar menjadi lebih baik, karena bisa mengenali sampel kelas minoritas dari mayoritas (Japkowicz & Stephen, 2002, p. 443).
4.2.3.2 RUS (Random Under-Sampling) Untuk mengetahui signifikansi peningkatan kinerja Naϊve Bayes jika diintegrasikan dengan RUS (Random Under-Sampling) pada prediksi cacat software, maka dilakukan uji statistik. Uji statistik yang digunakan adalah uji T (T-test) satu sisi untuk sisi bawah, uji tanda (sign test) satu sisi untuk sisi bawah, uji peringkat bertanda Wilcoxon (Wilcoxon signed-rank test) satu sisi untuk sisi bawah, dan uji Friedman (Friedman test) dan uji konkordansi Kendall (Kendall's coefficient of concordance atau Kendall's W). Cara pengujian yang dilakukan sama dengan pengujian sebelumnya, sehingga pada bagian ini hanya ditunjukkan hasilnya saja. Rekap hasil uji statistik yang dilakukan adalah:
185
A. Uji T (T-test)
Tabel 4.124 Rekap Uji T untuk Model NB dan RUS+NB Pengukuran
Mean (RUS+NB - NB)
Akurasi
P-Value
-0,02008
Sensitivitas
0,03694
F-Measure
-0,00430
G-Mean
0,03500
AUC
0,00715
Hasil (α = 0,05)
Model RUS+NB tidak lebih baik daripada NB Model RUS+NB tidak lebih baik 0,1235 daripada NB Model RUS+NB tidak lebih baik 0,2800 daripada NB Model RUS+NB lebih baik daripada 0,0265 NB Model RUS+NB tidak lebih baik 0,1970 daripada NB 0,1810
B. Uji tanda (sign test)
Tabel 4.125 Rekap Uji Tanda untuk Model NB dan RUS+NB Pengukuran Akurasi Sensitivitas F-Measure G-Mean AUC
Jumlah P-Value Hasil (α = 0,05) P N T 4 16 0 0,0060 Model RUS+NB tidak lebih baik daripada NB 13 4 3 0,0245 Model RUS+NB lebih baik daripada NB 10 9 1 0,5000 Model RUS+NB tidak lebih baik daripada NB 14 6 0 0,0575 Model RUS+NB tidak lebih baik daripada NB 11 9 0 0,4120 Model RUS+NB tidak lebih baik daripada NB
186
C. Uji Peringkat Bertanda Wilcoxon
Tabel 4.126 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan RUS+NB Pengukuran Akurasi
Jumlah P N T 4 16
Rata-rata Peringkat P-Value P N
0
13,00
9,88
Sensitivitas
13
4
3
9,00
9,00
F-Measure
10
9
1
8,70
11,44
G-Mean
14
6
0
12,29
6,33
AUC
11
9
0
10,82
10,11
Hasil (α = 0,05)
Model RUS+NB tidak lebih baik daripada NB Model RUS+NB lebih baik 0,0275 daripada NB Model RUS+NB tidak lebih baik 0,3735 daripada NB Model RUS+NB lebih baik 0,0060 daripada NB Model RUS+NB tidak lebih baik 0,3005 daripada NB 0,0240
Keterangan: P = Positive (Positif) N = Negative (Negatif) T = Ties (sama)
D. Uji Friedman
Tabel 4.127 Rekap Uji Friedman untuk Model NB dan RUS+NB Pengukuran
Rata-rata Peringkat NB RUS+NB
Akurasi
1,80
1,20
Sensitivitas
1,28
1,73
F-Measure
1,48
1,53
G-Mean
1,30
1,70
AUC
1,45
1,55
P-Value
Hasil (α = 0,05)
Model NB dan RUS+NB memiliki nilai yang relatif tidak sama (menurun) Model NB dan RUS+NB memiliki nilai 0,029 yang relatif tidak sama (meningkat) Model NB dan RUS+NB memiliki nilai 0,819 yang relatif sama Model NB dan RUS+NB memiliki nilai 0,074 yang relatif sama Model NB dan RUS+NB memiliki nilai 0,655 yang relatif sama 0,007
187
E. Uji Konkordansi Kendall
Tabel 4.128 Rekap Uji Konkordansi Kendall untuk Model NB dan RUS+NB Pengukuran
Rata-rata Peringkat NB RUS+NB
Akurasi
1,80
1,20
Sensitivitas
1,28
1,73
F-Measure
1,48
1,53
G-Mean
1,30
1,70
AUC
1,45
1,55
P-Value
Hasil (α = 0,05)
Model NB dan RUS+NB memiliki nilai yang tidak selaras (menurun) Model NB dan RUS+NB memiliki nilai 0,029 yang tidak selaras (meningkat) Model NB dan RUS+NB memiliki nilai 0,819 yang selaras (relatif sama) Model NB dan RUS+NB memiliki nilai 0,074 yang selaras (relatif sama) Model NB dan RUS+NB memiliki nilai 0,655 yang selaras (relatif sama) 0,007
Rekap hasil dari uji statistik di atas selanjutnya ditampilkan pada Tabel 4.129 untuk mempermudah analisa selanjutnya. Dengan menampilkan hasil uji statistik pada satu tabel, maka akan mudah dilihat pada bagian mana yang memiliki perbedaan secara signifikan.
Tabel 4.129 Rekap Uji Statistik No
Uji Statistik
Akurasi
1 Uji T 2 Uji Tanda 3 Uji Wilcoxon 4 Uji Friedman 5 Uji Kendall
Berdasarkan
pengujian
Pengukuran Meningkat Signifikan Sensitivitas F-Measure G-Mean
yang
dilakukan
terindikasi
AUC
ada
beberapa
peningkatan. Pada uji t menunjukkan ada peningkatan G-Mean. Pada uji tanda ada peningkatan sensitivitas. Pada uji peringkat bertanda Wilcoxon ada peningkatan sensitivitas, dan G-Mean. Pada uji Friedman, dan uji konkordansi Kendall terdapat peningkatan sensitivitas, tetapi akurasi menurun. Sehingga disimpulkan bahwa RUS dapat meningkatkan kinerja pengklasifikasi Naïve Bayes pada prediksi cacat software, walaupun memiliki akurasi cenderung menurun, tetapi kemampuan untuk memprediksi kelas minoritas meningkat. Hal ini menegaskan 188
penelitian yang menyatakan bahwa Random Under-Sampling (RUS) sebagai strategi
pembelajaran
sensitif
biaya
yang
efektif
untuk
menangani
ketidakseimbangan kelas (Laza, Pavón, Reboiro-Jato, & Fdez-Riverola, 2011, p. 10).
4.2.3.3 FSMOTE Untuk mengetahui signifikansi peningkatan kinerja Naϊve Bayes jika diintegrasikan dengan FSMOTE pada prediksi cacat software, maka dilakukan uji statistik. Uji statistik yang digunakan adalah uji T (T-test) satu sisi untuk sisi bawah, uji tanda (sign test) satu sisi untuk sisi bawah, uji peringkat bertanda Wilcoxon (Wilcoxon signed-rank test) satu sisi untuk sisi bawah, dan uji Friedman (Friedman test) dan uji konkordansi Kendall (Kendall's coefficient of concordance atau Kendall's W). Cara pengujian yang dilakukan sama dengan pengujian sebelumnya, sehingga pada bagian ini hanya ditunjukkan hasilnya saja. Rekap hasil uji statistik yang dilakukan adalah: A. Uji T (T-test)
Tabel 4.130 Rekap Uji T untuk Model NB dan FSMOTE+NB Pengukuran
Mean (FSMOTE+NB - NB)
Akurasi
0,00237
Sensitivitas
0,03483
F-Measure
0,01980
G-Mean
0,03975
AUC
0,01365
P-Value
Hasil (α = 0,05)
Model FSMOTE+NB tidak lebih baik daripada NB Model FSMOTE+NB tidak lebih baik 0,0915 daripada NB Model FSMOTE+NB tidak lebih baik 0,0615 daripada NB Model FSMOTE+NB lebih baik 0,0080 daripada NB Model FSMOTE+NB lebih baik 0,0485 daripada NB 0,4450
189
B. Uji tanda (sign test)
Tabel 4.131 Rekap Uji Tanda untuk Model NB dan FSMOTE+NB Pengukuran Akurasi Sensitivitas F-Measure G-Mean AUC
Jumlah P-Value Hasil (α = 0,05) P N T 8 11 1 0,3240 Model FSMOTE+NB tidak lebih baik daripada NB 14 5 1 0,0320 Model FSMOTE+NB lebih baik daripada NB 13 6 1 0,0835 Model FSMOTE+NB tidak lebih baik daripada NB 16 3 1 0,0020 Model FSMOTE+NB lebih baik daripada NB 13 5 2 0,0480 Model FSMOTE+NB lebih baik daripada NB
C. Uji Peringkat Bertanda Wilcoxon
Tabel 4.132 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan FSMOTE+NB Pengukuran Akurasi
Jumlah P N T 8 11
Rata-rata Peringkat P-Value P N
1
10,13
9,91
Sensitivitas
14
5
1
9,07
12,60
F-Measure
13
6
1
10,54
8,83
G-Mean
16
3
1
9,59
12,17
AUC
13
5
2
9,92
8,40
Hasil (α = 0,05)
Model FSMOTE+NB tidak lebih baik daripada NB Model FSMOTE+NB tidak lebih 0,0990 baik daripada NB Model FSMOTE+NB lebih baik 0,0455 daripada NB Model FSMOTE+NB lebih baik 0,0095 daripada NB Model FSMOTE+NB lebih baik 0,0290 daripada NB 0,2865
Keterangan: P = Positive (Positif) N = Negative (Negatif) T = Ties (sama)
190
D. Uji Friedman
Tabel 4.133 Rekap Uji Friedman untuk Model NB dan FSMOTE+NB Pengukuran
Rata-rata Peringkat NB FSMOTE+NB
Akurasi
1,58
1,43
Sensitivitas
1,28
1,73
F-Measure
1,33
1,68
G-Mean
1,18
1,83
AUC
1,30
1,70
P-Value
Hasil (α = 0,05)
Model NB dan FSMOTE+NB memiliki nilai yang relatif sama Model NB dan FSMOTE+NB memiliki nilai 0,039 yang relatif tidak sama (meningkat) Model NB dan FSMOTE+NB memiliki nilai 0,108 yang relatif sama Model NB dan FSMOTE+NB memiliki nilai 0,003 yang relatif tidak sama (meningkat) Model NB dan FSMOTE+NB memiliki nilai 0,059 yang relatif sama 0,491
E. Uji Konkordansi Kendall
Tabel 4.134 Rekap Uji Konkordansi Kendall untuk Model NB dan FSMOTE+NB Pengukuran
Rata-rata Peringkat NB FSMOTE+NB
Akurasi
1,58
1,43
Sensitivitas
1,28
1,73
F-Measure
1,33
1,68
G-Mean
1,18
1,83
AUC
1,30
1,70
P-Value
Hasil (α = 0,05)
Model NB dan FSMOTE+NB memiliki nilai yang selaras (relatif sama) Model NB dan FSMOTE+NB memiliki 0,039 nilai yang tidak selaras (meningkat) Model NB dan FSMOTE+NB memiliki 0,108 nilai yang selaras (relatif sama) Model NB dan FSMOTE+NB memiliki 0,003 nilai yang tidak selaras (meningkat) Model NB dan FSMOTE+NB memiliki 0,059 nilai yang selaras (relatif sama) 0,491
Rekap hasil dari uji statistik di atas selanjutnya ditampilkan pada Tabel 4.135 untuk mempermudah analisa selanjutnya. Dengan menampilkan hasil uji statistik pada satu tabel, maka akan mudah dilihat pada bagian mana yang memiliki perbedaan secara signifikan.
191
Tabel 4.135 Rekap Uji Statistik No
Uji Statistik
Akurasi
1 Uji T 2 Uji Tanda 3 Uji Wilcoxon 4 Uji Friedman 5 Uji Kendall
Pengukuran Meningkat Signifikan Sensitivitas F-Measure G-Mean
AUC
Berdasarkan pengujian yang dilakukan menggunakan uji t terdapat peningkatan pada G-Mean dan AUC. Pada uji tanda terdapat peningkatan pada sensitifitas, G-Mean, dan AUC. Pada uji peringkat bertanda Wilcoxon terdapat peningkatan pada F-Measure, G-Mean, dan AUC. Pada uji Friedman, dan uji konkordansi Kendall terdapat peningkatan pada sensitivitas, dan G-Mean. Sehingga
disimpulkan
bahwa
FSMOTE
dapat
meningkatkan
kinerja
pengklasifikasi Naïve Bayes pada prediksi cacat software. Hal ini mendukung penelitian yang menyatakan bahwa SMOTE dapat meningkatkan kinerja pengklasifikasi dalam memprediksi kelas minoritas (Chawla, Bowyer, Hall, & Kegelmeyer, 2002, p. 352), kemudian diperbaiki menjadi algoritma FSMOTE dengan mengikuti interpolasi fraktal dan memberikan hasil lebih baik daripada SMOTE (Zhang, Liu, Gong, & Jin, 2011, p. 2209).
4.2.3.4 Pendekatan Level Data Terbaik Untuk mengetahui pendekatan level data manakah antara ROS, RUS, atau FSMOTE yang menghasilkan kinerja terbaik pada prediksi cacat software, maka dilakukan uji Friedman, Nemenyi post hoc, dan disajikan dalam diagram Demsar yang dimodifikasi. Karena nilai CD (Critical Difference) pada Nemenyi post hoc dipengaruhi oleh nilai studentized range statistic (3,633), jumlah model (K=4), dan jumlah dataset (D=20), maka nilainya dihitung sebagai berikut:
𝐾(𝐾 + 1) 4(4 + 1) 𝐶𝐷 = 𝑞∝,∞,𝐾 √ = 3,633√ 12𝐷 12 ∙ 20
192
20 𝐶𝐷 = 3,633√ = 1,04875676398296 240
Untuk mengetahui signifikansi perbedaan di antara keempat model, dilakukan uji Friedman menggunakan aplikasi SPSS. Nilai p-value dari uji Friedman ditunjukkan pada Tabel 4.136.
Tabel 4.136 Rekap P-Value pada Uji Friedman untuk Model yang Mengintegrasikan Pendekatan Level Data Pengukuran P-Value Hasil (α = 0,05) Akurasi 0,089976 Not Sig., Tidak ada perbedaan nilai di antara model Sensitivitas 0,011431 Sig., Ada perbedaan nilai di antara model F-Measure 0,130360 Not Sig., Tidak ada perbedaan nilai di antara model G-Mean 0,000838 Sig., Ada perbedaan nilai di antara model AUC 0,192853 Not Sig., Tidak ada perbedaan nilai di antara model Hasil pada Tabel 4.136 menunjukkan bahwa nilai sensitivitas, dan G-Mean memiliki perbedaan secara signifikan. Berdasarkan signifikansi dari uji Friedman tersebut, maka hanya pengukuran yang memiliki perbedaan secara signifikan saja yang dibuatkan diagram Demsar yang telah dimodifikasi. Berikut ini adalah tahapan pembuatan diagram Demsar sesuai hasil pengukuran yang diuji: A. Sensitivitas Data yang diperoleh dari pengukuran sensitivitas model ditunjukkan pada Tabel 4.137.
193
Tabel 4.137 Hasil Pengukuran Nilai Sensitivitas Model Data Set
MDP Repository
PROMISE Repository
CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5
NB 30,95% 19,85% 33,67% 36,11% 38,64% 40,00% 12,50% 90,77% 28,98% 22,27% 32,61% 19,73% 33,67% 42,86% 35,29% 35,00% 23,81% 85,14% 28,98% 21,62%
Model ROS+NB RUS+NB FSMOTE+NB 33,33% 35,71% 42,86% 19,60% 19,98% 21,46% 34,01% 32,65% 45,58% 36,11% 36,11% 22,22% 36,36% 43,18% 38,64% 40,00% 43,64% 30,91% 12,50% 62,50% 25,00% 89,23% 70,77% 74,62% 28,98% 31,82% 47,73% 22,05% 24,02% 25,33% 32,61% 32,61% 47,83% 20,10% 20,16% 23,70% 34,01% 33,33% 47,28% 42,86% 52,38% 45,24% 35,29% 39,22% 39,22% 36,67% 40,00% 41,67% 23,81% 47,62% 19,05% 85,14% 69,60% 65,54% 30,11% 28,98% 46,59% 22,05% 22,05% 31,66%
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.138.
194
Tabel 4.138 Peringkat Sensitivitas Model pada Uji Friedman Data Set
MDP Repository
PROMISE Repository
CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5
Jumlah Rata-rata
NB 4 3 3 2 2,5 2,5 3,5 1 3,5 3 3 4 3 3,5 3,5 4 2,5 1,5 3,5 4 60,5 3,025
ROS+NB 3 4 2 2 4 2,5 3,5 2 3,5 4 3 3 2 3,5 3,5 3 2,5 1,5 2 2,5 57 2,85
Model RUS+NB FSMOTE+NB 2 1 2 1 4 1 2 4 1 2,5 1 4 1 2 4 3 2 1 2 1 3 1 2 1 4 1 1 2 1,5 1,5 2 1 1 4 3 4 3,5 1 2,5 1 44,5 38 2,225 1,9
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
Tabel 4.139 Perbandingan Berpasangan pada Nemenyi Post Hoc NB NB ROS+NB RUS+NB FSMOTE+NB
0 -0,175 -0,8 -1,125
ROS+NB RUS+NB FSMOTE+NB 0,175 0,8 1,125 0 0,625 0,95 -0,625 0 0,325 -0,95 -0,325 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak
195
lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
Tabel 4.140 P-value pada Nemenyi Post Hoc NB
NB ROS+NB RUS+NB FSMOTE+NB
ROS+NB RUS+NB FSMOTE+NB 1 0,973579434 0,203469636 0,029872996 0,973579434 1 0,418872526 0,091935992 0,203469636 0,418872526 1 0,85625123 0,029872996 0,091935992 0,85625123 1
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not.
Tabel 4.141 Perbedaan Signifikan pada Nemenyi Post Hoc NB NB ROS+NB RUS+NB FSMOTE+NB
Not Not Sig
ROS+NB Not
RUS+NB Not Not
Not Not
FSMOTE+NB Sig Not Not
Not
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.10 Perbandingan Sensitivitas Model Menggunakan Diagram Demsar
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa sensitivitas model FSMOTE+NB meningkat
196
secara signifikan dibanding model NB. Sedangkan model ROS+NB dan RUS+NB menunjukkan peningkatan, tetapi tidak signifikan.
B. G-Mean Data yang diperoleh dari pengukuran G-Mean model ditunjukkan pada Tabel 4.142.
Tabel 4.142 Hasil Pengukuran Nilai G-Mean Model Data Set
MDP Repository
PROMISE Repository
CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5
NB 0,525 0,433 0,544 0,566 0,594 0,610 0,335 0,514 0,524 0,459 0,537 0,432 0,543 0,614 0,568 0,572 0,472 0,604 0,523 0,452
Model ROS+NB RUS+NB FSMOTE+NB 0,544 0,555 0,575 0,430 0,434 0,449 0,546 0,534 0,596 0,566 0,562 0,444 0,576 0,623 0,594 0,610 0,630 0,545 0,336 0,654 0,486 0,512 0,640 0,633 0,525 0,544 0,655 0,457 0,475 0,487 0,538 0,517 0,581 0,436 0,436 0,470 0,544 0,540 0,615 0,615 0,606 0,618 0,568 0,599 0,599 0,584 0,602 0,606 0,472 0,574 0,428 0,583 0,625 0,653 0,533 0,515 0,644 0,456 0,456 0,538
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.143.
197
Tabel 4.143 Peringkat G-Mean Model pada Uji Friedman Data Set
MDP Repository
PROMISE Repository
CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5
Jumlah Rata-rata
NB 4 3 3 1,5 2,5 2,5 4 3 4 3 3 4 3 3 3,5 4 2,5 3 3 4 63,5 3,175
ROS+NB 3 4 2 1,5 4 2,5 3 4 3 4 2 2,5 2 2 3,5 3 2,5 4 2 2,5 57 2,85
Model RUS+NB FSMOTE+NB 2 1 2 1 4 1 3 4 1 2,5 1 4 1 2 1 2 2 1 2 1 4 1 2,5 1 4 1 4 1 1,5 1,5 2 1 1 4 2 1 4 1 2,5 1 46,5 33 2,325 1,65
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
Tabel 4.144 Perbandingan Berpasangan pada Nemenyi Post Hoc NB NB ROS+NB RUS+NB FSMOTE+NB
0 -0,325 -0,85 -1,525
ROS+NB RUS+NB FSMOTE+NB 0,325 0,85 1,525 0 0,525 1,2 -0,525 0 0,675 -1,2 -0,675 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak
198
lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
Tabel 4.145 P-value pada Nemenyi Post Hoc NB
NB ROS+NB RUS+NB FSMOTE+NB
ROS+NB RUS+NB 1 0,85625123 0,158924874 0,85625123 1 0,571872541 0,158924874 0,571872541 1 0,001074849 0,017325155 0,348681121
FSMOTE+NB 0,001074849 0,017325155 0,348681121 1
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not.
Tabel 4.146 Perbedaan Signifikan pada Nemenyi Post Hoc NB NB ROS+NB RUS+NB FSMOTE+NB
Not Not Sig
ROS+NB Not
RUS+NB Not Not
Not Sig
FSMOTE+NB Sig Sig Not
Not
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.11 Perbandingan G-Mean Model Menggunakan Diagram Demsar
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa nilai G-Mean model FSMOTE+NB meningkat secara signifikan terhadap model NB. Sedangkan model
199
ROS+NB dan RUS+NB menunjukkan peningkatan, tetapi tidak signifikan.
Berdasarkan uji Friedman, Nemenyi post hoc, dan diagram Demsar yang dimodifikasi menunjukkan bahwa nilai sensitivitas dan G-Mean model FSMOTE+NB meningkat secara signifikan, sedangkan model ROS+NB dan RUS+NB tidak meningkat secara signifikan. Hal ini bertentangan dengan penelitian yang menyatakan bahwa RUS menghasilkan kinerja terbaik dari pada pendekatan level data yang lain (Seiffert, Khoshgoftaar, Hulse, & Napolitano, 2008, p. 309). Dari diagram Demsar yang telah dimodifikasi menunjukkan bahwa RUS+NB lebih baik dari ROS+NB walaupun tidak signifikan, hal ini bertentangan dengan penelitian yang menyatakan bahwa ROS lebih baik daripada RUS (Batuwita & Palade, 2010, p. 8). Tetapi mendukung penelitian yang menyatakan SMOTE lebih baik daripada resampling acak (Dubey, Zhou, Wang, Thompson, & Ye, 2014, p. 234), dan ditingkatkan menggunakan algoritma FSMOTE dengan mengikuti interpolasi fraktal (Zhang, Liu, Gong, & Jin, 2011, p. 2210).
4.2.4
Integrasi Pendekatan Level Data dan Level Algoritma
4.2.4.1 Integrasi ROS dan AdaBoost Untuk mengetahui signifikansi peningkatan kinerja Naϊve Bayes jika diintegrasikan dengan ROS (Random Over-Sampling) dan AdaBoost pada prediksi cacat software, maka dilakukan uji statistik. Uji statistik yang digunakan adalah uji T (T-test) satu sisi untuk sisi bawah, uji tanda (sign test) satu sisi untuk sisi bawah, uji peringkat bertanda Wilcoxon (Wilcoxon signed-rank test) satu sisi untuk sisi bawah, dan uji Friedman (Friedman test) dan uji konkordansi Kendall (Kendall's coefficient of concordance atau Kendall's W). Cara pengujian yang dilakukan sama dengan pengujian sebelumnya, sehingga pada bagian ini hanya ditunjukkan hasilnya saja. Rekap hasil uji statistik yang dilakukan adalah:
200
A. Uji T (T-test)
Tabel 4.147 Rekap Uji T untuk Model NB dan ROS+AB+NB Pengukuran
Mean (ROS+AB+NB - NB)
Akurasi
P-Value
-0,02506
Sensitivitas
0,06232
F-Measure
0,01455
G-Mean
0,03220
AUC
0,00765
Hasil (α = 0,05)
Model ROS+AB+NB tidak lebih baik daripada NB Model ROS+AB+NB lebih baik 0,0070 daripada NB Model ROS+AB+NB tidak lebih baik 0,0715 daripada NB Model ROS+AB+NB lebih baik 0,0165 daripada NB Model ROS+AB+NB tidak lebih baik 0,1315 daripada NB 0,0035
B. Uji tanda (sign test)
Tabel 4.148 Rekap Uji Tanda untuk Model NB dan ROS+AB+NB Pengukuran Akurasi Sensitivitas F-Measure G-Mean AUC
Jumlah P-Value Hasil (α = 0,05) P N T 2 16 2 0,0005 Model ROS+AB+NB tidak lebih baik daripada NB 12 4 4 0,0385 Model ROS+AB+NB lebih baik daripada NB 10 9 1 0,5000 Model ROS+AB+NB tidak lebih baik daripada NB 12 7 1 0,1795 Model ROS+AB+NB tidak lebih baik daripada NB 11 8 1 0,3240 Model ROS+AB+NB tidak lebih baik daripada NB
201
C. Uji Peringkat Bertanda Wilcoxon
Tabel 4.149 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan ROS+AB+NB Pengukuran Akurasi
Jumlah P N T 2 16
Rata-rata Peringkat P-Value P N
2
4,00
10,19
Sensitivitas
12
4
4
9,92
4,25
F-Measure
10
9
1
11,00
8,89
G-Mean
12
7
1
11,71
7,07
AUC
11
8
1
10,05
9,94
Hasil (α = 0,05)
Model ROS+AB+NB tidak lebih baik daripada NB Model ROS+AB+NB lebih baik 0,0040 daripada NB Model ROS+AB+NB tidak lebih 0,2730 baik daripada NB Model ROS+AB+NB lebih baik 0,0335 daripada NB Model ROS+AB+NB tidak lebih 0,2665 baik daripada NB 0,0005
Keterangan: P = Positive (Positif) N = Negative (Negatif) T = Ties (sama)
D. Uji Friedman
Tabel 4.150 Rekap Uji Friedman untuk Model NB dan ROS+AB+NB Pengukuran
Rata-rata Peringkat NB ROS+AB+NB
Akurasi
1,85
1,15
Sensitivitas
1,30
1,70
F-Measure
1,48
1,53
G-Mean
1,38
1,63
AUC
1,43
1,58
P-Value
Hasil (α = 0,05)
Model NB dan ROS+AB+NB memiliki nilai yang relatif tidak sama (menurun) Model NB dan ROS+AB+NB memiliki nilai 0,046 yang relatif tidak sama (meningkat) Model NB dan ROS+AB+NB memiliki nilai 0,819 yang relatif sama Model NB dan ROS+AB+NB memiliki nilai 0,251 yang relatif sama Model NB dan ROS+AB+NB memiliki nilai 0,491 yang relatif sama 0,001
202
E. Uji Konkordansi Kendall
Tabel 4.151 Rekap Uji Konkordansi Kendall untuk Model NB dan ROS+AB+NB Pengukuran
Rata-rata Peringkat NB ROS+AB+NB
Akurasi
1,85
1,15
Sensitivitas
1,30
1,70
F-Measure
1,48
1,53
G-Mean
1,38
1,63
AUC
1,43
1,58
P-Value
Hasil (α = 0,05)
Model NB dan ROS+AB+NB memiliki nilai yang tidak selaras (menurun) Model NB dan ROS+AB+NB memiliki 0,046 nilai yang tidak selaras (meningkat) Model NB dan ROS+AB+NB memiliki 0,819 nilai yang selaras (relatif sama) Model NB dan ROS+AB+NB memiliki 0,251 nilai yang selaras (relatif sama) Model NB dan ROS+AB+NB memiliki 0,491 nilai yang selaras (relatif sama) 0,001
Rekap hasil dari uji statistik di atas selanjutnya ditampilkan pada Tabel 4.152 untuk mempermudah analisa selanjutnya. Dengan menampilkan hasil uji statistik pada satu tabel, maka akan mudah dilihat pada bagian mana yang memiliki perbedaan secara signifikan.
Tabel 4.152 Rekap Uji Statistik No
Uji Statistik
1 Uji T 2 Uji Tanda 3 Uji Wilcoxon 4 Uji Friedman 5 Uji Kendall
Akurasi
Pengukuran Meningkat Signifikan Sensitivitas F-Measure G-Mean
AUC
Berdasarkan pengujian yang dilakukan menggunakan uji t, uji tanda, uji peringkat bertanda Wilcoxon, uji Friedman, dan uji konkordansi Kendall menunjukkan akurasi mengalami penurunan, sedangkan sensitivitas mengalami peningkatan. Untuk uji T dan uji peringkat bertanda Wilcoxon menunjukkan adanya peningkatan pada G-Mean. Sedangkan F-Measure, dan AUC tidak ada peningkatan secara signifikan. Sehingga disimpulkan bahwa integrasi ROS dan AdaBoost tidak dapat meningkatkan kinerja pengklasifikasi Naïve Bayes pada
203
prediksi cacat software. Hal ini bertentangan dengan penelitian yang menyatakan bahwa meningkatkan jumlah kelas minoritas dapat meningkatkan kemampuan algoritma pembelajar menjadi lebih baik, karena bisa mengenali sampel kelas minoritas dari mayoritas (Japkowicz & Stephen, 2002, p. 443), dan AdaBoost dapat meningkatkan kinerja Naϊve Bayes (Korada, Kumar, & Deekshitulu, 2012, p. 73). Tetapi menegaskan hasil penelitian yang menyatakan bahwa boosting tidak bekerja dengan baik pada pengklasifikasi Naϊve Bayes, karena merupakan pengklasifikasi yang stabil dengan bias yang kuat (Ting & Zheng, 2003, p. 199).
4.2.4.2 Integrasi RUS dan AdaBoost Untuk mengetahui signifikansi peningkatan kinerja Naϊve Bayes jika diintegrasikan dengan RUS (Random Under-Sampling) dan AdaBoost pada prediksi cacat software, maka dilakukan uji statistik. Uji statistik yang digunakan adalah uji T (T-test) satu sisi untuk sisi bawah, uji tanda (sign test) satu sisi untuk sisi bawah, uji peringkat bertanda Wilcoxon (Wilcoxon signed-rank test) satu sisi untuk sisi bawah, dan uji Friedman (Friedman test) dan uji konkordansi Kendall (Kendall's coefficient of concordance atau Kendall's W). Cara pengujian yang dilakukan sama dengan pengujian sebelumnya, sehingga pada bagian ini hanya ditunjukkan hasilnya saja. Rekap hasil uji statistik yang dilakukan adalah: A. Uji T (T-test)
Tabel 4.153 Rekap Uji T untuk Model NB dan RUS+AB+NB Pengukuran Akurasi
Mean (RUS+AB+NB - NB) -0,00653
Sensitivitas
0,02710
F-Measure
-0,00110
G-Mean
0,03685
AUC
0,00965
P-Value
Hasil (α = 0,05)
Model RUS+AB+NB tidak lebih baik daripada NB Model RUS+AB+NB tidak lebih baik 0,2175 daripada NB Model RUS+AB+NB tidak lebih baik 0,4540 daripada NB Model RUS+AB+NB lebih baik 0,0300 daripada NB Model RUS+AB+NB tidak lebih baik 0,1635 daripada NB 0,3815
204
B. Uji tanda (sign test) Tabel 4.154 Rekap Uji Tanda untuk Model NB dan RUS+AB+NB Pengukuran Akurasi Sensitivitas F-Measure G-Mean AUC
Jumlah P-Value Hasil (α = 0,05) P N T 4 16 0 0,0060 Model RUS+AB+NB tidak lebih baik daripada NB 14 6 0 0,0575 Model RUS+AB+NB tidak lebih baik daripada NB 10 9 1 0,5000 Model RUS+AB+NB tidak lebih baik daripada NB 14 6 0 0,0575 Model RUS+AB+NB tidak lebih baik daripada NB 12 7 1 0,1795 Model RUS+AB+NB tidak lebih baik daripada NB
C. Uji Peringkat Bertanda Wilcoxon
Tabel 4.155 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan RUS+AB+NB Pengukuran Akurasi
Jumlah P N T 4 16
Rata-rata Peringkat P-Value P N
0
13,00
9,88
Sensitivitas
14
6
0
10,32
10,92
F-Measure
10
9
1
9,35
10,72
G-Mean
14
6
0
11,32
8,58
AUC
12
7
1
10,00
10,00
Hasil (α = 0,05)
Model RUS+AB+NB tidak lebih baik daripada NB Model RUS+AB+NB tidak lebih 0,0700 baik daripada NB Model RUS+AB+NB tidak lebih 0,4760 baik daripada NB Model RUS+AB+NB lebih baik 0,0230 daripada NB Model RUS+AB+NB tidak lebih 0,1570 baik daripada NB 0,0240
Keterangan: P = Positive (Positif) N = Negative (Negatif) T = Ties (sama)
205
D. Uji Friedman Tabel 4.156 Rekap Uji Friedman untuk Model NB dan RUS+AB+NB Pengukuran
Rata-rata Peringkat NB RUS+AB+NB
Akurasi
1,80
1,20
Sensitivitas
1,30
1,70
F-Measure
1,48
1,53
G-Mean
1,30
1,70
AUC
1,38
1,63
P-Value
Hasil (α = 0,05)
Model NB dan RUS+AB+NB memiliki nilai yang relatif tidak sama (menurun) Model NB dan RUS+AB+NB memiliki nilai 0,074 yang relatif sama Model NB dan RUS+AB+NB memiliki nilai 0,819 yang relatif sama Model NB dan RUS+AB+NB memiliki nilai 0,074 yang relatif sama Model NB dan RUS+AB+NB memiliki nilai 0,251 yang relatif sama 0,007
E. Uji Konkordansi Kendall
Tabel 4.157 Rekap Uji Konkordansi Kendall untuk Model NB dan RUS+AB+NB Pengukuran
Rata-rata Peringkat NB RUS+AB+NB
Akurasi
1,80
1,20
Sensitivitas
1,30
1,70
F-Measure
1,48
1,53
G-Mean
1,30
1,70
AUC
1,38
1,63
P-Value
Hasil (α = 0,05)
Model NB dan RUS+AB+NB memiliki nilai yang tidak selaras (menurun) Model NB dan RUS+AB+NB memiliki nilai 0,074 yang selaras (relatif sama) Model NB dan RUS+AB+NB memiliki nilai 0,819 yang selaras (relatif sama) Model NB dan RUS+AB+NB memiliki nilai 0,074 yang selaras (relatif sama) Model NB dan RUS+AB+NB memiliki nilai 0,251 yang selaras (relatif sama) 0,007
Rekap hasil dari uji statistik di atas selanjutnya ditampilkan pada Tabel 4.158 untuk mempermudah analisa selanjutnya. Dengan menampilkan hasil uji statistik pada satu tabel, maka akan mudah dilihat pada bagian mana yang memiliki perbedaan secara signifikan.
206
Tabel 4.158 Rekap Uji Statistik No
Uji Statistik
Akurasi
1 Uji T 2 Uji Tanda 3 Uji Wilcoxon 4 Uji Friedman 5 Uji Kendall
Berdasarkan
Pengukuran Meningkat Signifikan Sensitivitas F-Measure G-Mean
AUC
pengujian
yang
dilakukan
menunjukkan
bahwa
ada
peningkatan secara signifikan hanya pada G-Mean untuk pengujian uji t dan uji peringkat bertanda Wilcoxon. Sedangkan pada pengujian dan pengukuran lain tidak menunjukkan adanya peningkatan secara signifikan, dan akurasi senderung menurun. Sehingga disimpulkan bahwa integrasi RUS dan AdaBoost tidak dapat meningkatkan kinerja pengklasifikasi Naïve Bayes pada prediksi cacat software. Hasil ini bertentangan dengan penelitian yang menyatakan bahwa RUSBoost (integrasi RUS dan AdaBoost) dapat meningkatkan kinerja menjadi lebih baik secara signifikan dibanding komponen penyusunnya (Seiffert, Khoshgoftaar, Hulse, & Napolitano, 2010, p. 186).
4.2.4.3 Integrasi FSMOTE dan AdaBoost Untuk mengetahui signifikansi peningkatan kinerja Naϊve Bayes jika diintegrasikan dengan FSMOTE dan AdaBoost pada prediksi cacat software, maka dilakukan uji statistik. Uji statistik yang digunakan adalah uji T (T-test) satu sisi untuk sisi bawah, uji tanda (sign test) satu sisi untuk sisi bawah, uji peringkat bertanda Wilcoxon (Wilcoxon signed-rank test) satu sisi untuk sisi bawah, dan uji Friedman (Friedman test) dan uji konkordansi Kendall (Kendall's coefficient of concordance atau Kendall's W). Cara pengujian yang dilakukan sama dengan pengujian sebelumnya, sehingga pada bagian ini hanya ditunjukkan hasilnya saja. Rekap hasil uji statistik yang dilakukan adalah:
207
A. Uji T (T-test)
Tabel 4.159 Rekap Uji T untuk Model NB dan FSMOTE+AB+NB Pengukuran
Mean P-Value (FSMOTE+AB+NB - NB)
Akurasi
0,00240
Sensitivitas
0,03214
F-Measure
0,01820
G-Mean
0,03830
AUC
0,01245
Hasil (α = 0,05)
Model FSMOTE+AB+NB tidak lebih baik daripada NB Model FSMOTE+AB+NB tidak lebih 0,1035 baik daripada NB Model FSMOTE+AB+NB tidak lebih 0,0735 baik daripada NB Model FSMOTE+AB+NB lebih baik 0,0090 daripada NB Model FSMOTE+AB+NB tidak lebih 0,0630 baik daripada NB 0,4440
B. Uji tanda (sign test)
Tabel 4.160 Rekap Uji Tanda untuk Model NB dan FSMOTE+AB+NB Pengukuran Akurasi Sensitivitas F-Measure G-Mean AUC
Jumlah P-Value Hasil (α = 0,05) P N T 8 11 1 0,3240 Model FSMOTE+AB+NB tidak lebih baik daripada NB 14 5 1 0,0320 Model FSMOTE+AB+NB lebih baik daripada NB 13 6 1 0,0835 Model FSMOTE+AB+NB tidak lebih baik daripada NB 16 3 1 0,0020 Model FSMOTE+AB+NB lebih baik daripada NB 13 5 2 0,0480 Model FSMOTE+AB+NB lebih baik daripada NB
208
C. Uji Peringkat Bertanda Wilcoxon
Tabel 4.161 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan FSMOTE+AB+NB Pengukuran Akurasi
Jumlah P N T 8 11
Rata-rata Peringkat P-Value P N
1
9,38
10,45
Sensitivitas
14
5
1
9,00
12,80
F-Measure
13
6
1
10,54
8,83
G-Mean
16
3
1
9,41
13,17
AUC
13
5
2
9,62
9,20
Hasil (α = 0,05)
Model FSMOTE+AB+NB tidak lebih baik daripada NB Model FSMOTE+AB+NB tidak 0,1060 lebih baik daripada NB Model FSMOTE+AB+NB lebih 0,0455 baik daripada NB Model FSMOTE+AB+NB lebih 0,0130 baik daripada NB Model FSMOTE+AB+NB lebih 0,0425 baik daripada NB 0,2105
Keterangan: P = Positive (Positif) N = Negative (Negatif) T = Ties (sama)
D. Uji Friedman
Tabel 4.162 Rekap Uji Friedman untuk Model NB dan FSMOTE+AB+NB Pengukuran
Rata-rata Peringkat P-Value NB FSMOTE+AB+NB
Akurasi
1,58
1,43
Sensitivitas
1,28
1,73
F-Measure
1,33
1,68
G-Mean
1,18
1,83
AUC
1,30
1,70
Hasil (α = 0,05)
Model NB dan FSMOTE+AB+NB memiliki nilai yang relatif sama Model NB dan FSMOTE+AB+NB memiliki 0,039 nilai yang relatif tidak sama (meningkat) Model NB dan FSMOTE+AB+NB memiliki 0,108 nilai yang relatif sama Model NB dan FSMOTE+AB+NB memiliki 0,003 nilai yang relatif tidak sama (meningkat) Model NB dan FSMOTE+AB+NB memiliki 0,059 nilai yang relatif sama 0,491
209
E. Uji Konkordansi Kendall
Tabel 4.163 Rekap Uji Konkordansi Kendall untuk Model NB dan FSMOTE+AB+NB Pengukuran
Rata-rata Peringkat P-Value NB FSMOTE+AB+NB
Akurasi
1,58
1,43
0,491
Model NB dan FSMOTE+AB+NB memiliki nilai yang selaras (relatif sama)
Sensitivitas
1,28
1,73
0,039
Model NB dan FSMOTE+AB+NB memiliki nilai yang tidak selaras (meningkat)
F-Measure
1,33
1,68
0,108
Model NB dan FSMOTE+AB+NB memiliki nilai yang selaras (relatif sama)
G-Mean
1,18
1,83
0,003
Model NB dan FSMOTE+AB+NB memiliki nilai yang tidak selaras (meningkat)
AUC
1,30
1,70
0,059
Model NB dan FSMOTE+AB+NB memiliki nilai yang selaras (relatif sama)
Hasil (α = 0,05)
Rekap hasil dari uji statistik di atas selanjutnya ditampilkan pada Tabel 4.164 untuk mempermudah analisa selanjutnya. Dengan menampilkan hasil uji statistik pada satu tabel, maka akan mudah dilihat pada bagian mana yang memiliki perbedaan secara signifikan.
Tabel 4.164 Rekap Uji Statistik No
Uji Statistik
1 Uji T 2 Uji Tanda 3 Uji Wilcoxon 4 Uji Friedman 5 Uji Kendall
Akurasi
Pengukuran Meningkat Signifikan Sensitivitas F-Measure G-Mean
AUC
Berdasarkan pengujian yang dilakukan menggunakan uji t, uji tanda, uji peringkat bertanda Wilcoxon, uji Friedman, dan uji konkordansi Kendall menunjukkan adanya peningkatan pengukuran secara signifikan. Peningkatan sensitifitas ditunjukkan pada pengujian uji tanda, uji Friedman, dan uji konkordansi Kendall. Peningkatan F-Measure ditunjukkan pada pengujian uji peringkat bertanda Wilcoxon. Kelima pengujian menunjukkan bahwa pengukuran
210
G-Mean meningkat secara signifikan. Pada uji tanda, dan uji peringkat bertanda Wilcoxon menunjukkan adanya peningkatan secara signifikan pada pengukuran AUC. Sehingga disimpulkan bahwa integrasi FSMOTE dan AdaBoost dapat meningkatkan kinerja pengklasifikasi Naïve Bayes pada prediksi cacat software dalam memprediksi kelas minoritas, walaupun memiliki akurasi yang cenderung menurun. Hal ini mendukung penelitian yang menyatakan bahwa meningkatkan jumlah kelas minoritas dapat meningkatkan kemampuan algoritma pembelajar menjadi lebih baik, karena bisa mengenali sampel kelas minoritas dari mayoritas (Japkowicz & Stephen, 2002, p. 443), AdaBoost dapat meningkatkan kinerja Naϊve Bayes (Korada, Kumar, & Deekshitulu, 2012, p. 73), dan SMOTEBoost (integrasi SMOTE dan AdaBoost) sangat meningkatkan recall dan precision sehingga membuat F-Measure menjadi lebih baik (Chawla, Lazarevic, Lawrence, & Bowyer, 2003, p. 117).
4.2.4.4 Integrasi ROS dan Bagging Untuk mengetahui signifikansi peningkatan kinerja Naϊve Bayes jika diintegrasikan dengan ROS (Random Over-Sampling) dan Bagging pada prediksi cacat software, maka dilakukan uji statistik. Uji statistik yang digunakan adalah uji T (T-test) satu sisi untuk sisi bawah, uji tanda (sign test) satu sisi untuk sisi bawah, uji peringkat bertanda Wilcoxon (Wilcoxon signed-rank test) satu sisi untuk sisi bawah, dan uji Friedman (Friedman test) dan uji konkordansi Kendall (Kendall's coefficient of concordance atau Kendall's W). Cara pengujian yang dilakukan sama dengan pengujian sebelumnya, sehingga pada bagian ini hanya ditunjukkan hasilnya saja. Rekap hasil uji statistik yang dilakukan adalah:
211
A. Uji T (T-test)
Tabel 4.165 Rekap Uji T untuk Model NB dan ROS+BG+NB Pengukuran
Mean (ROS+BG+NB - NB)
Akurasi
P-Value
-0,00020
Sensitivitas
0,01188
F-Measure
0,00545
G-Mean
0,01025
AUC
0,00480
Hasil (α = 0,05)
Model ROS+BG+NB tidak lebih baik daripada NB Model ROS+BG+NB lebih baik 0,0015 daripada NB Model ROS+BG+NB lebih baik 0,0300 daripada NB Model ROS+BG+NB lebih baik 0,0245 daripada NB Model ROS+BG+NB tidak lebih baik 0,0545 daripada NB 0,4835
B. Uji tanda (sign test)
Tabel 4.166 Rekap Uji Tanda untuk Model NB dan ROS+BG+NB Pengukuran Akurasi Sensitivitas F-Measure G-Mean AUC
Jumlah P-Value Hasil (α = 0,05) P N T 5 13 2 0,0480 Model ROS+BG+NB tidak lebih baik daripada NB 13 3 4 0,0105 Model ROS+BG+NB lebih baik daripada NB 11 9 0 0,4120 Model ROS+BG+NB tidak lebih baik daripada NB 13 6 1 0,0835 Model ROS+BG+NB tidak lebih baik daripada NB 11 8 1 0,3240 Model ROS+BG+NB tidak lebih baik daripada NB
212
C. Uji Peringkat Bertanda Wilcoxon
Tabel 4.167 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan ROS+BG+NB Jumlah P N T
Pengukuran Akurasi
5 13
Rata-rata Peringkat P-Value P N
2
11,40
8,77
Sensitivitas
13
3
4
9,62
3,67
F-Measure
11
9
0
13,91
6,33
G-Mean
13
6
1
11,62
6,50
AUC
11
8
1
13,05
5,81
Hasil (α = 0,05)
Model ROS+BG+NB tidak lebih baik daripada NB Model ROS+BG+NB lebih baik 0,0015 daripada NB Model ROS+BG+NB tidak lebih 0,3650 baik daripada NB Model ROS+BG+NB lebih baik 0,0120 daripada NB Model ROS+BG+NB lebih baik 0,0250 daripada NB 0,1075
Keterangan: P = Positive (Positif) N = Negative (Negatif) T = Ties (sama)
D. Uji Friedman
Tabel 4.168 Rekap Uji Friedman untuk Model NB dan ROS+BG+NB Pengukuran
Rata-rata Peringkat NB ROS+BG+NB
Akurasi
1,70
1,30
Sensitivitas
1,25
1,75
F-Measure
1,45
1,55
G-Mean
1,33
1,68
AUC
1,43
1,58
P-Value
Hasil (α = 0,05)
Model NB dan ROS+BG+NB memiliki nilai yang relatif sama Model NB dan ROS+BG+NB memiliki nilai 0,012 yang relatif tidak sama (meningkat) Model NB dan ROS+BG+NB memiliki nilai 0,655 yang relatif sama Model NB dan ROS+BG+NB memiliki nilai 0,108 yang relatif sama Model NB dan ROS+BG+NB memiliki nilai 0,491 yang relatif sama 0,059
213
E. Uji Konkordansi Kendall
Tabel 4.169 Rekap Uji Konkordansi Kendall untuk Model NB dan ROS+BG+NB Pengukuran
Rata-rata Peringkat NB ROS+BG+NB
Akurasi
1,70
1,30
Sensitivitas
1,25
1,75
F-Measure
1,45
1,55
G-Mean
1,33
1,68
AUC
1,43
1,58
P-Value
Hasil (α = 0,05)
Model NB dan ROS+BG+NB memiliki nilai yang selaras (relatif sama) Model NB dan ROS+BG+NB memiliki 0,012 nilai yang tidak selaras (meningkat) Model NB dan ROS+BG+NB memiliki 0,655 nilai yang selaras (relatif sama) Model NB dan ROS+BG+NB memiliki 0,108 nilai yang selaras (relatif sama) Model NB dan ROS+BG+NB memiliki 0,491 nilai yang selaras (relatif sama) 0,059
Rekap hasil dari uji statistik di atas selanjutnya ditampilkan pada Tabel 4.170 untuk mempermudah analisa selanjutnya. Dengan menampilkan hasil uji statistik pada satu tabel, maka akan mudah dilihat pada bagian mana yang memiliki perbedaan secara signifikan.
Tabel 4.170 Rekap Uji Statistik No
Uji Statistik
1 Uji T 2 Uji Tanda 3 Uji Wilcoxon 4 Uji Friedman 5 Uji Kendall
Akurasi
Pengukuran Meningkat Signifikan Sensitivitas F-Measure G-Mean
AUC
Berdasarkan pengujian yang dilakukan menggunakan uji t, uji tanda, uji peringkat bertanda Wilcoxon, uji Friedman, dan uji konkordansi Kendall menunjukkan bahwa akurasi mengalami penurunan, sedangkan sensitivitas meningkat secara signifikan. Pengukuran F-Measure meningkat secara signifikan pada uji t. Pengukuran G-Mean meningkat secara signifikan pada uji t dan uji peringkat bertanda Wilcoxon. Pengukuran AUC mengalami peningkatan secara signifikan pada uji peringkat bertanda Wilcoxon. Sehingga disimpulkan bahwa
214
integrasi ROS dan Bagging tidak dapat meningkatkan kinerja pengklasifikasi Naïve Bayes pada prediksi cacat software. Hal ini bertentangan dengan penelitian yang
menyatakan
bahwa
meningkatkan
jumlah
kelas
minoritas
dapat
meningkatkan kemampuan algoritma pembelajar menjadi lebih baik, karena bisa mengenali sampel kelas minoritas dari mayoritas (Japkowicz & Stephen, 2002, p. 443). Tetapi menegaskan penelitian yang menyatakan bahwa Naïve Bayes merupakan pembelajar stabil yang tidak dapat ditingkatkan dengan Bagging (Liang, Zhu, & Zhang, 2011, p. 1803).
4.2.4.5 Integrasi RUS dan Bagging Untuk mengetahui signifikansi peningkatan kinerja Naϊve Bayes jika diintegrasikan dengan RUS (Random Under-Sampling) dan Bagging pada prediksi cacat software, maka dilakukan uji statistik. Uji statistik yang digunakan adalah uji T (T-test) satu sisi untuk sisi bawah, uji tanda (sign test) satu sisi untuk sisi bawah, uji peringkat bertanda Wilcoxon (Wilcoxon signed-rank test) satu sisi untuk sisi bawah, dan uji Friedman (Friedman test) dan uji konkordansi Kendall (Kendall's coefficient of concordance atau Kendall's W). Cara pengujian yang dilakukan sama dengan pengujian sebelumnya, sehingga pada bagian ini hanya ditunjukkan hasilnya saja. Rekap hasil uji statistik yang dilakukan adalah: A. Uji T (T-test)
Tabel 4.171 Rekap Uji T untuk Model NB dan RUS+BG+NB Pengukuran Akurasi
Mean (RUS+BG+NB - NB) -0,06839
Sensitivitas
0,10004
F-Measure
0,00405
G-Mean
0,04070
AUC
0,00925
P-Value
Hasil (α = 0,05)
Model RUS+BG+NB tidak lebih baik daripada NB Model RUS+BG+NB lebih baik 0,0245 daripada NB Model RUS+BG+NB tidak lebih baik 0,3520 daripada NB Model RUS+BG+NB lebih baik 0,0010 daripada NB Model RUS+BG+NB tidak lebih baik 0,0835 daripada NB 0,0770
215
B. Uji tanda (sign test)
Tabel 4.172 Rekap Uji Tanda untuk Model NB dan RUS+BG+NB Pengukuran Akurasi Sensitivitas F-Measure G-Mean AUC
Jumlah P-Value Hasil (α = 0,05) P N T 5 15 0 0,0205 Model RUS+BG+NB tidak lebih baik daripada NB 17 3 0 0,0015 Model RUS+BG+NB lebih baik daripada NB 13 7 0 0,1315 Model RUS+BG+NB tidak lebih baik daripada NB 17 3 0 0,0015 Model RUS+BG+NB lebih baik daripada NB 16 4 0 0,0060 Model RUS+BG+NB lebih baik daripada NB
C. Uji Peringkat Bertanda Wilcoxon
Tabel 4.173 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan RUS+BG+NB Pengukuran Akurasi
Jumlah P N T 5 15
Rata-rata Peringkat P-Value P N
0
9,80
10,73
Sensitivitas
17
3
0
10,35
11,33
F-Measure
13
7
0
10,00
11,43
G-Mean
17
3
0
11,18
6,67
AUC
16
4
0
10,56
10,25
Hasil (α = 0,05)
Model RUS+BG+NB tidak lebih baik daripada NB Model RUS+BG+NB lebih baik 0,0040 daripada NB Model RUS+BG+NB tidak lebih 0,1750 baik daripada NB Model RUS+BG+NB lebih baik 0,0010 daripada NB Model RUS+BG+NB lebih baik 0,0085 daripada NB 0,0185
Keterangan: P = Positive (Positif) N = Negative (Negatif) T = Ties (sama)
216
D. Uji Friedman
Tabel 4.174 Rekap Uji Friedman untuk Model NB dan RUS+BG+NB Pengukuran
Rata-rata Peringkat NB RUS+BG+NB
Akurasi
1,75
1,25
Sensitivitas
1,15
1,85
F-Measure
1,35
1,65
G-Mean
1,15
1,85
AUC
1,20
1,80
P-Value
Hasil (α = 0,05)
Model NB dan RUS+BG+NB memiliki nilai yang relatif tidak sama (menurun) Model NB dan RUS+BG+NB memiliki nilai 0,002 yang relatif tidak sama (meningkat) Model NB dan RUS+BG+NB memiliki nilai 0,180 yang relatif sama Model NB dan RUS+BG+NB memiliki nilai 0,002 yang relatif tidak sama (meningkat) Model NB dan RUS+BG+NB memiliki nilai 0,007 yang relatif tidak sama (meningkat) 0,025
E. Uji Konkordansi Kendall
Tabel 4.175 Rekap Uji Konkordansi Kendall untuk Model NB dan RUS+BG+NB Pengukuran
Rata-rata Peringkat NB RUS+BG+NB
Akurasi
1,75
1,25
Sensitivitas
1,15
1,85
F-Measure
1,35
1,65
G-Mean
1,15
1,85
AUC
1,20
1,80
P-Value
Hasil (α = 0,05)
Model NB dan RUS+BG+NB memiliki nilai yang tidak selaras (menurun) Model NB dan RUS+BG+NB memiliki nilai 0,002 yang tidak selaras (meningkat) Model NB dan RUS+BG+NB memiliki nilai 0,180 yang selaras (relatif sama) Model NB dan RUS+BG+NB memiliki nilai 0,002 yang tidak selaras (meningkat) Model NB dan RUS+BG+NB memiliki nilai 0,007 yang tidak selaras (meningkat) 0,025
Rekap hasil dari uji statistik di atas selanjutnya ditampilkan pada Tabel 4.176 untuk mempermudah analisa selanjutnya. Dengan menampilkan hasil uji statistik pada satu tabel, maka akan mudah dilihat pada bagian mana yang memiliki perbedaan secara signifikan.
217
Tabel 4.176 Rekap Uji Statistik No
Uji Statistik
1 Uji T 2 Uji Tanda 3 Uji Wilcoxon 4 Uji Friedman 5 Uji Kendall
Akurasi
Pengukuran Meningkat Signifikan Sensitivitas F-Measure G-Mean
AUC
Berdasarkan pengujian yang dilakukan menggunakan uji t menunjukkan adanya peningkatan secara signifikan pada pengukuran sensitifitas dan G-Mean. Pada uji tanda, uji peringkat bertanda Wilcoxon, uji Friedman, dan uji konkordansi Kendall menunjukkan bahwa ada peningkatan secara signifikan pada sensitivitas, G-Mean, dan AUC. Tetapi pada semua pengujian menunjukkan akurasi mengalami penurunan. Sehingga disimpulkan bahwa integrasi RUS dan Bagging dapat meningkatkan kinerja pengklasifikasi Naïve Bayes pada prediksi cacat software walaupun akurasi menurun, karena kemampuan memprediksi kelas minoritas meningkat. Hal ini menegaskan penelitian yang menyatakan bahwa Random Under-Sampling (RUS) sebagai strategi pembelajaran sensitif biaya yang efektif untuk menangani ketidakseimbangan kelas (Laza, Pavón, Reboiro-Jato, & Fdez-Riverola, 2011, p. 10). Tetapi bertentangan dengan penelitian yang menyatakan bahwa Naïve Bayes merupakan pembelajar stabil yang tidak dapat ditingkatkan dengan Bagging (Liang, Zhu, & Zhang, 2011, p. 1803).
4.2.4.6 Integrasi FSMOTE dan Bagging Untuk mengetahui signifikansi peningkatan kinerja Naϊve Bayes jika diintegrasikan dengan FSMOTE dan Bagging pada prediksi cacat software, maka dilakukan uji statistik. Uji statistik yang digunakan adalah uji T (T-test) satu sisi untuk sisi bawah, uji tanda (sign test) satu sisi untuk sisi bawah, uji peringkat bertanda Wilcoxon (Wilcoxon signed-rank test) satu sisi untuk sisi bawah, dan uji Friedman (Friedman test) dan uji konkordansi Kendall (Kendall's coefficient of concordance atau Kendall's W). Cara pengujian yang dilakukan sama dengan pengujian sebelumnya, sehingga pada bagian ini hanya ditunjukkan hasilnya saja. Rekap hasil uji statistik yang dilakukan adalah:
218
A. Uji T (T-test)
Tabel 4.177 Rekap Uji T untuk Model NB dan FSMOTE+BG+NB Pengukuran
Mean P-Value (FSMOTE+BG+NB - NB)
Akurasi
0,00507
Sensitivitas
0,04738
F-Measure
0,02960
G-Mean
0,04935
AUC
0,01920
Hasil (α = 0,05)
Model FSMOTE+BG+NB tidak lebih baik daripada NB Model FSMOTE+BG+NB lebih baik 0,0425 daripada NB Model FSMOTE+BG+NB lebih baik 0,0115 daripada NB Model FSMOTE+BG+NB lebih baik 0,0015 daripada NB Model FSMOTE+BG+NB lebih baik 0,0115 daripada NB 0,3885
B. Uji tanda (sign test)
Tabel 4.178 Rekap Uji Tanda untuk Model NB dan FSMOTE+BG+NB Pengukuran Akurasi Sensitivitas F-Measure G-Mean AUC
Jumlah P-Value Hasil (α = 0,05) P N T 8 11 1 0,3240 Model FSMOTE+BG+NB tidak lebih baik daripada NB 15 5 0 0,0205 Model FSMOTE+BG+NB lebih baik daripada NB 15 5 0 0,0205 Model FSMOTE+BG+NB lebih baik daripada NB 17 3 0 0,0015 Model FSMOTE+BG+NB lebih baik daripada NB 16 4 0 0,0060 Model FSMOTE+BG+NB lebih baik daripada NB
219
C. Uji Peringkat Bertanda Wilcoxon
Tabel 4.179 Rekap Uji Peringkat Bertanda Wilcoxon untuk Model NB dan FSMOTE+BG+NB Pengukuran Akurasi
Jumlah P N T 8 11
Rata-rata Peringkat P-Value P N
1
10,25
9,82
Sensitivitas
15
5
0
10,10
11,70
F-Measure
15
5
0
11,13
8,60
G-Mean
17
3
0
10,32
11,50
AUC
16
4
0
10,31
11,25
Hasil (α = 0,05)
Model FSMOTE+BG+NB tidak lebih baik daripada NB Model FSMOTE+BG+NB lebih 0,0415 baik daripada NB Model FSMOTE+BG+NB lebih 0,0105 baik daripada NB Model FSMOTE+BG+NB lebih 0,0040 baik daripada NB Model FSMOTE+BG+NB lebih 0,0125 baik daripada NB 0,3005
Keterangan: P = Positive (Positif) N = Negative (Negatif) T = Ties (sama)
D. Uji Friedman
Tabel 4.180 Rekap Uji Friedman untuk Model NB dan FSMOTE+BG+NB Pengukuran
Rata-rata Peringkat P-Value NB FSMOTE+BG+NB
Akurasi
1,58
1,43
Sensitivitas
1,25
1,75
F-Measure
1,25
1,75
G-Mean
1,15
1,85
AUC
1,20
1,80
Hasil (α = 0,05)
Model NB dan FSMOTE+BG+NB memiliki nilai yang relatif sama Model NB dan FSMOTE+BG+NB memiliki 0,025 nilai yang relatif tidak sama (meningkat) Model NB dan FSMOTE+BG+NB memiliki 0,025 nilai yang relatif tidak sama (meningkat) Model NB dan FSMOTE+BG+NB memiliki 0,002 nilai yang relatif tidak sama (meningkat) Model NB dan FSMOTE+BG+NB memiliki 0,007 nilai yang relatif tidak sama (meningkat) 0,491
220
E. Uji Konkordansi Kendall
Tabel 4.181 Rekap Uji Konkordansi Kendall untuk Model NB dan FSMOTE+BG+NB Pengukuran
Rata-rata Peringkat P-Value NB FSMOTE+BG+NB
Akurasi
1,58
1,43
Sensitivitas
1,25
1,75
F-Measure
1,25
1,75
G-Mean
1,15
1,85
AUC
1,20
1,80
Hasil (α = 0,05)
Model NB dan FSMOTE+BG+NB memiliki nilai yang selaras (relatif sama) Model NB dan FSMOTE+BG+NB memiliki 0,025 nilai yang tidak selaras (meningkat) Model NB dan FSMOTE+BG+NB memiliki 0,025 nilai yang tidak selaras (meningkat) Model NB dan FSMOTE+BG+NB memiliki 0,002 nilai yang tidak selaras (meningkat) Model NB dan FSMOTE+BG+NB memiliki 0,007 nilai yang tidak selaras (meningkat) 0,491
Rekap hasil dari uji statistik di atas selanjutnya ditampilkan pada Tabel 4.182 untuk mempermudah analisa selanjutnya. Dengan menampilkan hasil uji statistik pada satu tabel, maka akan mudah dilihat pada bagian mana yang memiliki perbedaan secara signifikan.
Tabel 4.182 Rekap Uji Statistik No
Uji Statistik
1 Uji T 2 Uji Tanda 3 Uji Wilcoxon 4 Uji Friedman 5 Uji Kendall
Akurasi
Pengukuran Meningkat Signifikan Sensitivitas F-Measure G-Mean
AUC
Berdasarkan pengujian yang dilakukan menggunakan uji t, uji tanda, uji peringkat bertanda Wilcoxon, uji Friedman, dan uji konkordansi Kendall menunjukkan bahwa sensitivitas, F-Measure, G-Mean, dan AUC mengalami peningkatan, sedangkan akurasi relatif sama. Sehingga disimpulkan bahwa integrasi FSMOTE dan Bagging dapat meningkatkan kinerja pengklasifikasi Naïve Bayes pada prediksi cacat software walaupun akurasi relatif sama, karena kemampuan memprediksi kelas minoritas meningkat. Hal ini menegaskan
221
penelitian yang menyatakan bahwa meningkatkan jumlah kelas minoritas dapat meningkatkan kemampuan algoritma pembelajar menjadi lebih baik, karena bisa mengenali sampel kelas minoritas dari mayoritas (Japkowicz & Stephen, 2002, p. 443). Tetapi bertentangan dengan penelitian yang menyatakan bahwa Naïve Bayes merupakan pembelajar stabil yang tidak dapat ditingkatkan dengan Bagging (Liang, Zhu, & Zhang, 2011, p. 1803).
4.2.4.7 Integrasi Level Data dan Level Algoritma Terbaik Untuk mengetahui integrasi pendekatan level data dan level algoritma manakah yang menghasilkan kinerja terbaik pada prediksi cacat software, maka dilakukan uji Friedman, Nemenyi post hoc, dan disajikan dalam diagram Demsar yang dimodifikasi. Karena nilai CD (Critical Difference) pada Nemenyi post hoc dipengaruhi oleh nilai studentized range statistic (4,17), jumlah model (K=7), dan jumlah dataset (D=20), maka nilainya dihitung sebagai berikut:
𝐾(𝐾 + 1) 7(7 + 1) 𝐶𝐷 = 𝑞∝,∞,𝐾 √ = 4,17√ 12𝐷 12 ∙ 20
56 𝐶𝐷 = 4,17√ = 2,01430136772033 240
Untuk mengetahui signifikansi perbedaan di antara ketujuh model, dilakukan uji Friedman menggunakan aplikasi SPSS. Nilai p-value dari uji Friedman ditunjukkan pada Tabel 4.183.
222
Tabel 4.183 Rekap P-Value pada Uji Friedman untuk Model yang Mengintegrasikan Pendekatan Level Data dan Level Algoritma Pengukuran Akurasi Sensitivitas F-Measure G-Mean AUC
P-Value 0,040473 0,000241 0,042638 0,000006 0,003232
Hasil (α = 0,05) Sig., Ada perbedaan nilai di antara model Sig., Ada perbedaan nilai di antara model Sig., Ada perbedaan nilai di antara model Sig., Ada perbedaan nilai di antara model Sig., Ada perbedaan nilai di antara model
Hasil pada Tabel 4.183 menunjukkan bahwa nilai akurasi, sensitivitas, FMeasure, G-Mean dan AUC memiliki perbedaan secara signifikan. Berdasarkan signifikansi dari uji Friedman tersebut, maka hanya pengukuran yang memiliki perbedaan secara signifikan saja yang dibuatkan diagram Demsar yang telah dimodifikasi. Berikut ini adalah tahapan pembuatan diagram Demsar sesuai hasil pengukuran yang diuji: A. Akurasi Data yang diperoleh dari pengukuran akurasi model ditunjukkan pada Tabel 4.189.
223
Tabel 4.184 Hasil Pengukuran Akurasi Model
NB
ROS+AB+NB
ROS+BG+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
Model
81,65% 78,87% 74,10% 78,87% 72,58% 88,81% 88,09% 36,75% 85,59% 75,03% 82,61% 78,81% 74,01% 82,10% 72,90% 89,66% 92,51% 47,34% 85,43% 74,73%
81,35% 78,81% 64,11% 77,32% 71,77% 88,51% 88,64% 36,47% 84,96% 67,30% 82,61% 78,86% 66,87% 82,10% 72,26% 89,55% 80,84% 44,57% 84,25% 69,19%
81,04% 78,73% 74,10% 78,35% 73,39% 88,51% 87,81% 44,44% 85,91% 74,56% 81,92% 78,95% 73,58% 81,48% 72,90% 89,01% 93,39% 42,51% 84,96% 74,50%
71,25% 78,80% 73,41% 74,74% 73,39% 87,19% 68,84% 68,85% 84,09% 74,97% 75,29% 78,76% 73,84% 78,70% 73,55% 87,27% 88,55% 57,98% 83,31% 74,62%
78,29% 78,74% 73,06% 73,71% 73,39% 84,54% 36,43% 56,32% 83,94% 74,91% 74,14% 78,72% 73,24% 56,17% 73,55% 86,07% 23,86% 67,35% 82,21% 75,03%
72,78% 78,81% 71,69% 76,29% 72,58% 90,72% 92,94% 56,22% 84,02% 75,27% 68,19% 78,86% 71,86% 79,32% 72,26% 85,42% 94,64% 65,08% 83,15% 75,15%
73,70% 78,87% 69,54% 76,80% 73,39% 90,57% 93,21% 57,65% 84,25% 74,91% 67,96% 78,72% 71,34% 79,94% 75,48% 85,31% 94,49% 66,57% 82,84% 75,03%
Data Set
MDP Repository
PROMISE Repository
CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.185.
224
Tabel 4.185 Peringkat Akurasi Model pada Uji Friedman
CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5 Jumlah Rata-rata
1 1,5 1,5 1 5,5 3 4 6 2 2 1,5 4 1 1,5 4,5 1 4 5 1 4 55 2,75
2 3,5 7 3 7 4,5 3 7 3 7 1,5 2,5 7 1,5 6,5 2 6 6 3 7 90 4,5
3 7 1,5 2 2,5 4,5 5 5 1 6 3 1 3 3 4,5 3 3 7 2 6 73 3,65
7 4 5 6 3 4 6 7 2,5 2,5 6 7 6 7 1 3 5 7 3 4,5 4 5 5 6,5 2 4 6 7 2,5 2,5 4 5 5 7 4 1 4 7 5 2,5 86 99,5 4,3 4,975
FSMOTE+BG+NB
FSMOTE+AB+NB
RUS+BG+NB
RUS+AB+NB
ROS+BG+NB
NB
Data Set
ROS+AB+NB
Model
6 5 3,5 1,5 5 6 5 4 5,5 2,5 1 2 2 1 4 2 6 4 1 4,5 6 7 2,5 6,5 5 6 5 4 6,5 1 6 7 1 2 3 2 5 6 1 2,5 80 76,5 4 3,825
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
225
Tabel 4.186
ROS+AB+NB
ROS+BG+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB ROS+AB+NB ROS+BG+NB RUS+AB+NB RUS+BG+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
Perbandingan Berpasangan pada Nemenyi Post Hoc
0 1,75 0,9 1,55 2,225 1,25 1,075
-1,75 0 -0,85 -0,2 0,475 -0,5 -0,675
-0,9 0,85 0 0,65 1,325 0,35 0,175
-1,55 0,2 -0,65 0 0,675 -0,3 -0,475
-2,225 -0,475 -1,325 -0,675 0 -0,975 -1,15
-1,25 0,5 -0,35 0,3 0,975 0 -0,175
-1,075 0,675 -0,175 0,475 1,15 0,175 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
Tabel 4.187
ROS+AB+NB
ROS+BG+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB ROS+AB+NB ROS+BG+NB RUS+AB+NB RUS+BG+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
P-value pada Nemenyi Post Hoc
1 0,137885 0,844041 0,259158 0,019352 0,527684 0,699338
0,137885 1 0,876775 0,999949 0,992897 0,990646 0,956726
0,844041 0,876775 1 0,963987 0,453868 0,998694 0,999977
0,259158 0,999949 0,963987 1 0,956726 0,999459 0,992897
0,019352 0,992897 0,453868 0,956726 1 0,787192 0,627226
0,527684 0,990646 0,998694 0,999459 0,787192 1 0,999977
0,699338 0,956726 0,999977 0,992897 0,627226 0,999977 1
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not.
226
Tabel 4.188
RUS+BG+NB
Not Not Not Sig Not Not
Not Not
Not Not Not
Sig Not Not Not
Not Not Not Not Not
Not Not Not Not
Not Not Not
Not Not
FSMOTE+BG+NB
RUS+AB+NB
NB ROS+AB+NB ROS+BG+NB RUS+AB+NB RUS+BG+NB FSMOTE+AB+NB FSMOTE+BG+NB
FSMOTE+AB+NB
ROS+BG+NB
Not
NB
ROS+AB+NB
Perbedaan Signifikan pada Nemenyi Post Hoc
Not Not Not Not Not
Not Not Not Not Not Not
Not
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.12 Perbandingan Akurasi Model Menggunakan Diagram Demsar
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa model RUS+AB+NB menurun secara signifikan dibandingkan model NB, sedangkan model lain yang mengintegrasikan level data dan level algoritma menurun tidak signifikan dibandingkan model NB.
B. Sensitivitas Data yang diperoleh dari pengukuran sensitivitas model ditunjukkan pada Tabel 4.189.
227
Tabel 4.189 Hasil Pengukuran Nilai Sensitivitas Model
NB
ROS+AB+NB
ROS+BG+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
Model
30,95% 19,85% 33,67% 36,11% 38,64% 40,00% 12,50% 90,77% 28,98% 22,27% 32,61% 19,73% 33,67% 42,86% 35,29% 35,00% 23,81% 85,14% 28,98% 21,62%
33,33% 19,60% 45,92% 38,89% 36,36% 40,00% 12,50% 89,23% 26,71% 51,75% 34,78% 20,10% 38,44% 42,86% 47,06% 36,67% 57,14% 85,14% 39,77% 40,83%
33,33% 19,60% 35,03% 36,11% 40,91% 40,00% 12,50% 90,00% 29,55% 21,83% 36,96% 20,66% 34,01% 42,86% 37,26% 36,67% 28,57% 86,49% 31,82% 22,05%
33,33% 19,98% 32,65% 30,56% 43,18% 43,64% 62,50% 56,15% 47,73% 24,02% 34,78% 20,16% 33,33% 40,48% 39,22% 40,00% 38,10% 72,97% 31,82% 22,05%
40,48% 20,41% 33,33% 50,00% 45,46% 45,46% 75,00% 69,23% 40,34% 25,11% 39,13% 21,03% 34,35% 57,14% 47,06% 41,67% 95,24% 71,62% 35,80% 24,67%
42,86% 21,77% 41,50% 22,22% 38,64% 30,91% 25,00% 74,62% 47,73% 25,33% 47,83% 23,26% 42,18% 45,24% 43,14% 41,67% 19,05% 65,54% 46,59% 31,66%
45,24% 22,71% 46,26% 25,00% 45,46% 30,91% 25,00% 74,62% 48,86% 25,11% 47,83% 24,50% 48,30% 47,62% 45,10% 41,67% 19,05% 63,51% 47,73% 32,75%
Data Set
MDP Repository
PROMISE Repository
CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.190.
228
Tabel 4.190 Peringkat Sensitivitas Model pada Uji Friedman
CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5 Jumlah Rata-rata
7 5 5 5 6,5 6,5 5 2 4 3,5 2 3,5 5,5 7 4 4 4 4 6 6 6 1 3 2 6 7 5 6 1 7 7 5,5 4 7 6 4 6 3 5 5 5 5 7 1,5 6 7 5,5 5,5 5 2 4 2,5 2,5 1 7 3 5,5 7 1 5,5 109,5 78,5 92,5 5,475 3,925 4,625
FSMOTE+BG+NB
FSMOTE+AB+NB
RUS+BG+NB
RUS+AB+NB
ROS+BG+NB
NB
Data Set
ROS+AB+NB
Model
5 3 2 1 4 3 2 1 7 6 3 1 5 1 7 6 3 1,5 5,5 1,5 2 1 6,5 6,5 2 1 3,5 3,5 7 6 4,5 4,5 2,5 4 2,5 1 5 3,5 2 3,5 5,5 3 1,5 1,5 5 3 2 1 7 4 2 1 7 1 3 2 5 1,5 4 3 4 2 2 2 3 1 6,5 6,5 4 5 6 7 5,5 4 2 1 5,5 4 3 2 94 58,5 70,5 56,5 4,7 2,925 3,525 2,825
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
229
Tabel 4.191
ROS+AB+NB
ROS+BG+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB ROS+AB+NB ROS+BG+NB RUS+AB+NB RUS+BG+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
Perbandingan Berpasangan pada Nemenyi Post Hoc
0 -1,55 -0,85 -0,775 -2,55 -1,95 -2,65
1,55 0 0,7 0,775 -1 -0,4 -1,1
0,85 -0,7 0 0,075 -1,7 -1,1 -1,8
0,775 -0,775 -0,075 0 -1,775 -1,175 -1,875
2,55 1 1,7 1,775 0 0,6 -0,1
1,95 0,4 1,1 1,175 -0,6 0 -0,7
2,65 1,1 1,8 1,875 0,1 0,7 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
Tabel 4.192
ROS+AB+NB
ROS+BG+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB ROS+AB+NB ROS+BG+NB RUS+AB+NB RUS+BG+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
P-value pada Nemenyi Post Hoc
1 0,259158 0,876775 0,917582 0,003579 0,065133 0,002021
0,259158 1 0,948498 0,917582 0,766379 0,997234 0,67574
0,876775 0,948498 1 1 0,163298 0,67574 0,115564
0,917582 0,917582 1 1 0,126348 0,602506 0,087462
0,003579 0,766379 0,163298 0,126348 1 0,975835 0,999999
0,065133 0,997234 0,67574 0,602506 0,975835 1 0,948498
0,002021 0,67574 0,115564 0,087462 0,999999 0,948498 1
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not.
230
Tabel 4.193
Not Not
Not Not Not
Sig Not Not Not
Not Not Not Not Not
Not Not Not Not
Not Not Not
Not Not
FSMOTE+BG+NB
RUS+BG+NB
Not
FSMOTE+AB+NB
RUS+AB+NB
Not Not Not Sig Not Sig
ROS+BG+NB
NB ROS+AB+NB ROS+BG+NB RUS+AB+NB RUS+BG+NB FSMOTE+AB+NB FSMOTE+BG+NB
ROS+AB+NB
NB
Perbedaan Signifikan pada Nemenyi Post Hoc
Not Not Not Not Not
Sig Not Not Not Not Not
Not
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.13 Perbandingan Sensitivitas Model Menggunakan Diagram Demsar
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa ada beberapa model yang sensitivitasnya meningkat
secara
signifikan,
yaitu
RUS+BG+NB,
dan
FSMOTE+BG+NB. Sedangkan model yang lain memiliki peningkatan tidak signifikan.
C. F-Measure Data yang diperoleh dari pengukuran F-Measure model ditunjukkan pada Tabel 4.194.
231
Tabel 4.194 Hasil Pengukuran Nilai F-Measure Model
NB
ROS+AB+NB
ROS+BG+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
Model
0,302 0,282 0,397 0,388 0,5 0,367 0,044 0,262 0,358 0,325 0,283 0,28 0,396 0,383 0,462 0,307 0,089 0,254 0,355 0,316
0,315 0,279 0,393 0,389 0,478 0,361 0,047 0,257 0,33 0,461 0,296 0,284 0,37 0,383 0,527 0,314 0,084 0,244 0,412 0,417
0,311 0,278 0,406 0,382 0,522 0,361 0,043 0,286 0,367 0,317 0,301 0,291 0,394 0,375 0,475 0,303 0,118 0,24 0,37 0,319
0,23 0,282 0,383 0,31 0,535 0,356 0,082 0,308 0,454 0,342 0,229 0,284 0,392 0,33 0,494 0,291 0,093 0,267 0,346 0,32
0,324 0,286 0,385 0,414 0,548 0,323 0,05 0,281 0,41 0,351 0,242 0,292 0,394 0,253 0,539 0,281 0,037 0,315 0,358 0,348
0,288 0,3 0,426 0,258 0,5 0,351 0,136 0,296 0,453 0,356 0,24 0,315 0,431 0,362 0,506 0,272 0,099 0,283 0,434 0,408
0,306 0,31 0,435 0,286 0,548 0,347 0,14 0,303 0,462 0,351 0,239 0,325 0,46 0,381 0,548 0,27 0,096 0,285 0,435 0,415
Data Set
MDP Repository
PROMISE Repository
CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.195.
232
Tabel 4.195 Peringkat F-Measure Model pada Uji Friedman
5 2 4,5 6 4 5 3 2 5,5 7 1 2,5 6 5 6 7 6 7 6 1 3 2 7 5,5 3 7 1,5 1,5 7 3 2 1 5 6 5 6 6 3 7 1 93,5 80,5 4,675 4,025
7 1 6 4,5 3 2 7 6 2 5 1 7 3 1,5 5,5 4 7 5 3 4 2 1 5 3 2 4 3 5 3,5 2 7 4 5 5,5 3 2 6 4,5 2 6 7 5 5 2 4 4 5 6 4 7 2 4 1 3 7 5 2 5 4 3 95 78,5 71,5 4,75 3,925 3,575
FSMOTE+BG+NB
FSMOTE+AB+NB
3 7 3 4 4 2,5 7 4 5 7 1 4 4,5 4 6 3 1 7 4 6 87 4,35
RUS+BG+NB
RUS+AB+NB
CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5 Jumlah Rata-rata
ROS+BG+NB
NB
Data Set
ROS+AB+NB
Model
4 1 1 6 1,5 6 1 2 1 3,5 6 1 1 3 1 7 3 2 1 2 54 2,7
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
233
Tabel 4.196
ROS+AB+NB
ROS+BG+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB ROS+AB+NB ROS+BG+NB RUS+AB+NB RUS+BG+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
Perbandingan Berpasangan pada Nemenyi Post Hoc
0 -0,65 -0,325 0,075 -0,75 -1,1 -1,975
0,65 0 0,325 0,725 -0,1 -0,45 -1,325
0,325 -0,325 0 0,4 -0,425 -0,775 -1,65
-0,075 -0,725 -0,4 0 -0,825 -1,175 -2,05
0,75 0,1 0,425 0,825 0 -0,35 -1,225
1,1 0,45 0,775 1,175 0,35 0 -0,875
1,975 1,325 1,65 2,05 1,225 0,875 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
Tabel 4.197
NB 1 0,963987 0,999144 1 0,928962 0,67574 ROS+AB+NB 0,963987 1 0,999144 0,939257 0,999999 0,994704 ROS+BG+NB 0,999144 0,999144 1 0,997234 0,99613 0,917582 RUS+AB+NB 1 0,939257 0,997234 1 0,891494 0,602506 RUS+BG+NB 0,928962 0,999999 0,99613 0,891494 1 0,998694 FSMOTE+AB+NB 0,67574 0,994704 0,917582 0,602506 0,998694 1 FSMOTE+BG+NB 0,05883 0,453868 0,191943 0,0429 0,552637 0,860949
FSMOTE+BG+NB
FSMOTE+AB+NB
RUS+BG+NB
RUS+AB+NB
ROS+BG+NB
ROS+AB+NB
NB
P-value pada Nemenyi Post Hoc
0,05883 0,453868 0,191943 0,0429 0,552637 0,860949 1
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not.
234
Tabel 4.198
Not Not
Not Not Not
Not Not Not Not
Not Not Not Not Not
Not Not Not Not
Not Not Sig
Not Not
FSMOTE+BG+NB
RUS+BG+NB
Not
FSMOTE+AB+NB
RUS+AB+NB
Not Not Not Not Not Not
ROS+BG+NB
NB ROS+AB+NB ROS+BG+NB RUS+AB+NB RUS+BG+NB FSMOTE+AB+NB FSMOTE+BG+NB
ROS+AB+NB
NB
Perbedaan Signifikan pada Nemenyi Post Hoc
Not Not Not Not Not
Not Not Not Sig Not Not
Not
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.14 Perbandingan F-Measure Model Menggunakan Diagram Demsar
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa tidak ada model yang memiliki nilai FMeasure meningkat secara signifikan terhadap NB. Pada pengujian Friedman menggunakan SPSS terdapat perbedaan secara signifikan, perbedaan tersebut terjadi antara model FSMOTE+BG+NB dengan model RUS+AB+NB.
235
D. G-Mean Data yang diperoleh dari pengukuran G-Mean model ditunjukkan pada Tabel 4.199. Tabel 4.199 Hasil Pengukuran Nilai G-Mean Model
NB
ROS+AB+NB
ROS+BG+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
Model
0,525 0,433 0,544 0,566 0,594 0,61 0,335 0,514 0,524 0,459 0,537 0,432 0,543 0,614 0,568 0,572 0,472 0,604 0,523 0,452
0,543 0,43 0,568 0,579 0,576 0,609 0,336 0,509 0,502 0,615 0,554 0,436 0,542 0,614 0,631 0,585 0,681 0,582 0,603 0,57
0,542 0,43 0,553 0,564 0,611 0,609 0,335 0,585 0,53 0,453 0,568 0,441 0,544 0,611 0,58 0,583 0,519 0,568 0,545 0,455
0,506 0,434 0,534 0,509 0,623 0,63 0,657 0,63 0,655 0,475 0,528 0,436 0,54 0,584 0,595 0,602 0,583 0,641 0,54 0,456
0,583 0,438 0,537 0,629 0,635 0,632 0,516 0,614 0,606 0,484 0,553 0,444 0,545 0,566 0,638 0,61 0,465 0,692 0,567 0,481
0,575 0,452 0,583 0,444 0,594 0,545 0,486 0,633 0,655 0,487 0,581 0,466 0,588 0,618 0,611 0,607 0,427 0,653 0,644 0,538
0,594 0,461 0,598 0,471 0,635 0,544 0,487 0,642 0,663 0,484 0,58 0,477 0,618 0,635 0,638 0,607 0,427 0,652 0,65 0,545
Data Set
MDP Repository
PROMISE Repository
CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.200.
236
Tabel 4.200 Peringkat G-Mean Model pada Uji Friedman
CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5 Jumlah Rata-rata
6 5 5 3 5,5 3 6,5 6 6 6 6 7 5 3,5 7 7 4 5 7 7 110,5 5,525
4 5 6,5 6,5 3 4 2 4 7 4 4,5 4,5 5 6,5 7 5 7 5 1 7 4 3 5,5 4 6 4 3,5 5 3 6 5 6 1 3 6 7 3 5 1 6 85 100,5 4,25 5,025
7 2 4 3 7 6 5 1 3 1,5 2 1 1 2 3 4 2,5 4 5 3,5 7 5 5,5 3 7 3 6 7 5 1,5 4 1 2 5 4 1 6 4 5 4 91 62,5 4,55 3,125
FSMOTE+BG+NB
FSMOTE+AB+NB
RUS+BG+NB
RUS+AB+NB
ROS+BG+NB
NB
Data Set
ROS+AB+NB
Model
3 1 2 1 2 1 7 6 5,5 1,5 6 7 4 3 2 1 2,5 1 2 3,5 1 2 2 1 2 1 2 1 4 1,5 2,5 2,5 6,5 6,5 2 3 2 1 3 2 63 47,5 3,15 2,375
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
237
Tabel 4.201
ROS+AB+NB
ROS+BG+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB ROS+AB+NB ROS+BG+NB RUS+AB+NB RUS+BG+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
Perbandingan Berpasangan pada Nemenyi Post Hoc
0 -1,275 -0,5 -0,975 -2,4 -2,375 -3,15
1,275 0 0,775 0,3 -1,125 -1,1 -1,875
0,5 -0,775 0 -0,475 -1,9 -1,875 -2,65
0,975 -0,3 0,475 0 -1,425 -1,4 -2,175
2,4 1,125 1,9 1,425 0 0,025 -0,75
2,375 1,1 1,875 1,4 -0,025 0 -0,775
3,15 1,875 2,65 2,175 0,75 0,775 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
Tabel 4.202
RUS+AB+NB
RUS+BG+NB
0,502845 1 0,917582 0,999459 0,65167 0,67574 0,087462
0,990646 0,917582 1 0,992897 0,079418 0,087462 0,002021
0,787192 0,999459 0,992897 1 0,360936 0,383365 0,024497
0,008059 0,65167 0,079418 0,360936 1 1 0,928962
FSMOTE+BG+NB
ROS+BG+NB
1 0,502845 0,990646 0,787192 0,008059 0,009177 < 0.0001
FSMOTE+AB+NB
ROS+AB+NB
NB ROS+AB+NB ROS+BG+NB RUS+AB+NB RUS+BG+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
P-value pada Nemenyi Post Hoc
0,009177 < 0.0001 0,67574 0,087462 0,087462 0,002021 0,383365 0,024497 1 0,928962 1 0,917582 0,917582 1
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not.
238
Tabel 4.203
Not Not
Not Not Not
Sig Not Not Not
Not Not Not Not Not
Not Not Not Sig
Not Not Sig
Not Not
FSMOTE+BG+NB
RUS+BG+NB
Not
FSMOTE+AB+NB
RUS+AB+NB
Not Not Not Sig Sig Sig
ROS+BG+NB
NB ROS+AB+NB ROS+BG+NB RUS+AB+NB RUS+BG+NB FSMOTE+AB+NB FSMOTE+BG+NB
ROS+AB+NB
NB
Perbedaan Signifikan pada Nemenyi Post Hoc
Sig Not Not Not Not
Sig Not Sig Sig Not Not
Not
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.15 Perbandingan G-Mean Model Menggunakan Diagram Demsar
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa ada beberapa model yang memiliki nilai GMean
meningkat
secara
signifikan,
yaitu
FSMOTE+BG+NB,
RUS+BG+NB, dan FSMOTE+AB+NB. Sedangkan model yang lain memiliki peningkatan tidak signifikan.
E. AUC Data yang diperoleh dari pengukuran AUC model ditunjukkan pada Tabel 4.204.
239
Tabel 4.204 Hasil Pengukuran Nilai AUC Model
NB
ROS+AB+NB
ROS+BG+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
Model
0,6 0,572 0,607 0,624 0,649 0,666 0,512 0,6 0,618 0,584 0,605 0,571 0,607 0,654 0,633 0,642 0,587 0,64 0,617 0,58
0,609 0,57 0,581 0,625 0,638 0,664 0,514 0,591 0,605 0,624 0,615 0,572 0,575 0,654 0,658 0,65 0,692 0,625 0,656 0,603
0,607 0,57 0,612 0,62 0,661 0,664 0,51 0,64 0,623 0,58 0,621 0,575 0,605 0,65 0,638 0,647 0,615 0,619 0,627 0,58
0,551 0,571 0,599 0,577 0,666 0,673 0,657 0,634 0,688 0,589 0,574 0,572 0,604 0,624 0,648 0,653 0,637 0,646 0,617 0,581
0,622 0,573 0,599 0,646 0,671 0,667 0,553 0,619 0,656 0,592 0,587 0,575 0,604 0,566 0,668 0,654 0,59 0,692 0,627 0,592
0,6 0,578 0,617 0,554 0,649 0,635 0,597 0,641 0,688 0,595 0,592 0,584 0,62 0,648 0,648 0,651 0,574 0,653 0,678 0,615
0,616 0,582 0,618 0,568 0,671 0,634 0,599 0,649 0,694 0,592 0,591 0,588 0,637 0,662 0,677 0,65 0,574 0,652 0,681 0,617
Data Set
MDP Repository
PROMISE Repository
CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.205.
240
Tabel 4.205 Peringkat AUC Model pada Uji Friedman
7 5 5,5 5 3 1 1 4 2,5 5 7 5,5 5,5 6 4,5 2 2 4 6,5 5 87 4,35
1 5,5 3 2 5,5 2 1 7 1,5 5,5 2 6 4 3 5 2 4 2,5 3,5 2 6 4 3,5 2 5,5 2 7 5 2 4,5 1 3 4 6,5 1 2 4,5 2 4 2 69 70,5 3,45 3,525
FSMOTE+BG+NB
FSMOTE+AB+NB
RUS+BG+NB
5,5 3 4 4 6,5 6,5 4 7 3 3 2 4 5,5 7 4 3 4,5 4,5 6 5 7 6 7 3 6 7 5 6 1 7 3 2 1 7 5,5 3,5 3 7 4 2,5 2,5 4 7 3 6 7 4,5 6 5 1 3 5 6 7 6,5 3 4,5 6,5 3 6,5 101,5 87,5 93,5 5,075 4,375 4,675
RUS+AB+NB
CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5 Jumlah Rata-rata
ROS+BG+NB
NB
Data Set
ROS+AB+NB
Model
2 1 1 6 1,5 7 2 1 1 3,5 5 1 1 1 1 4,5 6,5 3 1 1 51 2,55
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
241
Tabel 4.206
ROS+AB+NB
ROS+BG+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB ROS+AB+NB ROS+BG+NB RUS+AB+NB RUS+BG+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
Perbandingan Berpasangan pada Nemenyi Post Hoc
0 -0,7 -0,4 -0,725 -1,625 -1,55 -2,525
0,7 0 0,3 -0,025 -0,925 -0,85 -1,825
0,4 -0,3 0 -0,325 -1,225 -1,15 -2,125
0,725 0,025 0,325 0 -0,9 -0,825 -1,8
1,625 0,925 1,225 0,9 0 0,075 -0,9
1,55 0,85 1,15 0,825 -0,075 0 -0,975
2,525 1,825 2,125 1,8 0,9 0,975 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
Tabel 4.207
ROS+AB+NB
ROS+BG+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB ROS+AB+NB ROS+BG+NB RUS+AB+NB RUS+BG+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
P-value pada Nemenyi Post Hoc
1 0,948498 0,997234 0,939257 0,207504 0,259158 0,004113
0,948498 1 0,999459 1 0,826081 0,876775 0,105506
0,997234 0,999459 1 0,999144 0,552637 0,627226 0,030806
0,939257 1 0,999144 1 0,844041 0,891494 0,115564
0,207504 0,826081 0,552637 0,844041 1 1 0,844041
0,259158 0,876775 0,627226 0,891494 1 1 0,787192
0,004113 0,105506 0,030806 0,115564 0,844041 0,787192 1
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not.
242
Tabel 4.208
Not Not
Not Not Not
Not Not Not Not
Not Not Not Not Not
Not Not Not Sig
Not Not Not
Not Not
FSMOTE+BG+NB
RUS+BG+NB
Not
FSMOTE+AB+NB
RUS+AB+NB
Not Not Not Not Not Sig
ROS+BG+NB
NB ROS+AB+NB ROS+BG+NB RUS+AB+NB RUS+BG+NB FSMOTE+AB+NB FSMOTE+BG+NB
ROS+AB+NB
NB
Perbedaan Signifikan pada Nemenyi Post Hoc
Not Not Not Not Not
Sig Not Sig Not Not Not
Not
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.16 Perbandingan AUC Model Menggunakan Diagram Demsar
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa ada model yang AUC-nya meningkat secara signifikan, yaitu FSMOTE+BG+NB. Sedangkan model yang lain memiliki peningkatan tidak signifikan.
Berdasarkan uji Friedman, Nemenyi post hoc, dan diagram Demsar menunjukkan bahwa integrasi FSMOTE dan Bagging (FSMOTE+BG+NB) merupakan model terbaik. Hal ini karena model FSMOTE+BG+NB memiliki
243
peningkatan secara signifikan paling banyak, yaitu pada sensitivitas, G-Mean dan AUC, serta penurunan akurasinya tidak signifikan.
4.2.5
Pendekatan Terbaik Berdasarkan analisa pada subbab sebelumnya, pendekatan level algoritma
terbaik adalah Bagging (BG+NB), sedangkan pendekatan level data terbaik adalah FSMOTE (FSMOTE+NB). Untuk menentukan pendekatan terbaik, pertama dilakukan uji Friedman, Nemenyi post hoc, dan disajikan dalam diagram Demsar yang dimodifikasi. Karena nilai CD (Critical Difference) pada Nemenyi post hoc dipengaruhi oleh nilai studentized range statistic (3,314), jumlah model (K=3), dan jumlah dataset (D=20), maka nilainya dihitung sebagai berikut:
𝐾(𝐾 + 1) 3(3 + 1) 𝐶𝐷 = 𝑞∝,∞,𝐾 √ = 3,314√ 12𝐷 20 ∙ 10
12 𝐶𝐷 = 3,314√ = 0,74103292774343 240
Untuk mengetahui signifikansi perbedaan di antara ketiga model, dilakukan uji Friedman menggunakan aplikasi SPSS. Nilai p-value dari uji Friedman ditunjukkan pada Tabel 4.209.
Tabel 4.209 Rekap P-Value pada Uji Friedman untuk Model NB, BG+NB, dan FSMOTE+NB Pengukuran Akurasi
P-Value
Sensitivitas
0,009279
F-Measure
0,123719
G-Mean
0,001392
AUC
0,044227
0,223130
Hasil (α = 0,05) Not Sig., Ada perbedaan nilai di antara model Sig., Ada perbedaan nilai di antara model Not Sig., Ada perbedaan nilai di antara model Sig., Ada perbedaan nilai di antara model Sig., Ada perbedaan nilai di antara model
244
Hasil pada Tabel 4.209 menunjukkan bahwa nilai sensitivitas, G-Mean, dan AUC memiliki perbedaan secara signifikan. Berdasarkan signifikansi dari uji Friedman tersebut, maka hanya pengukuran yang memiliki perbedaan secara signifikan saja yang dibuatkan diagram Demsar yang telah dimodifikasi. Berikut ini adalah tahapan pembuatan diagram Demsar sesuai hasil pengukuran yang diuji: A. Sensitivitas Data yang diperoleh dari pengukuran sensitivitas model ditunjukkan pada Tabel 4.210.
Tabel 4.210 Hasil Pengukuran Nilai Sensitivitas Model NB, BG+NB, dan FSMOTE+NB Data Set
MDP Repository
PROMISE Repository
CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5
NB 30,95% 19,85% 33,67% 36,11% 38,64% 40,00% 12,50% 90,77% 28,98% 22,27% 32,61% 19,73% 33,67% 42,86% 35,29% 35,00% 23,81% 85,14% 28,98% 21,62%
Model BG+NB FSMOTE+NB 33,33% 42,86% 20,60% 21,46% 34,35% 45,58% 36,11% 22,22% 40,91% 38,64% 41,82% 30,91% 43,75% 25,00% 91,54% 74,62% 35,23% 47,73% 23,58% 25,33% 30,44% 47,83% 20,10% 23,70% 33,67% 47,28% 42,86% 45,24% 35,29% 39,22% 36,67% 41,67% 33,33% 19,05% 79,05% 65,54% 31,82% 46,59% 23,14% 31,66%
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.211.
245
246
Tabel 4.211 Peringkat Sensitivitas Model NB, BG+NB, dan FSMOTE+NB pada Uji Friedman Data Set
MDP Repository
PROMISE Repository
CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5
Jumlah Rata-rata
NB 3 3 3 1,5 2,5 2 3 2 3 3 2 3 2,5 2,5 2,5 3 2 1 3 3 50,5 2,525
Model BG+NB FSMOTE+NB 2 1 2 1 2 1 1,5 3 1 2,5 1 3 1 2 1 3 2 1 2 1 3 1 2 1 2,5 1 2,5 1 2,5 1 2 1 1 3 2 3 2 1 2 1 37 32,5 1,85 1,625
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan. Tabel 4.212 Perbandingan Berpasangan pada Nemenyi Post Hoc NB NB BG+NB FSMOTE+NB
0 -0,675 -0,9
BG+NB FSMOTE+NB 0,675 0,9 0 0,225 -0,225 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
247
Tabel 4.213 P-value pada Nemenyi Post Hoc NB
NB BG+NB FSMOTE+NB
BG+NB FSMOTE+NB 1 0,082975355 0,012310463 0,082975355 1 0,756680997 0,012310463 0,756680997 1
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not.
Tabel 4.214 Perbedaan Signifikan pada Nemenyi Post Hoc NB NB BG+NB FSMOTE+NB
Not Sig
BG+NB FSMOTE+NB Not Sig Not Not
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.17 Perbandingan Sensitivitas Model NB, BG+NB, dan FSMOTE+NB Menggunakan Diagram Demsar
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa sensitifitas model FSMOTE+NB meningkat secara signifikan, sedangkan sensitifitas model BG+NB tidak meningkat secara signifikan. Sehingga disimpulkan bahwa model FSMOTE+NB lebih baik daripada BG+NB.
248
B. G-Mean Data yang diperoleh dari pengukuran G-Mean model ditunjukkan pada Tabel 4.215.
Tabel 4.215 Hasil Pengukuran Nilai G-Mean Model NB, BG+NB, dan FSMOTE+NB Data Set
MDP Repository
PROMISE Repository
CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5
Model NB BG+NB FSMOTE+NB 0,525 0,545 0,575 0,433 0,44 0,449 0,544 0,547 0,596 0,566 0,564 0,444 0,594 0,603 0,594 0,61 0,621 0,545 0,335 0,58 0,486 0,514 0,543 0,633 0,524 0,573 0,655 0,459 0,47 0,487 0,537 0,517 0,581 0,432 0,436 0,47 0,543 0,542 0,615 0,614 0,614 0,618 0,568 0,565 0,599 0,572 0,581 0,606 0,472 0,552 0,428 0,604 0,699 0,653 0,523 0,546 0,644 0,452 0,467 0,538
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.216.
249
Tabel 4.216 Peringkat G-Mean Model NB, BG+NB, dan FSMOTE+NB pada Uji Friedman Data Set
MDP Repository
PROMISE Repository
NB
CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5
3 3 3 1 2,5 2 3 3 3 3 2 3 2 2,5 2 3 2 3 3 3 52 2,6
Jumlah Rata-rata
Model BG+NB FSMOTE+NB 2 1 2 1 2 1 2 3 1 2,5 1 3 1 2 2 1 2 1 2 1 3 1 2 1 3 1 2,5 1 3 1 2 1 1 3 1 2 2 1 2 1 38,5 29,5 1,925 1,475
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
Tabel 4.217 Perbandingan Berpasangan pada Nemenyi Post Hoc NB NB BG+NB FSMOTE+NB
0 -0,675 -1,125
BG+NB FSMOTE+NB 0,675 1,125 0 0,45 -0,45 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
250
Tabel 4.218 P-value pada Nemenyi Post Hoc NB
NB BG+NB FSMOTE+NB
BG+NB FSMOTE+NB 1 0,082975355 0,001090048 0,082975355 1 0,328971259 0,001090048 0,328971259 1
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not.
Tabel 4.219 Perbedaan Signifikan pada Nemenyi Post Hoc NB NB BG+NB FSMOTE+NB
Not Sig
BG+NB FSMOTE+NB Not Sig Not Not
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.18 Perbandingan G-Mean Model NB, BG+NB, dan FSMOTE+NB Menggunakan Diagram Demsar
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa model FSMOTE+NB meningkat secara signifikan, sedangkan BG+NB meningkat tidak signifikan. Sehingga disimpulkan bahwa model FSMOTE+NB lebih baik dari BG+NB.
C. AUC Data yang diperoleh dari pengukuran AUC model ditunjukkan pada Tabel 4.220.
251
Tabel 4.220 Hasil Pengukuran Nilai AUC Model NB, BG+NB, dan FSMOTE+NB Data Set
MDP Repository
PROMISE Repository
CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5
NB 0,6 0,572 0,607 0,624 0,649 0,666 0,512 0,6 0,618 0,584 0,605 0,571 0,607 0,654 0,633 0,642 0,587 0,64 0,617 0,58
Model BG+NB FSMOTE+NB 0,612 0,6 0,574 0,577 0,608 0,618 0,62 0,554 0,648 0,649 0,671 0,635 0,603 0,597 0,619 0,641 0,641 0,688 0,587 0,595 0,592 0,592 0,572 0,585 0,604 0,637 0,654 0,648 0,628 0,653 0,644 0,649 0,623 0,577 0,705 0,653 0,628 0,678 0,586 0,615
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.221.
252
Tabel 4.221 Peringkat AUC Model NB, BG+NB, dan FSMOTE+NB pada Uji Friedman Data Set
MDP Repository
PROMISE Repository
CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 MC2 PC1 PC2 PC3 PC4 PC5
Jumlah Rata-rata
NB 2,5 3 3 1 1,5 2 3 3 3 3 1 3 2 1,5 2 3 2 3 3 3 48,5 2,425
Model BG+NB FSMOTE+NB 1 2,5 2 1 2 1 2 3 3 1,5 1 3 1 2 2 1 2 1 2 1 2,5 2,5 2 1 3 1 1,5 3 3 1 2 1 1 3 1 2 2 1 2 1 38 33,5 1,9 1,675
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
Tabel 4.222 Perbandingan Berpasangan pada Nemenyi Post Hoc NB
NB BG+NB FSMOTE+NB
BG+NB FSMOTE+NB 0 0,525 0,75 -0,525 0 0,225 -0,75 -0,225 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
253
Tabel 4.223 P-value pada Nemenyi Post Hoc NB
NB BG+NB FSMOTE+NB
BG+NB FSMOTE+NB 1 0,220676558 0,046559778 0,220676558 1 0,756680997 0,046559778 0,756680997 1
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not.
Tabel 4.224 Perbedaan Signifikan pada Nemenyi Post Hoc NB NB BG+NB FSMOTE+NB
Not Sig
BG+NB FSMOTE+NB Not Sig Not Not
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.19 Perbandingan AUC Model NB, BG+NB, dan FSMOTE+NB Menggunakan Diagram
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa model FSMOTE+NB meningkat secara signifikan, sedangkan BG+NB meningkat tidak signifikan. Sehingga disimpulkan bahwa metode FSMOTE+NB lebih baik dari BG+NB.
254
Berdasarkan uji Friedman, Nemenyi post hoc, dan diagram Demsar menunjukkan bahwa model FSMOTE+BG lebih baik daripada model BG+NB, karena kemampuan FSMOTE+NB dalam memprediksi kelas minoritas lebih baik dari BG+NB walaupun akurasi tidak memiliki perbedaan secara signifikan.
4.2.6
Model Terbaik Untuk menentukan model terbaik, pertama dilakukan uji Friedman,
Nemenyi post hoc, dan disajikan dalam diagram Demsar yang dimodifikasi. Karena nilai CD (Critical Difference) pada Nemenyi post hoc dipengaruhi oleh nilai studentized range statistic (4,622), jumlah model (K=12), dan jumlah dataset (D=20), maka nilainya dihitung sebagai berikut:
𝐾(𝐾 + 1) 12(12 + 1) 𝐶𝐷 = 𝑞∝,∞,𝐾 √ = 4,622√ 12𝐷 12 ∙ 20
156 𝐶𝐷 = 4,622√ = 3,72637553126359 240
Untuk mengetahui signifikansi perbedaan di antara ketiga model, dilakukan uji Friedman menggunakan aplikasi SPSS. Nilai p-value dari uji Friedman ditunjukkan pada Tabel 4.225.
Tabel 4.225 Rekap P-Value pada Uji Friedman untuk Semua Model Pengukuran Akurasi
P-Value
Sensitivitas
0,000001
F-Measure
0,038501
G-Mean
0,000000
AUC
0,006217
0,000070
Hasil (α = 0,05) Sig., Ada perbedaan nilai di antara model Sig., Ada perbedaan nilai di antara model Sig., Ada perbedaan nilai di antara model Sig., Ada perbedaan nilai di antara model Sig., Ada perbedaan nilai di antara model
255
Hasil pada Tabel 4.225 menunjukkan bahwa nilai akurasi, sensitivitas, FMeasure, G-Mean, dan AUC memiliki perbedaan secara signifikan. Berdasarkan signifikansi dari uji Friedman tersebut, maka hanya pengukuran yang memiliki perbedaan secara signifikan saja yang dibuatkan diagram Demsar yang telah dimodifikasi. Berikut ini adalah tahapan pembuatan diagram Demsar sesuai hasil pengukuran yang diuji: A. Akurasi Data yang diperoleh dari pengukuran akurasi model ditunjukkan pada Tabel 4.226.
Tabel 4.226 Hasil Pengukuran Akurasi Model
NB
AB+NB
BG+NB
ROS+NB
ROS+AB+NB
ROS+BG+NB
RUS+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
Model
81,65% 78,87% 74,10% 78,87% 72,58% 88,81% 88,09% 36,75% 85,59% 75,03% 82,61% 78,81% 74,01% 82,10% 72,90% 89,66% 92,51% 47,34% 85,43% 74,73%
81,65% 78,87% 74,10% 78,87% 73,39% 90,87% 88,37% 84,81% 85,98% 75,03% 83,30% 78,81% 74,01% 84,26% 70,97% 89,66% 92,51% 84,74% 85,04% 74,73%
81,96% 78,76% 73,84% 78,35% 71,77% 88,22% 76,18% 39,51% 85,04% 74,85% 81,92% 78,86% 73,67% 82,10% 72,26% 88,58% 90,38% 63,66% 85,12% 74,91%
81,65% 78,81% 74,10% 78,87% 71,77% 88,81% 88,50% 36,75% 85,91% 75,03% 82,84% 78,86% 73,67% 82,41% 72,90% 89,34% 92,44% 44,64% 85,43% 74,85%
81,35% 78,81% 64,11% 77,32% 71,77% 88,51% 88,64% 36,47% 84,96% 67,30% 82,61% 78,86% 66,87% 82,10% 72,26% 89,55% 80,84% 44,57% 84,25% 69,19%
81,04% 78,73% 74,10% 78,35% 73,39% 88,51% 87,81% 44,44% 85,91% 74,56% 81,92% 78,95% 73,58% 81,48% 72,90% 89,01% 93,39% 42,51% 84,96% 74,50%
79,82% 78,80% 73,41% 77,84% 73,39% 87,19% 68,28% 59,54% 84,41% 74,97% 76,66% 78,76% 73,84% 67,90% 74,19% 87,27% 68,87% 57,56% 82,99% 74,62%
71,25% 78,80% 73,41% 74,74% 73,39% 87,19% 68,84% 68,85% 84,09% 74,97% 75,29% 78,76% 73,84% 78,70% 73,55% 87,27% 88,55% 57,98% 83,31% 74,62%
78,29% 78,74% 73,06% 73,71% 73,39% 84,54% 36,43% 56,32% 83,94% 74,91% 74,14% 78,72% 73,24% 56,17% 73,55% 86,07% 23,86% 67,35% 82,21% 75,03%
72,78% 78,80% 69,79% 76,29% 72,58% 90,72% 92,94% 56,22% 84,02% 75,27% 68,19% 78,74% 71,77% 79,32% 74,19% 85,09% 95,08% 65,08% 83,15% 75,15%
72,78% 78,81% 71,69% 76,29% 72,58% 90,72% 92,94% 56,22% 84,02% 75,27% 68,19% 78,86% 71,86% 79,32% 72,26% 85,42% 94,64% 65,08% 83,15% 75,15%
73,70% 78,87% 69,54% 76,80% 73,39% 90,57% 93,21% 57,65% 84,25% 74,91% 67,96% 78,72% 71,34% 79,94% 75,48% 85,31% 94,49% 66,57% 82,84% 75,03%
Data Set
CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.227.
256
257
Tabel 4.227 Peringkat Akurasi Model pada Uji Friedman
CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5 Jumlah Rata-rata
3 3 2 2 2,5 2,5 2 2 8 3,5 5,5 1 7 6 10,5 1 4 1 4 4 3,5 1 6,5 6,5 1,5 1,5 4 1 7 12 1,5 1,5 5,5 5,5 9 1 1,5 4 7,5 7,5 96 67,5 4,8 3,375
1 3 5 6 7 12 8 10 5 5 12 8 8 11 5 2,5 12 2,5 6,5 6,5 8 4,5 2 7 4,5 6 11 12 11 11 11 3,5 3,5 3,5 3,5 9 5,5 7,5 7,5 10,5 10,5 12 9 5 4 8 11 10 12 9 10,5 12 8 3 2 5 5 2,5 6 2,5 7 9 12 10 4 12 11 6,5 6,5 8,5 5,5 2 3,5 5,5 7 8 9 3,5 3,5 3,5 1 8,5 8,5 11,5 5,5 5,5 12 7 3,5 3,5 8 4 2 4 6 11 10 12 10 7 10 7 2,5 4,5 4,5 6 4 3 5 7,5 7,5 9 8 7 10 4 11 9 12 6 10 11 12 8 7 2 3 1,5 6 5 10 7 12 5 6 12 11 9,5 9,5 3,5 130 99,5 156,5 129 147,5 153,5 175,5 6,5 4,975 7,825 6,45 7,375 7,675 8,775
10,5 8 10 9,5 8 2,5 2,5 6,5 10,5 1,5 10,5 10 10 8,5 2,5 12 1 4,5 8,5 1,5 138,5 6,925
FSMOTE+BG+NB
FSMOTE+AB+NB
FSMOTE+NB
RUS+BG+NB
RUS+AB+NB
RUS+NB
ROS+BG+NB
ROS+NB
BG+NB
AB+NB
NB
Data Set
ROS+AB+NB
Model
10,5 9 5 2 9 11 9,5 8 8 3,5 2,5 4 2,5 1 6,5 4 10,5 8 1,5 8,5 10,5 12 3,5 11,5 9 11 8,5 7 10 1 10 11 2 3 4,5 3 8,5 11 1,5 3,5 133,5 133 6,675 6,65
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
258
Tabel 4.228
AB+NB
BG+NB
ROS+NB
ROS+AB+NB
ROS+BG+NB
RUS+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
Perbandingan Berpasangan pada Nemenyi Post Hoc
0 -1,43 1,7 0,175 3,025 1,65 2,575 2,875 3,975 2,125 1,875 1,85
1,425 0 3,125 1,6 4,45 3,075 4 4,3 5,4 3,55 3,3 3,275
-1,7 -3,13 0 -1,53 1,325 -0,05 0,875 1,175 2,275 0,425 0,175 0,15
-0,18 -1,6 1,525 0 2,85 1,475 2,4 2,7 3,8 1,95 1,7 1,675
-3,03 -4,45 -1,33 -2,85 0 -1,38 -0,45 -0,15 0,95 -0,9 -1,15 -1,18
-1,65 -3,08 0,05 -1,48 1,375 0 0,925 1,225 2,325 0,475 0,225 0,2
-2,58 -4 -0,88 -2,4 0,45 -0,93 0 0,3 1,4 -0,45 -0,7 -0,73
-2,88 -4,3 -1,18 -2,7 0,15 -1,23 -0,3 0 1,1 -0,75 -1 -1,03
-3,98 -5,4 -2,28 -3,8 -0,95 -2,33 -1,4 -1,1 0 -1,85 -2,1 -2,13
-2,1 -3,6 -0,4 -2 0,9 -0,5 0,45 0,75 1,85 0 -0,3 -0,3
-1,88 -3,3 -0,18 -1,7 1,15 -0,23 0,7 1 2,1 0,25 0 -0,02
-1,85 -3,28 -0,15 -1,68 1,175 -0,2 0,725 1,025 2,125 0,275 0,025 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
Tabel 4.229
AB+NB
BG+NB
ROS+NB
ROS+AB+NB
ROS+BG+NB
RUS+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
P-value pada Nemenyi Post Hoc
1 0,9848 0,9434 1 0,2502 0,9541 0,5067 0,3262 0,0247 0,7818 0,8926 0,9012
0,9848 1 0,2062 0,9632 0,0054 0,2275 0,0229 0,0089 0,0001 0,0791 0,1427 0,1508
0,9434 0,2062 1 0,9743 0,9916 1 0,9998 0,997 0,6969 1 1 1
1 0,9632 0,9743 1 0,3399 0,9801 0,6192 0,428 0,0408 0,864 0,9434 0,949
0,2502 0,0054 0,9916 0,3399 1 0,9886 1 1 0,9996 0,9998 0,9976 0,997
0,9541 0,2275 1 0,9801 0,9886 1 0,9997 0,9957 0,6664 1 1 1
0,5067 0,0229 0,9998 0,6192 1 0,9997 1 1 0,9868 1 1 1
0,3262 0,0089 0,997 0,428 1 0,9957 1 1 0,9984 1 0,9993 0,9991
0,0247 0,0001 0,6969 0,0408 0,9996 0,6664 0,9868 0,9984 1 0,9012 0,7948 0,7818
0,7818 0,0791 1 0,864 0,9998 1 1 1 0,9012 1 1 1
0,8926 0,1427 1 0,9434 0,9976 1 1 0,9993 0,7948 1 1 1
0,9012 0,1508 1 0,949 0,997 1 1 0,9991 0,7818 1 1 1
259
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not.
Tabel 4.230
Not Not Not Not Not Not
Not Not Not Not Not
Sig Sig Not Sig Not Not Not Not
Not Not Not Not Not Not Not Not Not
Not Not Not Not
Not Not Not
Not Not
FSMOTE+BG+NB
Not Not Not Not Not Not Not
Not Sig Not Not Not Not Not
FSMOTE+AB+NB
Not Not Not Not Sig Not Not Not
Not Sig Not Not Not Not
FSMOTE+NB
Not Not Not Not Not Not Not Not Not
Not Not Not Not Not
RUS+BG+NB
Not Not Sig Not Sig Sig Sig Not Not Not
Not Sig Not Not
RUS+AB+NB
Not Not Not
RUS+NB
Not Not
ROS+BG+NB
Not
ROS+AB+NB
ROS+NB
Not Not Not Not Not Not Not Sig Not Not Not
BG+NB
NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
AB+NB
NB
Perbedaan Signifikan pada Nemenyi Post Hoc
Not Not Not Not Not Not Not Not Not Not
Not Not Not Not Not Not Not Not Not Not Not
Not
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.20 Perbandingan Akurasi Model Menggunakan Diagram Demsar
260
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa akurasi model cenderung menurun, tetapi hanya model RUS+BG+NB saja yang menurun secara signifikan. Hanya model AB+NB saja yang meningkat, tetapi tidak signifikan.
B. Sensitivitas Data yang diperoleh dari pengukuran sensitivitas model ditunjukkan pada Tabel 4.231.
Tabel 4.231 Hasil Pengukuran Nilai Sensitivitas Model
NB
AB+NB
BG+NB
ROS+NB
ROS+AB+NB
ROS+BG+NB
RUS+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
Model
30,95% 19,85% 33,67% 36,11% 38,64% 40,00% 12,50% 90,77% 28,98% 22,27% 32,61% 19,73% 33,67% 42,86% 35,29% 35,00% 23,81% 85,14% 28,98% 21,62%
30,95% 19,85% 33,67% 36,11% 40,91% 34,55% 12,50% 9,23% 48,30% 22,27% 32,61% 19,73% 33,67% 40,48% 35,29% 35,00% 23,81% 14,19% 50,00% 21,62%
33,33% 20,60% 34,35% 36,11% 40,91% 41,82% 43,75% 91,54% 35,23% 23,58% 30,44% 20,10% 33,67% 42,86% 35,29% 36,67% 33,33% 79,05% 31,82% 23,14%
33,33% 19,60% 34,01% 36,11% 36,36% 40,00% 12,50% 89,23% 28,98% 22,05% 32,61% 20,10% 34,01% 42,86% 35,29% 36,67% 23,81% 85,14% 30,11% 22,05%
33,33% 19,60% 45,92% 38,89% 36,36% 40,00% 12,50% 89,23% 26,71% 51,75% 34,78% 20,10% 38,44% 42,86% 47,06% 36,67% 57,14% 85,14% 39,77% 40,83%
33,33% 19,60% 35,03% 36,11% 40,91% 40,00% 12,50% 90,00% 29,55% 21,83% 36,96% 20,66% 34,01% 42,86% 37,26% 36,67% 28,57% 86,49% 31,82% 22,05%
35,71% 19,98% 32,65% 36,11% 43,18% 43,64% 62,50% 70,77% 31,82% 24,02% 32,61% 20,16% 33,33% 52,38% 39,22% 40,00% 47,62% 69,60% 28,98% 22,05%
33,33% 19,98% 32,65% 30,56% 43,18% 43,64% 62,50% 56,15% 47,73% 24,02% 34,78% 20,16% 33,33% 40,48% 39,22% 40,00% 38,10% 72,97% 31,82% 22,05%
40,48% 20,41% 33,33% 50,00% 45,46% 45,46% 75,00% 69,23% 40,34% 25,11% 39,13% 21,03% 34,35% 57,14% 47,06% 41,67% 95,24% 71,62% 35,80% 24,67%
42,86% 21,46% 45,58% 22,22% 38,64% 30,91% 25,00% 74,62% 47,73% 25,33% 47,83% 23,70% 47,28% 45,24% 39,22% 41,67% 19,05% 65,54% 46,59% 31,66%
42,86% 21,77% 41,50% 22,22% 38,64% 30,91% 25,00% 74,62% 47,73% 25,33% 47,83% 23,26% 42,18% 45,24% 43,14% 41,67% 19,05% 65,54% 46,59% 31,66%
45,24% 22,71% 46,26% 25,00% 45,46% 30,91% 25,00% 74,62% 48,86% 25,11% 47,83% 24,50% 48,30% 47,62% 45,10% 41,67% 19,05% 63,51% 47,73% 32,75%
Data Set
CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.232.
261
Tabel 4.232 Peringkat Sensitivitas Model pada Uji Friedman
CM1 11,5 11,5 8 8 8 8 5 JM1 8,5 8,5 4 11 11 11 6,5 KC1 8,5 8,5 6 7 2 5 11,5 KC3 5,5 5,5 5,5 5,5 2 5,5 5,5 MDP MC2 9 6 6 11,5 11,5 6 3,5 Repository PC1 6,5 9 4 6,5 6,5 6,5 2,5 PC2 10 10 4 10 10 10 2,5 PC3 2 12 1 4,5 4,5 3 9 PC4 10,5 2 7 10,5 12 9 8 PC5 9,5 9,5 8 11 1 12 6,5 CM1 9,5 9,5 12 9,5 6,5 5 9,5 JM1 11,5 11,5 9 9 9 5 6,5 KC1 9 9 9 6,5 4 6,5 11,5 KC3 8 11,5 8 8 8 8 2 PROMISE MC2 10,5 10,5 10,5 10,5 1,5 8 6 Repository PC1 11,5 11,5 8,5 8,5 8,5 8,5 5,5 PC2 8 8 5 8 2 6 3 PC3 3 12 5 3 3 1 8 PC4 11,5 1 8 10 5 8 11,5 PC5 11,5 11,5 6 8,5 1 8,5 8,5 Jumlah 175,5 178,5 134,5 167 117 140,5 132,5 Rata-rata 8,775 8,925 6,725 8,35 5,85 7,025 6,625
FSMOTE+BG+NB
FSMOTE+AB+NB
FSMOTE+NB
RUS+BG+NB
RUS+AB+NB
RUS+NB
ROS+BG+NB
ROS+NB
BG+NB
AB+NB
NB
Data Set
ROS+AB+NB
Model
8 4 2,5 2,5 1 6,5 5 3 2 1 11,5 10 3 4 1 9 1 11,5 11,5 10 3,5 1,5 9 9 1,5 2,5 1 11 11 11 2,5 1 6 6 6 11 10 7 7 7 4 6 4 4 1 6,5 4,5 2,5 2,5 4,5 6,5 4 2 2 2 6,5 4 2 3 1 11,5 5 2 3 1 11,5 1 4,5 4,5 3 6 1,5 6 4 3 5,5 2,5 2,5 2,5 2,5 4 1 11 11 11 6 7 9,5 9,5 11 8 6 3,5 3,5 2 8,5 5 3,5 3,5 2 139 81 106 106 82,5 6,95 4,05 5,3 5,3 4,125
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
262
Tabel 4.233
AB+NB
BG+NB
ROS+NB
ROS+AB+NB
ROS+BG+NB
RUS+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
Perbandingan Berpasangan pada Nemenyi Post Hoc
0 0,15 -2,05 -0,43 -2,93 -1,75 -2,15 -1,83 -4,73 -3,48 -3,48 -4,65
-0,15 0 -2,2 -0,58 -3,08 -1,9 -2,3 -1,98 -4,88 -3,63 -3,63 -4,8
2,05 2,2 0 1,625 -0,88 0,3 -0,1 0,225 -2,68 -1,43 -1,43 -2,6
0,425 0,575 -1,63 0 -2,5 -1,33 -1,73 -1,4 -4,3 -3,05 -3,05 -4,23
2,925 3,075 0,875 2,5 0 1,175 0,775 1,1 -1,8 -0,55 -0,55 -1,73
1,75 1,9 -0,3 1,325 -1,18 0 -0,4 -0,08 -2,98 -1,73 -1,73 -2,9
2,15 2,3 0,1 1,725 -0,78 0,4 0 0,325 -2,58 -1,33 -1,33 -2,5
1,825 1,975 -0,23 1,4 -1,1 0,075 -0,33 0 -2,9 -1,65 -1,65 -2,83
4,725 4,875 2,675 4,3 1,8 2,975 2,575 2,9 0 1,25 1,25 0,075
3,48 3,63 1,43 3,05 0,55 1,73 1,33 1,65 -1,3 0 0 -1,2
3,475 3,625 1,425 3,05 0,55 1,725 1,325 1,65 -1,25 0 0 -1,18
4,65 4,8 2,6 4,225 1,725 2,9 2,5 2,825 -0,08 1,175 1,175 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
Tabel 4.234
AB+NB
BG+NB
ROS+NB
ROS+AB+NB
ROS+BG+NB
RUS+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
P-value pada Nemenyi Post Hoc
1 1 0,8196 1 0,2995 0,9311 0,7685 0,9094 0,002 0,0952 0,0952 0,0027
1 1 0,7408 1 0,2275 0,8835 0,6817 0,8536 0,0012 0,0653 0,0653 0,0015
0,8196 0,7408 1 0,9588 0,9998 1 1 1 0,4435 0,9848 0,9848 0,4907
1 1 0,9588 1 0,555 0,9916 0,9375 0,9868 0,0089 0,2387 0,2387 0,0114
0,2995 0,2275 0,9998 0,555 1 0,997 0,9999 0,9984 0,917 1 1 0,9375
0,9311 0,8835 1 0,9916 0,997 1 1 1 0,2742 0,9375 0,9375 0,3127
0,7685 0,6817 1 0,9375 0,9999 1 1 1 0,5067 0,9916 0,9916 0,555
0,9094 0,8536 1 0,9868 0,9984 1 1 1 0,3127 0,9541 0,9541 0,354
0,002 0,0012 0,4435 0,0089 0,917 0,2742 0,5067 0,3127 1 0,9949 0,9949 1
0,0952 0,0653 0,9848 0,2387 1 0,9375 0,9916 0,9541 0,9949 1 1 0,997
0,0952 0,0653 0,9848 0,2387 1 0,9375 0,9916 0,9541 0,9949 1 1 0,997
0,0027 0,0015 0,4907 0,0114 0,9375 0,3127 0,555 0,354 1 0,997 0,997 1
263
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not.
Tabel 4.235
Not Not Not Not Not Not
Not Not Not Not Not
FSMOTE+BG+NB
Not Not Not Not Not Not Not
FSMOTE+AB+NB
Not Not Not Not Sig Not Not Sig
Not Not Not Not Not Not
FSMOTE+NB
Not Not Not Not Not Not Not Not Not
Not Not Not Not Not
RUS+BG+NB
Not Not Not Not Not Not Sig Not Not Sig
Not Not Not Not
RUS+AB+NB
Not Not Not
RUS+NB
Not Not
ROS+BG+NB
Not
ROS+AB+NB
ROS+NB
Not Not Not Not Not Not Not Sig Not Not Sig
BG+NB
NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
AB+NB
NB
Perbedaan Signifikan pada Nemenyi Post Hoc
Not Not Not Not Not Not Not
Sig Sig Not Sig Not Not Not Not
Not Not Not Not Not Not Not Not Not
Not Not Not Not Not Not Not Not Not
Sig Sig Not Sig Not Not Not Not Not Not Not
Not Not Not Not
Not Not Not
Not
Not
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.21 Perbandingan Sensitivitas Model Menggunakan Diagram Demsar
264
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa ada beberapa model yang sensitivitasnya meningkat
secara
signifikan,
yaitu
FSMOTE+BG+NB,
dan
RUS+BG+NB. Sedangkan model yang lain memiliki peningkatan tidak signifikan.
C. F-Measure Data yang diperoleh dari pengukuran F-Measure model ditunjukkan pada Tabel 4.236.
Tabel 4.236 Hasil Pengukuran Nilai F-Measure Model
NB
AB+NB
BG+NB
ROS+NB
ROS+AB+NB
ROS+BG+NB
RUS+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
Model
0,302 0,282 0,397 0,388 0,5 0,367 0,044 0,262 0,358 0,325 0,283 0,28 0,396 0,383 0,462 0,307 0,089 0,254 0,355 0,316
0,302 0,282 0,397 0,388 0,522 0,38 0,045 0,13 0,489 0,325 0,291 0,28 0,396 0,4 0,444 0,307 0,089 0,163 0,481 0,316
0,322 0,288 0,399 0,382 0,507 0,365 0,075 0,272 0,395 0,336 0,262 0,284 0,393 0,383 0,456 0,295 0,097 0,314 0,372 0,333
0,318 0,279 0,399 0,388 0,478 0,367 0,046 0,258 0,363 0,323 0,286 0,284 0,395 0,387 0,462 0,31 0,088 0,244 0,364 0,322
0,315 0,279 0,393 0,389 0,478 0,361 0,047 0,257 0,33 0,461 0,296 0,284 0,37 0,383 0,527 0,314 0,084 0,244 0,412 0,417
0,311 0,278 0,406 0,382 0,522 0,361 0,043 0,286 0,367 0,317 0,301 0,291 0,394 0,375 0,475 0,303 0,118 0,24 0,37 0,319
0,313 0,282 0,383 0,377 0,535 0,356 0,08 0,302 0,361 0,342 0,227 0,284 0,392 0,297 0,5 0,291 0,045 0,256 0,321 0,32
0,23 0,282 0,383 0,31 0,535 0,356 0,082 0,308 0,454 0,342 0,229 0,284 0,392 0,33 0,494 0,291 0,093 0,267 0,346 0,32
0,324 0,286 0,385 0,414 0,548 0,323 0,05 0,281 0,41 0,351 0,242 0,292 0,394 0,253 0,539 0,281 0,037 0,315 0,358 0,348
0,288 0,297 0,433 0,258 0,5 0,351 0,136 0,296 0,453 0,356 0,24 0,318 0,459 0,362 0,5 0,267 0,107 0,283 0,434 0,408
0,288 0,3 0,426 0,258 0,5 0,351 0,136 0,296 0,453 0,356 0,24 0,315 0,431 0,362 0,506 0,272 0,099 0,283 0,434 0,408
0,306 0,31 0,435 0,286 0,548 0,347 0,14 0,303 0,462 0,351 0,239 0,325 0,46 0,381 0,548 0,27 0,096 0,285 0,435 0,415
Data Set
CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan
265
seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.237. Tabel 4.237 Peringkat F-Measure Model pada Uji Friedman
CM1 8,5 8,5 JM1 7,5 7,5 KC1 7,5 7,5 KC3 4 4 MDP MC2 9 5,5 Repository PC1 2,5 1 PC2 11 10 PC3 9 12 PC4 11 1 PC5 9,5 9,5 CM1 5 3 JM1 11,5 11,5 KC1 4,5 4,5 KC3 4 1 PROMISE MC2 9,5 12 Repository PC1 3,5 3,5 PC2 7,5 7,5 PC3 8 12 PC4 10 1 PC5 11,5 11,5 Jumlah 154,5 134 Rata-rata 7,725 6,7
2 3 4 4 10,5 10,5 5,5 5,5 9 6,5 4 2 7 11,5 11,5 4 2,5 5,5 6 9 8 8 10 11 7 9 12 8 11 1 6 4 2 8 8 8 9 6 12 4 2 4 11 9,5 3 6 2 1 4 9 10 2 9,5 9,5 6 8 5 6 7 1 120 141 130 6 7,05 6,5
6 12 4 6,5 5,5 5,5 12 6 8 12 1 5 7,5 7 8 5 1 11 7 10 140 7
FSMOTE+BG+NB
FSMOTE+AB+NB
FSMOTE+NB
RUS+BG+NB
RUS+AB+NB
RUS+NB
ROS+AB+NB
ROS+NB
BG+NB
AB+NB
NB
Data Set
ROS+BG+NB
Model
5 12 1 10,5 10,5 7 7,5 7,5 5 3 2 1 11,5 11,5 10 2 3 1 8 9 1 11,5 11,5 10 3,5 3,5 1,5 9 9 1,5 7,5 7,5 12 9,5 9,5 11 5 4 7 2,5 2,5 1 3 1 7 4,5 4,5 2 10 3 6 4,5 4,5 2 6,5 6,5 4,5 2,5 2,5 4,5 12 11 7 8,5 8,5 10 8 8 4 2 3 1 10,5 10,5 7,5 2 3 1 11 10 12 8,5 8,5 6 5,5 7 2 5,5 4 1 7,5 7,5 9 12 10 11 11 6 12 2 3 5 7 6 1 4,5 4,5 3 12 11 9 3,5 3,5 2 8,5 8,5 5 3,5 3,5 2 160,5 151 123,5 111,5 111 83 8,025 7,55 6,175 5,575 5,55 4,15
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
266
Tabel 4.238
AB+NB
BG+NB
ROS+NB
ROS+AB+NB
ROS+BG+NB
RUS+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
Perbandingan Berpasangan pada Nemenyi Post Hoc
0 -1,03 -1,73 -0,68 -1,23 -0,73 0,3 -0,18 -1,55 -2,15 -2,18 -3,58
1,025 0 -0,7 0,35 -0,2 0,3 1,325 0,85 -0,53 -1,13 -1,15 -2,55
1,725 0,7 0 1,05 0,5 1 2,025 1,55 0,175 -0,43 -0,45 -1,85
0,675 -0,35 -1,05 0 -0,55 -0,05 0,975 0,5 -0,88 -1,48 -1,5 -2,9
1,225 0,2 -0,5 0,55 0 0,5 1,525 1,05 -0,33 -0,93 -0,95 -2,35
0,725 -0,3 -1 0,05 -0,5 0 1,025 0,55 -0,83 -1,43 -1,45 -2,85
-0,3 -1,33 -2,03 -0,98 -1,53 -1,03 0 -0,48 -1,85 -2,45 -2,48 -3,88
0,175 -0,85 -1,55 -0,5 -1,05 -0,55 0,475 0 -1,38 -1,98 -2 -3,4
1,55 0,525 -0,18 0,875 0,325 0,825 1,85 1,375 0 -0,6 -0,63 -2,03
2,15 1,125 0,425 1,475 0,925 1,425 2,45 1,975 0,6 0 -0,03 -1,43
2,175 1,15 0,45 1,5 0,95 1,45 2,475 2 0,625 0,025 0 -1,4
3,58 2,55 1,85 2,9 2,35 2,85 3,88 3,4 2,03 1,43 1,4 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
Tabel 4.239
AB+NB
BG+NB
ROS+NB
ROS+AB+NB
ROS+BG+NB
RUS+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
P-value pada Nemenyi Post Hoc
1 0,9991 0,9375 1 0,9957 1 1 1 0,9709 0,7685 0,7548 0,0743
0,9991 1 1 1 1 1 0,9916 0,9999 1 0,998 0,9976 0,5227
0,9375 1 1 0,9989 1 0,9993 0,8313 0,9709 1 1 1 0,9012
1 1 0,9989 1 1 1 0,9995 1 0,9998 0,9801 0,9773 0,3127
0,9957 1 1 1 1 1 0,9743 0,9989 1 0,9997 0,9996 0,6508
1 1 0,9993 1 1 1 0,9991 1 0,9999 0,9848 0,9826 0,3399
1 0,9916 0,8313 0,9995 0,9743 0,9991 1 1 0,9012 0,5872 0,5711 0,033
1 0,9999 0,9709 1 0,9989 1 1 1 0,9886 0,8536 0,8427 0,1137
0,9709 1 1 0,9998 1 0,9999 0,9012 0,9886 1 1 1 0,8313
0,7685 0,998 1 0,9801 0,9997 0,9848 0,5872 0,8536 1 1 1 0,9848
0,7548 0,9976 1 0,9773 0,9996 0,9826 0,5711 0,8427 1 1 1 0,9868
0,0743 0,5227 0,9012 0,3127 0,6508 0,3399 0,033 0,1137 0,8313 0,9848 0,9868 1
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not. 267
Tabel 4.240
Not Not Not Not Not Not
Not Not Not Not Sig
Not Not Not Not Not Not Not Not
Not Not Not Not Not Not Not Not Not
Not Not Not Not
Not Not Not
Not Not
FSMOTE+BG+NB
Not Not Not Not Not Not Not
Not Not Not Not Not Not Not
FSMOTE+AB+NB
Not Not Not Not Not Not Not Not
Not Not Not Not Not Not
FSMOTE+NB
Not Not Not Not Not Not Not Not Not
Not Not Not Not Not
RUS+BG+NB
Not Not Not Not Not Not Not Not Not Not
Not Not Not Not
RUS+AB+NB
Not Not Not
RUS+NB
Not Not
ROS+BG+NB
Not
ROS+AB+NB
ROS+NB
Not Not Not Not Not Not Not Not Not Not Not
BG+NB
NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
AB+NB
NB
Perbedaan Signifikan pada Nemenyi Post Hoc
Not Not Not Not Not Not Not Not Not Not
Not Not Not Not Not Not Sig Not Not Not Not
Not
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.22 Perbandingan F-Measure Model Menggunakan Diagram Demsar
268
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa tidak ada model yang nilai F-Measure-nya meningkat atau menurun secara signifikan terhadap NB. Model yang memiliki peningkatan F-Measure tertinggi adalah FSMOTE+BG+NB, walaupun tidak signifikan. Perbedaan secara signifikan terjada antara model
FSMOTE+BG+NB
dengan
RUS+NB,
karena
RUS+NB
mengalami penurunan F-Measure.
D. G-Mean Data yang diperoleh dari pengukuran G-Mean model ditunjukkan pada Tabel 4.241.
Tabel 4.241 Hasil Pengukuran Nilai G-Mean Model
NB
AB+NB
BG+NB
ROS+NB
ROS+AB+NB
ROS+BG+NB
RUS+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
Model
0,525 0,433 0,544 0,566 0,594 0,61 0,335 0,514 0,524 0,459 0,537 0,432 0,543 0,614 0,568 0,572 0,472 0,604 0,523 0,452
0,525 0,433 0,544 0,566 0,611 0,575 0,336 0,297 0,667 0,459 0,539 0,432 0,543 0,606 0,559 0,572 0,472 0,363 0,673 0,452
0,545 0,44 0,547 0,564 0,603 0,621 0,58 0,543 0,573 0,47 0,517 0,436 0,542 0,614 0,565 0,581 0,552 0,699 0,546 0,467
0,544 0,43 0,546 0,566 0,576 0,61 0,336 0,512 0,525 0,457 0,538 0,436 0,544 0,615 0,568 0,584 0,472 0,583 0,533 0,456
0,543 0,43 0,568 0,579 0,576 0,609 0,336 0,509 0,502 0,615 0,554 0,436 0,542 0,614 0,631 0,585 0,681 0,582 0,603 0,57
0,542 0,43 0,553 0,564 0,611 0,609 0,335 0,585 0,53 0,453 0,568 0,441 0,544 0,611 0,58 0,583 0,519 0,568 0,545 0,455
0,555 0,434 0,534 0,562 0,623 0,63 0,654 0,64 0,544 0,475 0,517 0,436 0,54 0,606 0,599 0,602 0,574 0,625 0,515 0,456
0,506 0,434 0,534 0,509 0,623 0,63 0,657 0,63 0,655 0,475 0,528 0,436 0,54 0,584 0,595 0,602 0,583 0,641 0,54 0,456
0,583 0,438 0,537 0,629 0,635 0,632 0,516 0,614 0,606 0,484 0,553 0,444 0,545 0,566 0,638 0,61 0,465 0,692 0,567 0,481
0,575 0,449 0,596 0,444 0,594 0,545 0,486 0,633 0,655 0,487 0,581 0,47 0,615 0,618 0,599 0,606 0,428 0,653 0,644 0,538
0,575 0,452 0,583 0,444 0,594 0,545 0,486 0,633 0,655 0,487 0,581 0,466 0,588 0,618 0,611 0,607 0,427 0,653 0,644 0,538
0,594 0,461 0,598 0,471 0,635 0,544 0,487 0,642 0,663 0,484 0,58 0,477 0,618 0,635 0,638 0,607 0,427 0,652 0,65 0,545
Data Set
CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai
269
terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.242.
Tabel 4.242 Peringkat G-Mean Model pada Uji Friedman
CM1 10,5 JM1 8,5 KC1 8,5 KC3 4 MDP MC2 9 Repository PC1 5,5 PC2 11,5 PC3 9 PC4 11 PC5 9,5 CM1 9 JM1 11,5 KC1 7,5 KC3 6 PROMISE MC2 9,5 Repository PC1 11,5 PC2 7 PC3 8 PC4 11 PC5 11,5 Jumlah 179,5 Rata-rata 8,975
FSMOTE+BG+NB
FSMOTE+AB+NB
FSMOTE+NB
RUS+BG+NB
RUS+AB+NB
RUS+NB
ROS+BG+NB
ROS+NB
BG+NB
AB+NB
NB
Data Set
ROS+AB+NB
Model
10,5 6 7 8 9 5 12 2 3,5 3,5 1 8,5 4 11 11 11 6,5 6,5 5 3 2 1 8,5 6 7 4 5 11,5 11,5 10 2 3 1 4 6,5 4 2 6,5 8 9 1 11,5 11,5 10 5,5 7 11,5 11,5 5,5 3,5 3,5 1,5 9 9 1,5 9 4 5,5 7,5 7,5 2,5 2,5 1 10,5 10,5 12 9 3 9 9 11,5 2 1 4 6,5 6,5 5 12 8 10 11 7 2 5 6 3,5 3,5 1 1 7 10 12 9 8 4 6 4 4 2 9,5 8 11 1 12 6,5 6,5 4,5 2,5 2,5 4,5 7 11,5 8 5 4 11,5 10 6 1,5 1,5 3 11,5 8 8 8 5 8 8 4 2 3 1 7,5 9,5 5,5 9,5 5,5 11,5 11,5 4 2 3 1 9,5 6 4 6 8 9,5 11 12 2,5 2,5 1 12 11 9,5 3 8 5,5 7 1,5 5,5 4 1,5 11,5 10 8 7 9 5,5 5,5 1 4 2,5 2,5 7 4 7 1 5 3 2 9 10 11,5 11,5 12 1 9 10 11 7 6 2 3,5 3,5 5 1 7 10 5 8 12 9 6 3,5 3,5 2 11,5 6 8 1 10 8 8 5 3,5 3,5 2 168 133,5 163 132,5 157,5 137 139,5 91,5 94 94,5 69,5 8,4 6,675 8,15 6,625 7,875 6,85 6,975 4,575 4,7 4,725 3,475
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
270
Tabel 4.243
AB+NB
BG+NB
ROS+NB
ROS+AB+NB
ROS+BG+NB
RUS+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
Perbandingan Berpasangan pada Nemenyi Post Hoc
0 -0,57 -2,3 -0,82 -2,35 -1,1 -2,13 -2 -4,4 -4,28 -4,25 -5,5
0,575 0 -1,73 -0,25 -1,78 -0,53 -1,55 -1,43 -3,83 -3,7 -3,68 -4,93
2,3 1,725 0 1,475 -0,05 1,2 0,175 0,3 -2,1 -1,98 -1,95 -3,2
0,825 0,25 -1,48 0 -1,53 -0,28 -1,3 -1,18 -3,58 -3,45 -3,43 -4,68
2,35 1,775 0,05 1,525 0 1,25 0,225 0,35 -2,05 -1,93 -1,9 -3,15
1,1 0,525 -1,2 0,275 -1,25 0 -1,03 -0,9 -3,3 -3,18 -3,15 -4,4
2,125 1,55 -0,18 1,3 -0,23 1,025 0 0,125 -2,28 -2,15 -2,13 -3,38
2 1,425 -0,3 1,175 -0,35 0,9 -0,13 0 -2,4 -2,28 -2,25 -3,5
4,4 3,825 2,1 3,575 2,05 3,3 2,275 2,4 0 0,125 0,15 -1,1
4,275 3,7 1,975 3,45 1,925 3,175 2,15 2,275 -0,13 0 0,025 -1,23
4,25 3,675 1,95 3,425 1,9 3,15 2,125 2,25 -0,15 -0,02 0 -1,25
5,5 4,93 3,2 4,68 3,15 4,4 3,38 3,5 1,1 1,23 1,25 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
Tabel 4.244
ROS+AB+NB
ROS+BG+NB
RUS+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+NB
0,6817 0,9375 1 0,9801 1 0,9964 1 1 0,7948 0,8536 0,864 0,177
0,9999 1 0,9801 1 0,9743 1 0,9929 0,997 0,0743 0,1011 0,1072 0,0024
0,6508 0,9243 1 0,9743 1 0,9949 1 1 0,8196 0,874 0,8835 0,1961
0,9984 1 0,9964 1 0,9949 1 0,9991 0,9998 0,1427 0,1864 0,1961 0,0064
0,7818 0,9709 1 0,9929 1 0,9991 1 1 0,6969 0,7685 0,7818 0,1205
0,8427 0,9848 1 0,997 1 0,9998 1 1 0,6192 0,6969 0,7118 0,0895
0,0064 0,0381 0,7948 0,0743 0,8196 0,1427 0,6969 0,6192 1 1 1 0,9984
0,0097 0,0536 0,8536 0,1011 0,874 0,1864 0,7685 0,6969 1 1 1 0,9957
FSMOTE+BG+NB
ROS+NB
1 1 0,9375 1 0,9243 1 0,9709 0,9848 0,0381 0,0536 0,0573 0,001
FSMOTE+AB+NB
BG+NB
NB 1 AB+NB 1 BG+NB 0,6817 ROS+NB 0,9999 ROS+AB+NB 0,6508 ROS+BG+NB 0,9984 RUS+NB 0,7818 RUS+AB+NB 0,8427 RUS+BG+NB 0,0064 FSMOTE+NB 0,0097 FSMOTE+AB+NB 0,0105 FSMOTE+BG+NB < 0.0001
AB+NB
NB
P-value pada Nemenyi Post Hoc
0,0105 < 0.0001 0,0573 0,001 0,864 0,177 0,1072 0,0024 0,8835 0,1961 0,1961 0,0064 0,7818 0,1205 0,7118 0,0895 1 0,9984 1 0,9957 1 0,9949 0,9949 1
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not. 271
Tabel 4.245
Not Not Not Not Not Sig
Not Not Not Not Not
Sig Sig Not Not Not Not Not Not
Sig Not Not Not Not Not Not Not Not
Not Not Not Not
Not Not Not
Not Not
FSMOTE+BG+NB
Not Not Not Not Not Not Not
Not Not Not Not Not Not Not
FSMOTE+AB+NB
Not Not Not Not Not Not Not Sig
Not Not Not Not Not Not
FSMOTE+NB
Not Not Not Not Not Not Not Not Not
Not Not Not Not Not
RUS+BG+NB
Not Not Not Not Not Not Sig Not Not Sig
Not Not Not Not
RUS+AB+NB
Not Not Not
RUS+NB
Not Not
ROS+BG+NB
Not
ROS+AB+NB
ROS+NB
Not Not Not Not Not Not Not Sig Sig Sig Sig
BG+NB
NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
AB+NB
NB
Perbedaan Signifikan pada Nemenyi Post Hoc
Sig Not Not Not Not Not Not Not Not Not
Sig Sig Not Sig Not Sig Not Not Not Not Not
Not
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.23 Perbandingan G-Mean Model Menggunakan Diagram Demsar
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa ada beberapa model yang nilai G-Mean-nya
272
meningkat secara signifikan, yaitu FSMOTE+BG+NB, RUS+BG+NB, FSMOTE+NB, dan FSMOTE+AB+NB. Sedangkan model yang lain memiliki peningkatan tidak signifikan.
E. AUC Data yang diperoleh dari pengukuran AUC model ditunjukkan pada Tabel 4.246.
Tabel 4.246 Hasil Pengukuran Nilai AUC Model
NB
AB+NB
BG+NB
ROS+NB
ROS+AB+NB
ROS+BG+NB
RUS+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
Model
0,6 0,572 0,607 0,624 0,649 0,666 0,512 0,6 0,618 0,584 0,605 0,571 0,607 0,654 0,633 0,642 0,587 0,64 0,617 0,58
0,6 0,572 0,607 0,624 0,661 0,652 0,513 0,523 0,702 0,584 0,609 0,571 0,607 0,656 0,619 0,642 0,587 0,536 0,703 0,58
0,612 0,574 0,608 0,62 0,648 0,671 0,603 0,619 0,641 0,587 0,592 0,572 0,604 0,654 0,628 0,644 0,623 0,705 0,628 0,586
0,611 0,57 0,608 0,624 0,638 0,666 0,514 0,593 0,62 0,584 0,607 0,572 0,606 0,656 0,633 0,648 0,587 0,625 0,622 0,582
0,609 0,57 0,581 0,625 0,638 0,664 0,514 0,591 0,605 0,624 0,615 0,572 0,575 0,654 0,658 0,65 0,692 0,625 0,656 0,603
0,607 0,57 0,612 0,62 0,661 0,664 0,51 0,64 0,623 0,58 0,621 0,575 0,605 0,65 0,638 0,647 0,615 0,619 0,627 0,58
0,61 0,571 0,599 0,617 0,666 0,673 0,655 0,644 0,623 0,589 0,572 0,572 0,604 0,613 0,653 0,653 0,584 0,629 0,603 0,581
0,551 0,571 0,599 0,577 0,666 0,673 0,657 0,634 0,688 0,589 0,574 0,572 0,604 0,624 0,648 0,653 0,637 0,646 0,617 0,581
0,622 0,573 0,599 0,646 0,671 0,667 0,553 0,619 0,656 0,592 0,587 0,575 0,604 0,566 0,668 0,654 0,59 0,692 0,627 0,592
0,6 0,577 0,618 0,554 0,649 0,635 0,597 0,641 0,688 0,595 0,592 0,585 0,637 0,648 0,653 0,649 0,577 0,653 0,678 0,615
0,6 0,578 0,617 0,554 0,649 0,635 0,597 0,641 0,688 0,595 0,592 0,584 0,62 0,648 0,648 0,651 0,574 0,653 0,678 0,615
0,616 0,582 0,618 0,568 0,671 0,634 0,599 0,649 0,694 0,592 0,591 0,588 0,637 0,662 0,677 0,65 0,574 0,652 0,681 0,617
Data Set
CM1 JM1 KC1 KC3 MDP MC2 Repository PC1 PC2 PC3 PC4 PC5 CM1 JM1 KC1 KC3 PROMISE MC2 Repository PC1 PC2 PC3 PC4 PC5
Uji Friedman dilakukan dengan memberikan peringkat setiap nilai pengukuran. Peringkat diberikan pada model untuk setiap dataset, nilai terbesar diberi peringkat 1, terbesar kedua diberi peringkat 2, dan seterusnya. Jika ada beberapa nilai yang sama, maka diberi peringkat rata-rata. Hasilnya ditunjukkan pada Tabel 4.247.
273
Tabel 4.247 Peringkat AUC Model pada Uji Friedman
CM1 9,5 9,5 JM1 6,5 6,5 KC1 7,5 7,5 KC3 4 4 MDP MC2 8 5,5 Repository PC1 5,5 9 PC2 11 10 PC3 9 12 PC4 11 1 PC5 10 10 CM1 5 3 JM1 11,5 11,5 KC1 4,5 4,5 KC3 5 2,5 PROMISE MC2 9,5 12 Repository PC1 11,5 11,5 PC2 7 7 PC3 7 12 PC4 10,5 1 PC5 11 11 Jumlah 164,5 151 Rata-rata 8,225 7,55
3 4 6 7 5 12 4 11 11 11 8,5 8,5 5,5 5,5 12 4 10 10 6,5 4 2 6,5 8 9 10 11,5 11,5 5,5 3,5 3,5 3 5,5 7,5 7,5 1,5 1,5 3 8,5 8,5 12 2 1 7,5 10 11 5 2 6 7 10 12 8,5 8,5 4 8 10 1 12 6,5 6,5 7 4 2 1 12 11 8 8 8 4,5 8 8 9,5 6 12 7 9,5 9,5 5 2,5 5 7 11 10 11 9,5 3 8 4,5 6,5 10 8 5,5 9 2,5 2,5 3 7 1 4 9 2 1 9,5 9,5 11 8 6 6 9 5 7,5 12 10,5 6 7 4 11 8,5 8,5 124 150,5 137,5 149 140,5 136,5 6,2 7,525 6,875 7,45 7,025 6,825
1 5 10 1 1,5 4 7 7,5 6 4,5 10 4,5 9,5 12 2 1 5 2 7,5 5 106 5,3
9,5 3 1,5 11,5 8 10,5 5,5 3,5 4 2,5 7 2 1,5 8,5 4,5 7 10 3,5 3,5 2,5 109,5 5,475
FSMOTE+BG+NB
FSMOTE+AB+NB
FSMOTE+NB
RUS+BG+NB
RUS+AB+NB
RUS+NB
ROS+BG+NB
ROS+NB
BG+NB
AB+NB
NB
Data Set
ROS+AB+NB
Model
9,5 2 2 1 3 1,5 11,5 10 8 1,5 10,5 12 5,5 4 3,5 1 4 2 2,5 4,5 7 9 3 1 3 1,5 8,5 1 6,5 1 4 5,5 11,5 11,5 3,5 5 3,5 2 2,5 1 113 78 5,65 3,9
Nemenyi post hoc dilakukan dengan membuat tabel perbandingan berpasangan, tabel p-value, dan tabel signifikansi perbedaan untuk menunjukkan pasangan model mana yang memiliki perbedaan secara signifikan.
274
Tabel 4.248
AB+NB
BG+NB
ROS+NB
ROS+AB+NB
ROS+BG+NB
RUS+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
Perbandingan Berpasangan pada Nemenyi Post Hoc
0 -0,68 -2,03 -0,7 -1,35 -0,77 -1,2 -1,4 -2,93 -2,75 -2,58 -4,33
0,675 0 -1,35 -0,02 -0,68 -0,1 -0,52 -0,73 -2,25 -2,08 -1,9 -3,65
2,025 1,35 0 1,325 0,675 1,25 0,825 0,625 -0,9 -0,73 -0,55 -2,3
0,7 0,025 -1,33 0 -0,65 -0,08 -0,5 -0,7 -2,23 -2,05 -1,88 -3,63
1,35 0,675 -0,68 0,65 0 0,575 0,15 -0,05 -1,58 -1,4 -1,23 -2,98
0,775 0,1 -1,25 0,075 -0,58 0 -0,43 -0,63 -2,15 -1,98 -1,8 -3,55
1,2 0,525 -0,83 0,5 -0,15 0,425 0 -0,2 -1,73 -1,55 -1,38 -3,13
1,4 0,725 -0,63 0,7 0,05 0,625 0,2 0 -1,53 -1,35 -1,18 -2,93
2,925 2,25 0,9 2,225 1,575 2,15 1,725 1,525 0 0,175 0,35 -1,4
2,75 2,075 0,725 2,05 1,4 1,975 1,55 1,35 -0,18 0 0,175 -1,58
2,575 1,9 0,55 1,875 1,225 1,8 1,375 1,175 -0,35 -0,18 0 -1,75
4,33 3,65 2,3 3,63 2,98 3,55 3,13 2,93 1,4 1,58 1,75 0
Untuk menghitung nilai P-value Nemenyi post hoc digunakan software XLSTAT. P-value yang bernilai lebih kecil dari 0,05 (nilai α) dicetak lebih tebal, ini menunjukkan bahwa ada perbedaan yang signifikan di antara model pada baris dan kolom yang sesuai.
Tabel 4.249
AB+NB
BG+NB
ROS+NB
ROS+AB+NB
ROS+BG+NB
RUS+NB
RUS+AB+NB
RUS+BG+NB
FSMOTE+NB
FSMOTE+AB+NB
FSMOTE+BG+NB
NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
NB
P-value pada Nemenyi Post Hoc
1 1 0,8313 1 0,9902 0,9999 0,9964 0,9868 0,2995 0,3977 0,5067 0,0082
1 1 0,9902 1 1 1 1 1 0,7118 0,8074 0,8835 0,0612
0,8313 0,9902 1 0,9916 1 0,9949 0,9999 1 0,9998 1 1 0,6817
1 1 0,9916 1 1 1 1 1 0,7264 0,8196 0,8926 0,0653
0,9902 1 1 1 1 1 1 1 0,9672 0,9868 0,9957 0,2742
0,9999 1 0,9949 1 1 1 1 1 0,7685 0,8536 0,917 0,0791
0,9964 1 0,9999 1 1 1 1 1 0,9375 0,9709 0,9886 0,2062
0,9868 1 1 1 1 1 1 1 0,9743 0,9902 0,997 0,2995
0,2995 0,7118 0,9998 0,7264 0,9672 0,7685 0,9375 0,9743 1 1 1 0,9868
0,3977 0,8074 1 0,8196 0,9868 0,8536 0,9709 0,9902 1 1 1 0,9672
0,5067 0,8835 1 0,8926 0,9957 0,917 0,9886 0,997 1 1 1 0,9311
0,0082 0,0612 0,6817 0,0653 0,2742 0,0791 0,2062 0,2995 0,9868 0,9672 0,9311 1
Model pada kolom dan baris yang memiliki perbedaan signifikan, diberi nilai Sig. Sedangkan yang perbedaannya tidak signifikan diberi nilai Not. 275
Tabel 4.250
Not Not Not Not Not Not
Not Not Not Not Not
Not Not Not Not Not Not Not Not
Not Not Not Not Not Not Not Not Not
Not Not Not Not
Not Not Not
Not Not
FSMOTE+BG+NB
Not Not Not Not Not Not Not
Not Not Not Not Not Not Not
FSMOTE+AB+NB
Not Not Not Not Not Not Not Not
Not Not Not Not Not Not
FSMOTE+NB
Not Not Not Not Not Not Not Not Not
Not Not Not Not Not
RUS+BG+NB
Not Not Not Not Not Not Not Not Not Not
Not Not Not Not
RUS+AB+NB
Not Not Not
RUS+NB
Not Not
ROS+BG+NB
Not
ROS+AB+NB
ROS+NB
Not Not Not Not Not Not Not Not Not Not Not Sig
BG+NB
NB AB+NB BG+NB ROS+NB ROS+AB+NB ROS+BG+NB RUS+NB RUS+AB+NB RUS+BG+NB FSMOTE+NB FSMOTE+AB+NB FSMOTE+BG+NB
AB+NB
NB
Perbedaan Signifikan pada Nemenyi Post Hoc
Not Not Not Not Not Not Not Not Not Not
Sig Not Not Not Not Not Not Not Not Not Not
Not
Setelah dilakukan uji Friedman dan Nemenyi post hoc, selanjutnya ditampilkan pada diagram Demsar yang telah dimodifikasi.
Gambar 4.24 Perbandingan AUC Model Menggunakan Diagram Demsar
Berdasarkan Nemenyi post hoc dan diagram Demsar yang dimodifikasi di atas menunjukkan bahwa hanya model FSMOTE+BG+NB yang
276
memiliki nilai AUC meningkat secara signifikan. Sedangkan model yang lain memiliki peningkatan tidak signifikan.
Berdasarkan uji Friedman, Nemenyi post hoc, dan diagram Demsar menunjukkan bahwa integrasi FSMOTE dan Bagging (FSMOTE+BG+NB) merupakan model terbaik, karena memiliki peningkatan secara signifikan terbanyak, yaitu pada sensitivitas, G-Mean, dan AUC. Walaupun akurasi cenderung menurun (tetapi tidak signifikan), tetapi kemampuan untuk memprediksi kelas minoritas meningkat.
277
BAB V KESIMPULAN DAN SARAN
5.1
Kesimpulan Menghasilkan software berkualitas merupakan tujuan dari kegiatan
pengembangan software. Kualitas software ditentukan oleh jumlah cacat yang ditemukan
selama
pemeriksaan
dan
pengujian.
Sebagian
besar
biaya
pengembangan dihabiskan untuk pemeriksaan dan pengujian, karena merupakan kegiatan utama untuk menjamin kualitas software yang dihasilkan. Telah banyak metode yang digunakan untuk melakukan pemeriksaan dan pengujian. Metode yang menggunakan probabilitas adalah metode yang dapat menghasilkan kinerja terbaik. Metode ini melakukan prediksi terhadap modul software berdasarkan kumpulan data (dataset) sebelumnya ke dalam kelompok rawan cacat, atau tidak rawan cacat. Telah banyak model prediksi cacat software yang diusulkan, tetapi belum ada yang satu model terbaik yang berlaku secara umum pada semua dataset. Dataset cacat software secara umum tidak seimbang, karena jumlah yang cacat jauh lebih sedikit dari jumlah yang tidak cacat. Hal ini dapat menurunkan kinerja model prediksi cacat software. Pendekatan untuk mengurangi pengaruh ketidakseimbangan kelas pada dataset secara umum dibagi dua, yaitu level data menggunakan teknik resampling atau mensintesis, dan level algoritma menggunakan teknik ensemble. Masalah penelitian (Research Problem disingkat RP) khusus seperti yang telah disajikan pada bab I dapat disajikan kembali sebagai berikut: RP1 Memperbaiki software yang cacat setelah pengiriman membutuhkan biaya jauh lebih mahal dari pada selama pengembangan, pengujian software menghabiskan sampai 50% waktu pengembangan, tetapi belum ada model prediksi cacat software yang berlaku umum. RP2 Naϊve Bayes merupakan model paling efektif dan efisien, tetapi belum dapat mengklasifikasikan dataset berbasis metrik dengan kinerja terbaik secara umum dan selalu konsisten dalam semua penelitian.
278
RP3 Dataset dari software metrics secara umum bersifat tidak seimbang, hal ini dapat menurunkan kinerja model prediksi cacat software karena cenderung menghasilkan prediksi kelas mayoritas.
Secara umum tujuan penelitian ini adalah mengusulkan model prediksi cacat software menggunakan pendekatan level data (ROS, RUS, dan FSMOTE) dan level algoritma (AdaBoost, dan Bagging) termasuk penggabungan kedua pendekatan untuk mengurangi pengaruh ketidakseimbangan kelas. Tujuan penelitian (Research Objective disingkat RO) secara sepesifik seperti pada bab I dapat disajikan kembali sebagai berikut: RO1 Meningkatkan
kinerja
pengklasifikasi
(Naϊve
Bayes)
untuk
memperbaiki dan membangun model prediksi cacat software. RO2 Pendekatan level algoritma (ensemble): RO2.1 Meningkat kinerja Naϊve Bayes dengan mengintegrasikan dengan algoritma AdaBoost pada model prediksi cacat software. RO2.2 Meningkat kinerja Naϊve Bayes dengan mengintegrasikan dengan algoritma Bagging pada model prediksi cacat software. RO2.3 Mengidentifikasi algoritma ensemble terbaik ketika diintegrasikan dengan Naϊve Bayes pada model prediksi cacat software. RO3 Pendekatan level data (ROS, RUS, atau FSMOTE): RO3.1 Mengintegrasikan Naϊve Bayes dengan ROS (Random OverSampling) untuk meningkatkan kinerja model prediksi cacat software. RO3.2 Mengintegrasikan Naϊve Bayes dengan RUS (Random UnderSampling) untuk meningkatkan kinerja model prediksi cacat software. RO3.3 Mengintegrasikan
Naϊve
Bayes
dengan
FSMOTE
untuk
meningkatkan kinerja model prediksi cacat software. RO3.4 Mengidentifikasi
pendekatan
level
data
terbaik
ketika
diintegrasikan dengan Naϊve Bayes pada model prediksi cacat software. RO4 Integrasi pendekatan level data dan level algoritma: RO4.1 Mengintegrasikan Naϊve Bayes dengan ROS dan AdaBoost untuk meningkatkan kinerja model prediksi cacat software. 279
RO4.2 Mengintegrasikan Naϊve Bayes dengan RUS dan AdaBoost untuk meningkatkan kinerja model prediksi cacat software. RO4.3 Mengintegrasikan Naϊve Bayes dengan FSMOTE dan AdaBoost untuk meningkatkan kinerja model prediksi cacat software. RO4.4 Mengintegrasikan Naϊve Bayes dengan ROS dan Bagging untuk meningkatkan kinerja model prediksi cacat software. RO4.5 Mengintegrasikan Naϊve Bayes dengan RUS dan Bagging untuk meningkatkan kinerja model prediksi cacat software. RO4.6 Mengintegrasikan Naϊve Bayes dengan FSMOTE dan Bagging untuk meningkatkan kinerja model prediksi cacat software. RO4.7 Mengidentifikasi integrasi pendekatan level data dan level algoritma terbaik ketika digunakan pada model prediksi cacat software. RO5 Mengidentifikasi integrasi pendekatan level data atau level algoritma yang dapat menghasilkan kinerja Naϊve Bayes terbaik ketika digunakan pada model prediksi cacat software. RO6 Mengidentifikasi model yang memiliki kinerja terbaik dari model yang menggunakan pendekatan level data dan level algoritma serta kombinasi keduanya.
Berdasarkan tujuan penelitian, kerangka kerja dan model prediksi cacat software berikut dapat dianggap sebagai kontribusi penelitian (Research Contribution disingkat RC). RC1
Sebuah kerangka kerja untuk meningkatkan dan membandingkan kinerja pengklasifikasi (Naϊve Bayes) dengan pendekatan level data dan level algoritma pada model prediksi cacat software.
RC2
Sebuah model yang mengintegrasikan algoritma Adaboost dengan Naϊve Bayes pada prediksi cacat software.
RC3
Sebuah model yang mengintegrasikan algoritma Bagging dengan Naϊve Bayes pada prediksi cacat software.
RC4
Sebuah model yang mengintegrasikan ROS dan Naϊve Bayes pada prediksi cacat software.
RC5
Sebuah model yang mengintegrasikan RUS dan Naϊve Bayes pada prediksi cacat software. 280
RC6
Sebuah model yang mengintegrasikan FSMOTE dan Naϊve Bayes pada prediksi cacat software.
RC7
Sebuah model yang mengintegrasikan ROS, algoritma Adaboost, dan Naϊve Bayes pada prediksi cacat software.
RC8
Sebuah model yang mengintegrasikan RUS, algoritma Adaboost, dan Naϊve Bayes pada prediksi cacat software.
RC9
Sebuah
model
yang
mengintegrasikan
FSMOTE,
algoritma
Adaboost, dan Naϊve Bayes pada prediksi cacat software. RC10 Sebuah model yang mengintegrasikan ROS, algoritma Bagging, dan Naϊve Bayes pada prediksi cacat software. RC11 Sebuah model yang mengintegrasikan RUS, algoritma Bagging, dan Naϊve Bayes pada prediksi cacat software. RC12 Sebuah model yang mengintegrasikan FSMOTE, algoritma Bagging, dan Naϊve Bayes pada prediksi cacat software. RC13 Sebuah kerangka kerja untuk membandingkan dan menentukan model terbaik pada prediksi cacat software.
Kesimpulan merupakan jawaban untuk rumusan masalah, atau hasil dari tujuan penelitian. Kesimpulan terkait dengan rumusan dan tujuan penelitian akan dijelaskan pada subbab di bawah ini.
5.1.1
Kesimpulan Terkait Tujuan Penelitian RO1 Kerangka kerja untuk
meningkatkan dan
membandingkan kinerja
pengklasifikasi dengan pendekatan level data dan level algoritma pada model prediksi cacat software dimulai dengan mengimplementasikan model yang diusulkan, mengukur kinerja, dan membandingkan hasilnya. Semua model yang diusulkan termasuk model dasar (12 model) diimplementasikan menggunakan bahasa pemrograman Java dan IDE NetBeans. Selanjutnya model yang telah dibuat diterapkan pada 10 dataset dari NASA MDP repository dan 10 dataset dari PROMISE repository, serta dilakukan pengukuran kinerjanya. Karena dataset cacat software bersifat tidak seimbang, maka untuk melakukan perbandingan kinerja dipilih hasil pengukuran akurasi, sensitivitas, F-Measure, G-Mean, dan AUC. Perbandingan kinerja ditunjukkan melalui diagram box and whisker plots pada subbab 4.2.1, sehingga dapat dilihat kinerja dari setiap model. Pada 281
pengukuran akurasi model AB+NB menunjukkan peningkatan, sedangkan model lain relatif sama atau cenderung turun, tetapi pengukuran akurasi tidak mempertimbangkan
ketidakseimbangan
kelas.
Pada
pengukuran
yang
mempertimbangkan ketidakseimbangan kelas seperti sensitivitas, F-Measure, GMean, dan AUC menunjukkan bahwa ada peningkatan yang jelas terutama pada model
FSMOTE+AB+NB,
FSMOTE+BG+NB,
RUS+BG+NB,
dan
FSMOTE+NB. Kontribusi ini sebagai jawaban dari masalah penelitian (RP1), rumusan masalah (RQ1), dan tujuan penelitian (RO1) pada penelitian ini.
5.1.2
Kesimpulan Terkait Tujuan Penelitian RO2.1 Boosting telah menunjukkan dapat meningkatkan kinerja pengklasifikasi
dalam banyak situasi, termasuk data yang memiliki ketidakseimbangan kelas. AdaBoost merupakan salah satu algoritma boosting yang secara teoritis dapat meningkatkan kinerja model pengklasifikasi. AdaBoost bekerja dengan membuat beberapa model pengklasifikasi dan melatihnya dengan dataset yang sama, tetapi dengan bobot yang ditentukan berdasarkan kinerja model sebelumnya. Kinerja masing-masing model digunakan untuk menentukan bobot model tersebut. Selanjutnya, kinerja model-model tersebut digabungkan berdasarkan bobotnya, dan menghasilkan kinerja model AdaBoost. Salah satu model yang diusulkan pada penelitian ini adalah mengintegrasikan AdaBoost dengan pengklasifikasi Naϊve Bayes untuk mengurangi pengaruh ketidakseimbangan kelas dan meningkatkan kinerja model prediksi cacat software. Penelitian dilakukan dengan mengembangkan model yang mengintegrasikan AdaBoost dengan Naϊve Bayes, menerapkan pada 10 dataset dari NASA MDP repository dan 10 dataset dari PROMISE repository, mengukur kinerja yang dihasilkan, dan melakukan uji statistik untuk mengetahui signifikansi peningkatan kinerjanya. Hasil penelitian sesuai pembahasan subbab 4.2.2.1 menunjukkan bahwa model AB+NB tidak dapat meningkatkan kinerja model prediksi cacat software. Kontribusi ini sebagai jawaban dari masalah penelitian (RP2), rumusan masalah (RQ2.1), dan tujuan penelitian (RO2.1) pada penelitian ini.
5.1.3
Kesimpulan Terkait Tujuan Penelitian RO2.2 Bagging merupakan metode ensemble yang sederhana, tetapi efektif dan
telah banyak diimplementasikan di dunia nyata. Bagging telah banyak diterapkan 282
untuk meningkatkan akurasi pengklasifikasi dan menunjukkan hasil yang baik. Bagging bekerja dengan melakukan boostrap sejumlah yang ditentukan untuk membuat kumpulan data baru dengan ukuran yang sama dengan dataset sumber. kumpulan data baru yang dihasilkan digunakan
untuk melatih model dasar
sejumlah bootstrap. Selanjutnya data uji diterapkan pada semua model dasar yang telah dilatih. Hasil akhir diambil berdasarkan hasil klasifikasi yang paling banyak. Pada penelitian ini, Bagging diintegrasikan dengan pengklasifikasi Naϊve Bayes untuk mengurangi pengaruh ketidakseimbangan kelas dan meningkatkan kinerja model prediksi cacat software. Penelitian dilakukan dengan mengembangkan model yang mengintegrasikan Bagging dengan Naϊve Bayes, menerapkan pada 10 dataset dari NASA MDP repository dan 10 dataset dari PROMISE repository, mengukur kinerja yang dihasilkan, dan melakukan uji statistik untuk mengetahui signifikansi peningkatan kinerjanya. Hasil penelitian sesuai pembahasan subbab 4.2.2.2 menunjukkan bahwa model BG+NB dapat meningkatkan kinerja pengklasifikasi Naϊve Bayes sebagai model prediksi cacat software, walaupun memiliki akurasi yang relatif sama atau cenderung menurun, tetapi kemampuan untuk memprediksi kelas minoritas meningkat. Kontribusi ini sebagai jawaban dari masalah penelitian (RP2), rumusan masalah (RQ2.2), dan tujuan penelitian (RO2.2) pada penelitian ini.
5.1.4
Kesimpulan Terkait Tujuan Penelitian RO2.3 Dua metode ensemble, yaitu AdaBoost dan Bagging, telah diusulkan untuk
meningkatkan kinerja pengklasifikasi Naϊve Bayes dan dilakukan pengukuran kinerjanya. Selanjutnya hasil pengukuran kinerja digunakan untuk uji statistik. Uji statistik dilakukan dengan uji Friedman untuk mengetahui signifikansi perbedaan antar model. Pada pengukuran yang memiliki perbedaan signifikan dilakukan Nemenyi post hoc, meliputi perbandingan berpasangan, menghitung p-value, dan membuat tabel signifikansi, serta dibuatkan diagram Demsar yang dimodifikasi. Berdasarkan uji statistik sesuai pembahasan subbab 4.2.2.3 yang telah dilakukan menunjukkan
bahwa
model
yang
mengintegrasikan
Bagging
dengan
pengklasifikasi Naϊve Bayes (BG+NB) memberikan hasil terbaik. Sehingga disimpulkan bahwa model BG+NB (Bagging) lebih baik daripada model AB+NB (AdaBoost) pada prediksi cacat software. Kontribusi ini sebagai jawaban dari
283
masalah penelitian (RP2), rumusan masalah (RQ2.3), dan tujuan penelitian (RO2.3) pada penelitian ini.
5.1.5
Kesimpulan Terkait Tujuan Penelitian RO3.1 Random Over-Sampling (ROS) adalah salah satu teknik resampling yang
dapat digunakan untuk mengurangi pengaruh ketidakseimbangan kelas pada pendekatan level data. ROS bekerja dengan melakukan resampling secara acak terhadap kelas minoritas sampai mencapai keseimbangan, yaitu jumlah kelas minoritas sama dengan jumlah kelas mayoritas. Pada penelitian ini dikembangkan model yang mengintegrasikan ROS dan Naϊve Bayes (ROS+NB), yaitu hasil dari resampling
menggunakan
algoritma
ROS
digunakan
untuk
melatih
pengklasifikasi Naϊve Bayes. Model ROS+NB diterapkan pada 10 dataset dari NASA MDP repository dan 10 dataset dari PROMISE repository, kinerja yang dihasilkan diukur, dan dilakukan uji statistik untuk mengetahui signifikansi peningkatan kinerjanya. Hasil penelitian sesuai pembahasan subbab 4.2.3.1 menunjukkan bahwa ROS tidak dapat meningkatkan kinerja pengklasifikasi Naïve Bayes pada prediksi cacat software. Kontribusi ini sebagai jawaban dari masalah penelitian (RP3), rumusan masalah (RQ3.1), dan tujuan penelitian (RO3.1) pada penelitian ini.
5.1.6
Kesimpulan Terkait Tujuan Penelitian RO3.2 Random Under-Sampling (RUS) adalah salah satu teknik resampling yang
dapat digunakan untuk mengurangi pengaruh ketidakseimbangan kelas pada pendekatan level data. RUS bekerja dengan memilih secara acak dari kelas mayoritas dan membuangnya sampai jumlah kedua kelas seimbang, yaitu jumlah kelas minoritas sama dengan jumlah kelas mayoritas. Pada penelitian ini dikembangkan model yang mengintegrasikan RUS dan Naϊve Bayes (RUS+NB), yaitu hasil dari resampling menggunakan algoritma RUS digunakan untuk melatih pengklasifikasi Naϊve Bayes. Model RUS+NB diterapkan pada 10 dataset dari NASA MDP repository dan 10 dataset dari PROMISE repository, kinerja yang dihasilkan diukur, dan dilakukan uji statistik untuk mengetahui signifikansi peningkatan kinerjanya. Hasil penelitian sesuai pembahasan subbab 4.2.3.2 menunjukkan bahwa RUS dapat mengurangi pengaruh ketidakseimbangan kelas dan meningkatkan kinerja pengklasifikasi Naïve Bayes pada prediksi cacat 284
software. Kontribusi ini sebagai jawaban dari masalah penelitian (RP3), rumusan masalah (RQ3.2), dan tujuan penelitian (RO3.2) pada penelitian ini.
5.1.7
Kesimpulan Terkait Tujuan Penelitian RO3.3 FSMOTE merupakan metode sintesis yang ditujukan untuk memperbaiki
SMOTE dengan mengikuti teori interpolasi fraktal supaya menghasilkan data yang lebih representastif dan menghasilkan kinerja yang lebih baik. FSMOTE berkerja dengan mensintesis kelas minoritas sampai mencapai keseimbangan kelas. Sistesis dilakukan dengan melakukan iterasi terhadap data kelas minoritas dan memilih sejumlah data terdekat, kemudian memilih dua di antaranya, dan membuat sintesis data di antara setiap pasangan. Penelitian dilakukan dengan mengembangkan model yang mengintegrasikan FSMOTE dengan Naϊve Bayes, mengimplementasikan pada 10 dataset dari NASA MDP repository dan 10 dataset dari PROMISE repository, mengukur kinerja yang dihasilkan, dan melakukan uji statistik untuk mengetahui signifikansi peningkatan kinerjanya. Hasil penelitian sesuai pembahasan subbab 4.2.3.3 menunjukkan bahwa FSMOTE dapat meningkatkan kinerja pengklasifikasi Naïve Bayes pada model prediksi cacat software. Kontribusi ini sebagai jawaban dari masalah penelitian (RP3), rumusan masalah (RQ3.3), dan tujuan penelitian (RO3.3) pada penelitian ini.
5.1.8
Kesimpulan Terkait Tujuan Penelitian RO3.4 Pada penelitian ini dilakukan pendekatan level data untuk mengurangi
pengaruh ketidakseimbangan kelas menggunakan dua algoritma resampling, yaitu Random Over-Sampling (ROS) dan Random Under-Sampling (RUS), dan satu algoritma sintesis, yaitu FSMOTE. Dataset baru yang dihasilkan dari ketiga algoritma tersebut digunakan untuk melatih pengklasifikasi Naϊve Bayes. Kinerja yang dihasilkan diukur dan dilakukan uji statistik. Uji statistik dilakukan dengan uji Friedman untuk mengetahui signifikansi perbedaan antar model. Pada pengukuran yang memiliki perbedaan signifikan dilakukan Nemenyi post hoc, meliputi perbandingan berpasangan, menghitung p-value, dan membuat tabel signifikansi, serta dibuatkan diagram Demsar yang dimodifikasi. Hasilnya sesuai pembahasan
subbab
4.2.3.4
menunjukkan
bahwa
model
FSMOTE+NB
merupakan model pendekatan data terbaik pada prediksi cacat software.
285
Kontribusi ini sebagai jawaban dari masalah penelitian (RP3), rumusan masalah (RQ3.4), dan tujuan penelitian (RO3.4) pada penelitian ini.
5.1.9
Kesimpulan Terkait Tujuan Penelitian RO4.1 Dataset kualitas software pada umumnya bersifat tidak seimbang, sehingga
menurunkan kinerja
model prediksi
cacat
software, karena cenderung
menghasilkan kelas mayoritas. Untuk mengurangi pengaruh ketidakseimbangan kelas dapat menggunakan pendekatan level data dan level algoritma. Pada penelitian ini diusulkan model yang mengintegrasikan pendekatan level data menggunakan ROS (Random Over-Sampling) dan pendekatan level algoritma menggunakan AdaBoost dengan pengklasifikasi Naϊve Bayes. ROS ditujukan untuk menyeimbangkan kelas dalam dataset, sedangkan AdaBoost ditujukan untuk melakukan ensemble sehingga kinerja pengklasifikasi Naϊve Bayes dapat meningkat.
Penelitian
dilakukan
dengan
mengembangkan
model
yang
mengintegrasikan ROS, AdaBoost, dan Naϊve Bayes, mengimplementasikan pada 10 dataset dari NASA MDP repository dan 10 dataset dari PROMISE repository, mengukur kinerja yang dihasilkan, dan melakukan uji statistik untuk mengetahui signifikansi peningkatan kinerjanya. Hasil penelitian sesuai pembahasan subbab 4.2.4.1 menunjukkan bahwa model ROS+AB+NB tidak dapat meningkatkan kinerja model prediksi cacat software. Kontribusi ini sebagai jawaban dari masalah penelitian (RP3), rumusan masalah (RQ4.1), dan tujuan penelitian (RO4.1) pada penelitian ini.
5.1.10 Kesimpulan Terkait Tujuan Penelitian RO4.2 Dataset kualitas software pada umumnya bersifat tidak seimbang, sehingga menurunkan kinerja
model prediksi
cacat
software, karena cenderung
menghasilkan kelas mayoritas. Untuk mengurangi pengaruh ketidakseimbangan kelas dapat menggunakan pendekatan level data dan level algoritma. Pada penelitian ini diusulkan model yang mengintegrasikan pendekatan level data menggunakan RUS (Random Under-Sampling) dan pendekatan level algoritma menggunakan AdaBoost dengan pengklasifikasi Naϊve Bayes. RUS ditujukan untuk menyeimbangkan kelas dalam dataset, sedangkan AdaBoost ditujukan untuk melakukan ensemble sehingga kinerja pengklasifikasi Naϊve Bayes dapat meningkat.
Penelitian
dilakukan
dengan 286
mengembangkan
model
yang
mengintegrasikan RUS, AdaBoost, dan Naϊve Bayes, mengimplementasikan pada 10 dataset dari NASA MDP repository dan 10 dataset dari PROMISE repository, mengukur kinerja yang dihasilkan, dan melakukan uji statistik untuk mengetahui signifikansi peningkatan kinerjanya. Hasil penelitian sesuai pembahasan subbab 4.2.4.2 menunjukkan bahwa model RUS+AB+NB tidak dapat meningkatkan kinerja model prediksi cacat software. Kontribusi ini sebagai jawaban dari masalah penelitian (RP3), rumusan masalah (RQ4.2), dan tujuan penelitian (RO4.2) pada penelitian ini.
5.1.11 Kesimpulan Terkait Tujuan Penelitian RO4.3 Dataset kualitas software pada umumnya bersifat tidak seimbang, sehingga menurunkan kinerja
model prediksi
cacat
software, karena cenderung
menghasilkan kelas mayoritas. Untuk mengurangi pengaruh ketidakseimbangan kelas dapat menggunakan pendekatan level data dan level algoritma. Pada penelitian ini diusulkan model yang mengintegrasikan pendekatan level data menggunakan teknik sintesis FSMOTE dan pendekatan level algoritma menggunakan AdaBoost dengan pengklasifikasi Naϊve Bayes. FSMOTE ditujukan untuk menyeimbangkan kelas dalam dataset, sedangkan AdaBoost ditujukan untuk melakukan ensemble sehingga kinerja pengklasifikasi Naϊve Bayes dapat meningkat. Penelitian dilakukan dengan mengembangkan model yang
mengintegrasikan
FSMOTE,
AdaBoost,
dan
Naϊve
Bayes,
mengimplementasikan pada 10 dataset dari NASA MDP repository dan 10 dataset dari PROMISE repository, mengukur kinerja yang dihasilkan, dan melakukan uji statistik untuk mengetahui signifikansi peningkatan kinerjanya. Hasil penelitian sesuai
pembahasan
subbab
4.2.4.3
menunjukkan
bahwa
model
FSMOTE+AB+NB dapat meningkatkan kinerja model prediksi cacat software. Kontribusi ini sebagai jawaban dari masalah penelitian (RP3), rumusan masalah (RQ4.3), dan tujuan penelitian (RO4.3) pada penelitian ini.
5.1.12 Kesimpulan Terkait Tujuan Penelitian RO4.4 Dataset kualitas software pada umumnya bersifat tidak seimbang, sehingga menurunkan kinerja
model prediksi
cacat
software, karena cenderung
menghasilkan kelas mayoritas. Untuk mengurangi pengaruh ketidakseimbangan kelas dapat menggunakan pendekatan level data dan level algoritma. Pada 287
penelitian ini diusulkan model yang mengintegrasikan pendekatan level data menggunakan ROS (Random Over-Sampling) dan pendekatan level algoritma menggunakan Bagging dengan pengklasifikasi Naϊve Bayes. ROS ditujukan untuk menyeimbangkan kelas dalam dataset, sedangkan Bagging ditujukan untuk melakukan ensemble sehingga kinerja pengklasifikasi Naϊve Bayes dapat meningkat.
Penelitian
dilakukan
dengan
mengembangkan
model
yang
mengintegrasikan ROS, AdaBoost, dan Naϊve Bayes, mengimplementasikan pada 10 dataset dari NASA MDP repository dan 10 dataset dari PROMISE repository, mengukur kinerja yang dihasilkan, dan melakukan uji statistik untuk mengetahui signifikansi peningkatan kinerjanya. Hasil penelitian sesuai pembahasan subbab 4.2.4.4 menunjukkan bahwa model ROS+BG+NB tidak dapat meningkatkan kinerja model prediksi cacat software. Kontribusi ini sebagai jawaban dari masalah penelitian (RP3), rumusan masalah (RQ4.4), dan tujuan penelitian (RO4.4) pada penelitian ini.
5.1.13 Kesimpulan Terkait Tujuan Penelitian RO4.5 Dataset kualitas software pada umumnya bersifat tidak seimbang, sehingga menurunkan kinerja
model prediksi
cacat
software, karena cenderung
menghasilkan kelas mayoritas. Untuk mengurangi pengaruh ketidakseimbangan kelas dapat menggunakan pendekatan level data dan level algoritma. Pada penelitian ini diusulkan model yang mengintegrasikan pendekatan level data menggunakan RUS (Random Under-Sampling) dan pendekatan level algoritma menggunakan Bagging dengan pengklasifikasi Naϊve Bayes. RUS ditujukan untuk menyeimbangkan kelas dalam dataset, sedangkan Bagging ditujukan untuk melakukan ensemble sehingga kinerja pengklasifikasi Naϊve Bayes dapat meningkat.
Penelitian
dilakukan
dengan
mengembangkan
model
yang
mengintegrasikan RUS, AdaBoost, dan Naϊve Bayes, mengimplementasikan pada 10 dataset dari NASA MDP repository dan 10 dataset dari PROMISE repository, mengukur kinerja yang dihasilkan, dan melakukan uji statistik untuk mengetahui signifikansi peningkatan kinerjanya. Hasil penelitian sesuai pembahasan subbab 4.2.4.5 menunjukkan bahwa model RUS+BG+NB dapat meningkatkan kinerja model prediksi cacat software. Kontribusi ini sebagai jawaban dari masalah penelitian (RP3), rumusan masalah (RQ4.5), dan tujuan penelitian (RO4.5) pada penelitian ini. 288
5.1.14 Kesimpulan Terkait Tujuan Penelitian RO4.6 Dataset kualitas software pada umumnya bersifat tidak seimbang, sehingga menurunkan kinerja
model prediksi
cacat
software, karena cenderung
menghasilkan kelas mayoritas. Untuk mengurangi pengaruh ketidakseimbangan kelas dapat menggunakan pendekatan level data dan level algoritma. Pada penelitian ini diusulkan model yang mengintegrasikan pendekatan level data menggunakan teknik sintesis FSMOTE dan pendekatan level algoritma menggunakan Bagging dengan pengklasifikasi Naϊve Bayes. FSMOTE ditujukan untuk menyeimbangkan kelas dalam dataset, sedangkan Bagging ditujukan untuk melakukan ensemble sehingga kinerja pengklasifikasi Naϊve Bayes dapat meningkat.
Penelitian
dilakukan
dengan
mengembangkan
model
yang
mengintegrasikan FSMOTE, Bagging, dan Naϊve Bayes, mengimplementasikan pada 10 dataset dari NASA MDP repository dan 10 dataset dari PROMISE repository, mengukur kinerja yang dihasilkan, dan melakukan uji statistik untuk mengetahui signifikansi peningkatan kinerjanya. Hasil penelitian sesuai pembahasan subbab 4.2.4.6 menunjukkan bahwa model FSMOTE+BG+NB dapat meningkatkan kinerja model prediksi cacat software. Kontribusi ini sebagai jawaban dari masalah penelitian (RP3), rumusan masalah (RQ4.6), dan tujuan penelitian (RO4.6) pada penelitian ini.
5.1.15 Kesimpulan Terkait Tujuan Penelitian RO4.7 Pada penelitian ini dilakukan integrasi pendekatan level data dan level algoritma untuk mengurangi pengaruh ketidakseimbangan kelas. Pendekatan level data yang digunakan untuk menyeimbangkan kelas dalam dataset adalah Random Over-Sampling (ROS) dan Random Under-Sampling (RUS), dan teknik sintesis FSMOTE. Sedangkan pendekatan level algoritma yang digunakan untuk meningkatkan kinerja pengklasifikasi Naϊve Bayes adalah teknik ensemble AdaBoost dan Bagging. Dataset baru yang dihasilkan dari pendekatan level data digunakan untuk melatih model ensemble dengan pengklasifikasi Naϊve Bayes. Kinerja yang dihasilkan diukur dan dilakukan uji statistik. Uji statistik dilakukan dengan uji Friedman untuk mengetahui signifikansi perbedaan antar model. Pada pengukuran yang memiliki perbedaan signifikan dilakukan Nemenyi post hoc, meliputi perbandingan berpasangan, menghitung p-value, dan membuat tabel 289
signifikansi, serta dibuatkan diagram Demsar yang dimodifikasi. Hasil penelitian sesuai pembahasan subbab 4.2.4.7 menunjukkan bahwa integrasi FSMOTE, Bagging dan Naϊve Bayes (FSMOTE+BG+NB) pada model prediksi cacat software menghasilkan nilai rata-rata terbaik. Kontribusi ini sebagai jawaban dari masalah penelitian (RP3), rumusan masalah (RQ4.7), dan tujuan penelitian (RO4.7) pada penelitian ini.
5.1.16 Kesimpulan Terkait Tujuan Penelitian RO5 Penelitian ini menerapkan integrasi pendekatan level data dan level algoritma untuk mengurangi pengaruh ketidakseimbangan kelas pada model prediksi cacat software. Beberapa model dari kedua pendekatan telah menunjukkan adanya peningkatan secara signifikan. Pada pendekatan level data, model terbaiknya adalah FSMOTE+NB. Sedangkan pada pendekatan level algoritma, model terbaiknya adalah BG+NB. Untuk mengetahui pendekatan mana yang lebih baik, maka dilakukan uji statistik. Uji statistik dilakukan dengan uji Friedman untuk mengetahui signifikansi perbedaan antar model. Pada pengukuran yang memiliki perbedaan signifikan dilakukan Nemenyi post hoc, meliputi perbandingan berpasangan, menghitung p-value, dan membuat tabel signifikansi, serta dibuatkan diagram Demsar yang dimodifikasi. Hasil penelitian sesuai pembahasan subbab 4.2.5 menunjukkan bahwa model FSMOTE+NB lebih baik dari model BG+NB, sehingga disimpulkan bahwa pendekatan level data lebih baik dari level algoritma untuk menangani ketidakseimbangan kelas pada prediksi cacat software. Kontribusi ini sebagai jawaban dari masalah penelitian (RP3), rumusan masalah (RQ5), dan tujuan penelitian (RO5) pada penelitian ini.
5.1.17 Kesimpulan Terkait Tujuan Penelitian RO6 Penelitian ini menerapkan integrasi pendekatan level data, level algoritma, dan kombinasi keduanya untuk mengurangi pengaruh ketidakseimbangan kelas pada model prediksi cacat software. Berdasarkan uji statistik, beberapa model telah menunjukkan adanya peningkatan secara signifikan. Untuk mengetahui model mana yang terbaik untuk diterapkan sebagai model prediksi cacat software, maka dilakukan uji statistik terhadap model-model yang telah dibuat. Uji statistik dilakukan dengan uji Friedman untuk mengetahui signifikansi perbedaan antar model. Pada pengukuran yang memiliki perbedaan signifikan dilakukan Nemenyi 290
post hoc, meliputi perbandingan berpasangan, menghitung p-value, dan membuat tabel signifikansi, serta dibuatkan diagram Demsar yang dimodifikasi. Hasil penelitian sesuai pembahasan subbab 4.2.6 menunjukkan tidak ada model yang akurasinya meningkat atau menurun secara signifikan. Beberapa model menunjukkan peningkatan sensitivitas, F-Measure, G-Mean, dan AUC secara signifikan,
yaitu
ROS+BG+NB,
FSMOTE+BG+NB,
dan
RUS+BG+NB.
Berdasarkan nilai AUC, model FSMOTE+BG+NB merupakan model terbaik pada prediksi cacat software. Kontribusi ini sebagai jawaban dari masalah penelitian (RP3), rumusan masalah (RQ6), dan tujuan penelitian (RO6) pada penelitian ini.
5.2
Saran Penelitian ini telah memberikan beberapa kontribusi untuk menangani
ketidakseimbangan kelas pada model prediksi cacat software. Beberapa hasil penelitian mungkin akan mendorong adanya penelitian lanjutan di masa depan, baik yang menunjukkan hasil positif maupun yang negatif. Beberapa saran terkait hasil penelitian ini dan penelitian lanjutan untuk menangani ketidakseimbangan kelas pada model prediksi cacat software antara lain: a. Hasil penelitian telah menyatakan bahwa AdaBoost tidak dapat meningkatkan kinerja pengklasifikasi Naïve Bayes pada prediksi cacat software. Hal ini bertentangan dengan hasil penelitian yang menyatakan bahwa AdaBoost dapat meningkatkan kinerja Naϊve Bayes (Korada, Kumar, & Deekshitulu, 2012, p. 73). Tetapi menegaskan hasil penelitian yang menyatakan bahwa boosting tidak bekerja dengan baik pada pengklasifikasi Naϊve Bayes, karena merupakan pengklasifikasi yang stabil dengan bias yang kuat (Ting & Zheng , 2003, p. 199). Penelitian lanjutan mungkin dapat dilakukan dengan menerapkan bayesian boosting yang
menerapkan
prosedur
subkelompok
penemuan
(subgroup
discovery) (Scholz, 2005), atau AdaC2 yang merupakan pengembangan AdaBoost dengan menerapkan biaya sensitif (cost-sensitive) pada pembobotan yang telah terindikasi unggul (Sun, Mohamed, Wong, & Wang, 2007, p. 3375). b. Beberapa model yang diusulkan telah menunjukkan bahwa ada peningkatan kinerja secara signifikan antara lain RUS+BG+NB, 291
ROS+BG+NB,
dan
FSMOTE+BG+NB.
Berdasarkan
penelitian
sebelumnya, integrasi pendekatan data menggunakan seleksi fitur dengan algoritma PSO dan GA dengan Bagging menunjukkan adanya peningkatan kinerja yang signifikan (Wahono, Suryana, & Ahmad, 2014, p.
1331).
Maka
dapat
dilakukan
penelitian
lanjutan
dengan
mengintegrasikan seleksi fitur (PSO atau GA), pendekatan data (RUS, ROS, atau FSMOTE) dan Bagging. c. Logistic Regression dan Naϊve Bayes memiliki kinerja yang relatif baik ketika diterapkan pada NASA MDP dataset (Wahono, Suryana, & Ahmad, 2014, p. 1329). Maka dapat dilakukan penelitian lanjutan untuk mendapatkan model prediksi cacat software yang lebih baik dengan mengganti pengklasifikasi Naϊve Bayes dengan Logistic Regression.
292
REFERENSI
Afza, A. J., Farid, D. M., & Rahman, C. M. (2011). A Hybrid Classifier using Boosting, Clustering, and Naïve Bayesian Classifier. World of Computer Science and Information Technology Journal (WCSIT), 105-109. Afzal, W., & Torkar, R. (2008). Lessons from Applying Experimentation in Software
Engineering
Prediction
Systems.
Asia-Pacific
Software
Engineering Conference - Workshop Proceedings, 35-43. Alfaro, E., Gamez, M., & Garcia, N. (2013). adabag: An R Package for Classification with Boosting and Bagging. Journal of Statistical Software, 1-35. Alpaydın, E. (2010). Introduction to Machine Learning (Second ed.). Cambridge, London: The MIT Press. Anantula, P. R., & Chamarthi, R. (2011). Defect Prediction and Analysis Using ODC Approach in a Web Application. (IJCSIT) International Journal of Computer Science and Information Technologies, 2(5), 2242-2245. Attenberg, J., & Ertekin, S. (2013). Class Imbalance and Active Learning. In H. He, & Y. Ma, Imbalanced Learning: Foundations, Algorithms, and Applications (pp. 101-149). New Jersey: John Wiley & Sons. Batuwita, R., & Palade, V. (2010). Efficient Resampling Methods for Training Support Vector Machines with Imbalanced Datasets. Proceedings of the International Joint Conference on Neural Networks (IJCNN) (pp. 1-8). Barcelona: IEEE Computer Society. doi:10.1109/IJCNN.2010.5596787 Berndtsson, M., Hansson, J., Olsson, B., & Lundell, B. (2008). Thesis Projects: A Guide for Students in Computer Science and Information Systems (2nd ed.). London: Springer-Verlag. Blaxter, L., Hughes, C., & Tight, M. (2010). How to Research (4th ed.). Maidenhead: Open University Press. Bramer, M. (2007). Principles of Data Mining. London: Springer. Carver, R. H., & Nash, J. G. (2012). Doing Data Analysis with SPSS® Version 18. Boston: Cengage Learning.
293
Catal, C. (2012). Performance Evaluation Metrics for Software Fault Prediction Studies. Acta Polytechnica Hungarica, 9(4), 193-206. Catal, C., & Diri, B. (2009). Investigating the Effect of Dataset Size, Metrics Sets, and Feature Selection Techniques on Software Fault Prediction Problem. Information Sciences, 1040–1058. Chawla, N. V., Bowyer, K. W., Hall, L. O., & Kegelmeyer, W. P. (2002). SMOTE: Synthetic Minority Over-sampling Technique. Journal of Artificial Intelligence Research, 321–357. Chawla, N. V., Lazarevic, A., Lawrence, H. O., & Bowyer, K. W. (2003). SMOTEBoost: Improving Prediction of the Minority Class in Boosting. Principles and Practice of Knowledge Discovery in Databases, (pp. 107119). Dubrovnik. Chiş, M. (2008). Evolutionary Decision Trees and Software Metrics for Module Defects Identification. World Academy of Science, Engineering and Technology, 273-277. Corder, G. W., & Foreman, D. I. (2009). Nonparametric Statistics for Nonstatisticians: A Step-by-step Approach. New Jersey: John Wiley & Sons. Dawson, C. W. (2009). Projects in Computing and Information Systems A Student’s Guide (2nd ed.). Great Britain: Pearson Education. DeMarco, T. (2009, July/August). Software Engineering: An Idea Whose Time Has Come and Gone? (D. Taylor, Ed.) IEEE Software, pp. 95-96. Demšar, J. (2006). Statistical Comparisons of Classifiers over Multiple Data Sets. Journal of Machine Learning Research, 1–30. Dubey, R., Zhou, J., Wang, Y., Thompson, P. M., & Ye, J. (2014). Analysis of Sampling Techniques for Imbalanced Data: An n = 648 ADNI Study. NeuroImage, 220–241. Estabrooks, A., Jo, T., & Japkowicz, N. (2004). Multiple Resampling Method for Learning from Imbalanced Data Sets. Computational Intelligence, 20(1), 18-36. Fakhrahmad, S. M., & Sami, A. (2009). Effective Estimation of Modules' Metrics in Software Defect Prediction. Proceedings of the World Congress on Engineering (pp. 206-211). London: Newswood Limited.
294
Galar, M., Fernández, A., Barrenechea, E., & Herrera, F. (2013). EUSBoost: Enhancing Ensembles for Highly Imbalanced Data-sets by Evolutionary Under Sampling. Pattern Recognition, 3460–3471. García, S., Fernández, A., Luengo, J., & Herrera, F. (2010). Advanced Nonparametric Tests for Multiple Comparisons in the Design of Experiments
in
Computational
Intelligence
and
Data
Mining:
Experimental Analysis of Power. Information Sciences, 2044–2064. Gayatri, N., Nickolas, S., Reddy, A., & Chitra, R. (2009). Performance Analysis Of Data Mining Algorithms for Software Quality Prediction. International Conference on Advances in Recent Technologies in Communication and Computing (pp. 393-395). Kottayam: IEEE Computer Society. Goodman, P. (2004). Software Metrics: Best Practices for Successful IT Management. Connecticut: Philip Jan Rothstein. Gorunescu, F. (2011). Data Mining: Concepts, Models and Techniques. Berlin: Springer-Verlag. Gray, D., Bowes, D., Davey, N., Sun, Y., & Christianson, B. (2010). Software Defect Prediction Using Static Code Metrics Underestimates DefectProneness. International Joint Conference on Neural Networks (pp. 1-7). Barcelona: IEEE Computer Society. Gray, D., Bowes, D., Davey, N., Sun, Y., & Christianson, B. (2011). The Misuse of the NASA Metrics Data Program Data Sets for Automated Software Defect Prediction. Evaluation & Assessment in Software Engineering (EASE 2011), 15th Annual Conference on, (pp. 96-103). Durham. Hall, T., Beecham, S., Bowes, D., Gray, D., & Counsell, S. (2011). A Systematic Literature Review on Fault Prediction Performance in Software Engineering. IEEE Transactions on Software Engineering, Accepted for publication - available online, 1-31. Han, H., Wang, W.-Y., & Mao, B.-H. (2005). Borderline-SMOTE: A New OverSampling Method in Imbalanced Data Sets Learning. International Conference on Intelligent Computing (pp. 878-887). Hefei: Springer Berlin Heidelberg. Han, J., Kamber, M., & Pei, J. (2011). Data Mining: Concepts and Techniques (3rd ed.). San Francisco: Morgan Kaufmann Publishers Inc.
295
Hand, D. J. (2009). Naïve Bayes. In X. Wu, & V. Kumar (Eds.), The Top Ten Algorithms in Data Mining (pp. 163-177). Boca Raton, Florida: Chapman & Hall/CRC. Harrington, P. (2012). Machine Learning in Action. New York: Manning Publications Co. He, H., & Garcia, E. A. (2009, September). Learning from Imbalanced Data. IEEE Transactions on Knowledge and Data Engineering, 21(9), 12631284. Huck, S. W. (2012). Reading Statistics and Research. Boston: Pearson Education. In, H. P., Baik, J., Kim, S., Yang, Y., & Boehm, B. (2006, December). A QualityBased Cost Estimation Model for the Product Line Life Cycle. Communications
of
the
ACM,
49(12),
85-88.
doi:10.1145/1183236.1183273 Jain, M., & Richariya, V. (2012, January). An Improved Techniques Based on Naive Bayesian for Attack Detection. International Journal of Emerging Technology and Advanced Engineering, 2(1), 324-331. Japkowicz, N. (2013). Assessment Metrics for Imbalanced Learning. In H. He, & Y. Ma, Imbalanced Learning: Foundations, Algorithms, and Applications (pp. 187-206). New Jersey: John Wiley & Sons. Japkowicz, N., & Stephen, S. (2002). The Class Imbalance Problem: A Systematic Study. Intelligent Data Analysis, 429-449. Jones, C. (2013). Software Defect Origins and Removal Methods. Namcook Analytics. Khoshgoftaar, T. M., Gao, K., & Seliya, N. (2010). Attribute Selection and Imbalanced Data: Problems in Software Defect Prediction. International Conference on Tools with Artificial Intelligence (pp. 137-144). IEEE Computer Society. Korada, N. K., Kumar, N. P., & Deekshitulu, Y. (2012). Implementation of Naïve Bayesian Classifier and Ada-Boost Algorithm Using Maize Expert System. International Journal of Information Sciences and Techniques (IJIST) Vol.2, No.3, 63-75. Korb, K. B., & Nicholson, A. E. (2011). Bayesian Artificial Intelligence (2nd ed.). Florida: CRC Press.
296
Kumar, V., Sharma, A., & Kumar, R. (2013). Applying Soft Computing Approaches to Predict Defect Density in Software Product Releases. An Empirical Study. Computing and Informatics, 203-224. Laza, R., Pavón, R., Reboiro-Jato, M., & Fdez-Riverola, F. (2011). Evaluating the Effect of Unbalanced Data in Biomedical Document Classification. Journal of Integrative Bioinformatics (JIB), 1-13. Lehtinen, T. O., Mäntylä, M. V., Vanhanen, J., Itkonen, J., & Lassenius, C. (2014). Perceived Causes of Software Project Failures - An Analysis of Their Relationships. Information and Software Technology, 623–643. Lessmann, S., Baesens, B., Mues, C., & Pietsch, S. (2008). Benchmarking Classification Models for Software Defect Prediction: A Proposed Framework and Novel Findings. IEEE Transactions on Software Engineering, 485-496. Liang, G., & Zhang, C. (2011). Empirical Study of Bagging Predictors on Medical Data. Proceedings of the 9-th Australasian Data Mining Conference (AusDM'11) (pp. 31-40). Ballarat, Australia: Australian Computer Society, Inc. Liang, G., Zhu, X., & Zhang, C. (2011). An Empirical Study of Bagging Predictors for Different Learning Algorithms. Proceedings of the TwentyFifth AAAI Conference on Artificial Intelligence (pp. 1802-1803). California: AAAI Press. Liebchen, G. A., & Shepperd, M. (2008). Data Sets and Data Quality in Software Engineering. Proceedings of the 4th international workshop on Predictor models in software engineering (pp. 39-44). Leipzig, Germany: ACM. Liu, X.-Y., & Zhou, Z.-H. (2013). Ensemble Methods for Class Imbalance Learning. In H. He, & Y. Ma, Imbalanced Learning: Foundations, Algorithms, and Applications (pp. 61-82). New Jersey: John Wiley & Sons. López, V., Fernández, A., & Herrera, F. (2014). On the Importance of the Validation Technique for Classification with Imbalanced Datasets: Addressing Covariate Shift when Data is Skewed. Information Sciences, 1–13. doi:10.1016/j.ins.2013.09.038 McDonald, M., Musson, R., & Smith, R. (2008). The Practical Guide to Defect Prevention. Washington: Microsoft Press. 297
Menzies, T., Greenwald, J., & Frank, A. (2007). Data Mining Static Code Attributes to Learn Defect Predictors. IEEE Transactions on Software Engineering, 1-12. Myatt, G. J. (2007). Making Sense of Data A Practical Guide to Exploratory Data Analysis and Data Mining. Hoboken, New Jersey: John Wiley & Sons, Inc. Myrtveit, I., Stensrud, E., & Shepperd, M. (2005). Reliability and Validity in Comparative Studies of Software Prediction Models. IEEE Transactions on Software Engineering, 380-391. Pelayo, L., & Dick, S. (2007). Applying Novel Resampling Strategies To Software Defect Prediction. NAFIPS 2007 - 2007 Annual Meeting of the North American Fuzzy Information Processing Society (pp. 69-72). San Diego, CA: IEEE Computer Society. doi:10.1109/NAFIPS.2007.383813 Peng, Y., & Yao, J. (2010). AdaOUBoost: Adaptive Over-sampling and Undersampling to Boost the Concept Learning in Large Scale Imbalanced Data Sets. Proceedings of the international conference on Multimedia information retrieval (pp. 111-118). Philadelphia, Pennsylvania, USA: ACM. Refaeilzadeh, P., Tang, L., & Liu, H. (2009). Cross-Validation. In L. Liu, & M. T. Özsu, Encyclopedia of Database Systems (pp. 532-538). Arizona: Springer US. Riquelme, J. C., Ruiz, R., Rodriguez, D., & Moreno, J. (2008). Finding Defective Modules From Highly Unbalanced Datasets. Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos (pp. 67-74). Gijon, España: SISTEDES. Rodriguez, D., Herraiz, I., Harrison, R., Dolado, J., & Riquelme, J. C. (2014). Preliminary Comparison of Techniques for Dealing with Imbalance in Software Defect Prediction. 18th International Conference on Evaluation and Assessment in Software Engineering (EASE 2014) (pp. 371-380). New York: ACM. doi:10.1145/2601248.2601294 Rokach, L. (2010). Ensemble-based classifiers. Artificial Intelligence Review, 33(1-2), 1-39. Scholz, M. (2005). Knowledge-Based Sampling for Subgroup Discovery. In K. Morik, J.-F. Boulicaut, & A. Siebes, Local Pattern Detection. Volume 298
3539 of Lecture Notes in Computer Science (pp. 171-189). Dagstuhl Castle: Springer Berlin Heidelberg. doi:10.1007/11504245_11 Seiffert, C., Khoshgoftaar, T. M., Hulse, J. V., & Folleco, A. (2011). An Empirical Study of the Classification Performance of Learners on Imbalanced and Noisy Software Quality Data. Information Sciences, 1-25. Seiffert, C., Khoshgoftaar, T. M., Hulse, J. V., & Napolitano, A. (2008). Building Useful Models from Imbalanced Data with Sampling and Boosting. Proceedings of the Twenty-First International Florida Artificial Intelligence Research Society Conference (pp. 306-311). California: AAAI Press. Seiffert, C., Khoshgoftaar, T. M., Hulse, J. V., & Napolitano, A. (2008). Resampling or Reweighting: A Comparison of Boosting Implementations. 20th IEEE International Conference on Tools with Artificial Intelligence, 445-451. Seiffert, C., Khoshgoftaar, T. M., Hulse, J. V., & Napolitano, A. (2010). RUSBoost: A Hybrid Approach to Alleviating Class Imbalance. IEEE Transactions on Systems, Man, and Cybernetics, Part A: Systems and Humans, 40(1), 185-197. doi:10.1109/TSMCA.2009.2029559 Shepperd, M., Song, Q., Sun, Z., & Mair, C. (2013). Data Quality: Some Comments on the NASA Software Defect Data Sets. IEEE Transactions on Software Engineering, 1208-1215. doi:10.1109/TSE.2013.11 Shull, F., Basili, V., Boehm, B., Brown, A. W., Costa, P., Lindvall, M., . . . Zelkowitz, M. (2002). What We Have Learned About Fighting Defects. METRICS '02 Proceedings of the 8th International Symposium on Software Metrics (pp. 249-258). Washington: IEEE Computer Society. Song, Q., Jia, Z., Shepperd, M., Ying, S., & Liu, J. (2011). A General Software Defect-Proneness Prediction Framework. IEEE Transactions on Software Engineering, 356-370. Steinbach, M., & Tan, P.-N. (2009). kNN: k-Nearest Neighbors. In X. Wu, & V. Kumar (Eds.), The Top Ten Algorithms in Data Mining (pp. 151-161). Boca Raton, Florida: Chapman and Hall/CRC. Strangio, M. A. (2009). Recent Advances in Technologies. Vukovar: In-Teh.
299
Sun, Y., Mohamed, K. S., Wong, A. K., & Wang, Y. (2007). Cost-sensitive Boosting for Classification of Imbalanced Data. Pattern Recognition Society, 3358-3378. Tao, W., & Wei-hua, L. (2010). Naïve Bayes Software Defect Prediction Model. Computational Intelligence and Software Engineering (CiSE) (pp. 1-4). Wuhan: IEEE Computer Society. doi:10.1109/CISE.2010.5677057 Ting, K. M., & Zheng, Z. (2003). A Study of AdaBoost with Naive Bayesian Classifiers: Weakness and Improvement. Computational Intelligence, 19(2), 186-200. doi:10.1111/1467-8640.00219 Turhan, B., & Bener, A. (2007). Software Defect Prediction: Heuristics for Weighted Naive Bayes. Proceedings of the 2nd International Conference on Software and Data Technologies (ICSOFT'07), (pp. 244-249). Turhan, B., & Bener, A. (2009). Analysis of Naive Bayes’ Assumptions on Software Fault Data: An Empirical Study. Data & Knowledge Engineering, 68(2), 278–290. doi:10.1016/j.datak.2008.10.005 Vercellis, C. (2009). Business Intelligence- Data Mining and Optimization for Decision Making. West Sussex: John Wiley & Sons. Verma, J. P. (2013). Data Analysis in Management with SPSS Software. New Delhi: Springer. Wahono, R. S., Suryana, N., & Ahmad, S. (2014, May). Metaheuristic Optimization based Feature Selection for Software Defect Prediction. Journal of Software, 9(5), 1324-1333. doi:10.4304/jsw.9.5.1324-1333 Wang, S., & Yao, X. (2013). Using Class Imbalance Learning for Software Defect Prediction. IEEE Transactions on Reliability, 434-443. Weiss, C., Premraj, R., Zimmermann, T., & Zeller, A. (2007). How Long will it Take to Fix This Bug? Fourth International Workshop on Mining Software Repositories (MSR'07) (pp. 1-8). Washington: IEEE Computer Society. Weiss, G. M. (2004). Mining with Rarity: A Unifying Framework. Sigkdd Explorations, 6(1), 7-19. Weiss, G. M. (2013). Foundations of Imbalanced Learning. In H. He, & Y. Ma, Imbalanced Learning: Foundations, Algorithms, and Applications (pp. 1341). New Jersey: John Wiley & Sons. Witten, I. H., Frank, E., & Hall, M. A. (2011). Data Mining: Practical Machine Learning Tools and Techniques (3rd ed.). Burlington: Morgan Kaufmann. 300
Yap, B. W., Rani, K. A., Rahman, H. A., Fong, S., Khairudin, Z., & Abdullah, N. N. (2014). An Application of Oversampling, Undersampling, Bagging and Boosting in Handling Imbalanced Datasets. Proceedings of the First International Conference on Advanced Data and Information Engineering (DaEng-2013). 285, pp. 13-22. Singapore: Springer. doi:10.1007/978-9814585-18-7_2 Yu, C. H. (2003, September 29). Resampling Methods: Concepts, Applications, and Justification. Practical Assessment, Research & Evaluation, 8(19), 119.
Retrieved
Mei
18,
2014,
from
http://pareonline.net/getvn.asp?v=8&n=19 Zhang, D., Liu, W., Gong, X., & Jin, H. (2011). A Novel Improved SMOTE Resampling Algorithm Based on Fractal. Computational Information Systems, 2204-2211. Zhang, H., & Wang, Z. (2011). A Normal Distribution-Based Over-Sampling Approach to Imbalanced Data Classification. Advanced Data Mining and Applications - 7th International Conference (pp. 83-96). Beijing: Springer. Zhang, H., Jiang, L., & Su, J. (2005). Augmenting Naϊve Bayes for Ranking. ICML '05 Proceedings of the 22nd international conference on Machine learning
(pp.
1020
-
1027).
New
York:
ACM
Press.
doi:http://dx.doi.org/10.1145/1102351.1102480 Zhou, Z.-H., & Liu, X.-Y. (2006). Training Cost-Sensitive Neural Networks with Methods Addressing the Class Imbalance Problem. IEEE Transactions on Knowledge and Data Engineering, 63-77. Zhou, Z.-H., & Yu, Y. (2009). The Top Ten Algorithms in Data Mining. (X. Wu, & V. Kumar, Eds.) Florida: Chapman & Hall/CRC.
301
1 2 3 4 5 6 7 8 9 10 : : 48 60 80 120 240 Inf
df
2 17,969 6,085 4,501 3,926 3,635 3,46 3,344 3,261 3,199 3,151 : : 2,843 2,829 2,814 2,8 2,786 2,772
3 26,976 8,331 5,91 5,04 4,602 4,339 4,165 4,041 3,948 3,877 : : 3,42 3,399 3,377 3,356 3,335 3,314
4 32,819 9,798 6,825 5,757 5,218 4,896 4,681 4,529 4,415 4,327 : : 3,764 3,737 3,711 3,685 3,659 3,633
5 37,082 10,881 7,502 6,287 5,673 5,305 5,06 4,886 4,755 4,654 : : 4,008 3,977 3,947 3,917 3,887 3,858
6 40,408 11,734 8,037 6,706 6,033 5,628 5,359 5,167 5,024 4,912 : : 4,197 4,163 4,129 4,096 4,063 4,03
7 43,119 12,435 8,478 7,053 6,33 5,895 5,606 5,399 5,244 5,124 : : 4,351 4,314 4,277 4,241 4,205 4,17
8 45,397 13,027 8,852 7,347 6,582 6,122 5,815 5,596 5,432 5,304 : : 4,481 4,441 4,402 4,363 4,324 4,286
Studentized Range Critical Values for Multiple Comparison 9 47,357 13,539 9,177 7,602 6,801 6,319 5,997 5,767 5,595 5,46 : : 4,592 4,55 4,509 4,468 4,427 4,387
10 49,071 13,988 9,462 7,826 6,995 6,493 6,158 5,918 5,738 5,598 : : 4,69 4,646 4,603 4,56 4,517 4,474
k 11 50,592 14,389 9,717 8,027 7,167 6,649 6,302 6,053 5,867 5,722 : : 4,777 4,732 4,686 4,641 4,596 4,552 12 51,957 14,749 9,946 8,208 7,323 6,789 6,431 6,175 5,983 5,833 : : 4,856 4,808 4,761 4,714 4,668 4,622
13 53,194 15,076 10,155 8,373 7,466 6,917 6,55 6,287 6,089 5,935 : : 4,927 4,878 4,829 4,781 4,733 4,685
14 54,323 15,375 10,346 8,524 7,596 7,034 6,658 6,389 6,186 6,028 : : 4,993 4,942 4,892 4,842 4,792 4,743
15 55,361 15,65 10,522 8,664 7,716 7,143 6,759 6,483 6,276 6,114 : : 5,053 5,001 4,949 4,898 4,847 4,796
16 56,32 15,905 10,686 8,793 7,828 7,244 6,852 6,571 6,359 6,194 : : 5,109 5,056 5,003 4,95 4,897 4,845
17 57,212 16,143 10,838 8,914 7,932 7,338 6,939 6,653 6,437 6,269 : : 5,161 5,107 5,052 4,998 4,944 4,891
18 58,044 16,365 10,98 9,027 8,03 7,426 7,02 6,729 6,51 6,339 : : 5,21 5,154 5,099 5,043 4,988 4,934
19 58,824 16,573 11,114 9,133 8,122 7,508 7,097 6,801 6,579 6,405 : : 5,256 5,199 5,142 5,086 5,03 4,974
20 59,558 16,769 11,24 9,233 8,208 7,586 7,169 6,869 6,643 6,467 : : 5,299 5,241 5,183 5,126 5,069 5,012
LAMPIRAN-LAMPIRAN
Lampiran 1 Studentized Range Critical Values for Multiple Comparison
302
DAFTAR RIWAYAT HIDUP
a. Data Personal NPM
: 3712101122
Nama
: Aries Saifudin
Tempat / Tgl. Lahir
: Malang / 09 April 1977
Jenis Kelamin
: Laki-laki
Agama
: Islam
Status Perkawinan
: Menikah
Jenjang
: Strata 2 (S2) Magister Komputer
Program Studi
: Teknik Informatika
Alamat Rumah
: Jln. Tanah Kusir IV No. 40 RT 002/RW 009 Kebayoran Lama Selatan, Kebayoran Lama, Jakarta Selatan, DKI Jakarta 12240
Telp.
: 08128838485 / 08158012019
Email
: [email protected]
ID Messeger
: [email protected]
Personal Web : https://ariessaifudin.wordpress.com/ Pekerjaan
: Dosen
Jabatan
: Dosen Tetap
Alamat Kantor
: Jl. Surya Kencana No. 1 Pamulang, Tangerang Selatan
Telp.
: (021) 74709855
Email
: [email protected]
Fax.
: (021) 7412566
Alamat Web
: http://www.unpam.ac.id/
303
b. Pendidikan Jenjang
Nama Lembaga
Tahun
Jurusan
Gelar
Lulus
SD
SDN Wonoagung I
1990
SMP
SMPN Kasembon
1993
SMA
SMAN Batu
Fisika
1996
Politeknik Universitas
Teknik Elektronika
2000
A.Md.
PT
Brawijaya PT
Universitas Mercu Buana
Teknik Informatika
2006
S.T.
PT
STMIK ERESHA
Teknik Informatika
2014
M.Kom.
Demikianlah daftar riwayat hidup ini dibuat dengan sebenarnya.
Jakarta, 10 September 2014 Mahasiswa Ybs.
304