TESIS
PEMILIHAN ATRIBUT UNTUK PENENTUAN TINGKAT SEVERITY BERDASARKAN HASIL KLASIFIKASI SUPPORT VECTOR MACHINE
Ghaluh Indah Permata Sari 5109201054 Pembimbing : Daniel Oranova Siahaan S.Kom, Msc, PD.Eng Umi Laili Yuhana, S.Kom, Msc
Latar Belakang Penelitian Selama
ini, pengguna laporan bug menentukan tipe severity sesuai persepsi dan estimasinya. Pentingnya ketepatan penentuan tipe severity bug dikarenakan proses penyelesaian suatu bug tergantung tipe severitynya.
Penelitian Sebelumnya Severis (Menzies & Marcus, 2008)
Melakukan klasifikasi tipe severity bug pada sistem pelacakan bug Nasa IV&V (komersial). Metode yang digunakan adalah Rule Learning Data yang digunakan sebanyak 3875 bug. Atribut yang digunakan dalam klasifikasi hanya 1 yaitu comment (jika pada bugzilla adalah summary).
Predicting
Eclipse Bug Lifetimes (Panjer, 2007)
High level atribut : severity, op_sys, comment, version, product, component Low level atribut : priority, assigned to
Tujuan Penelitian Memilih
term penting dari atribut – atribut pada laporan bug open source (Bugzilla) sesuai tipe severitynya, serta memberikan rekomendasi atribut penting yang akan digunakan pada proses klasifikasi dengan metode Support Vector Machine Multiclass.
Kontribusi Penelitian
Penentuan
atribut penting yang berpengaruh signifikan terhadap proses klasifikasi. Perbaikan akurasi klasifikasi tipe severity bug menggunakan SVM Multiclass.
Data
Data
diambil dari laporan bug Bugzilla sebanyak 17746 bug, yang dibagi menjadi 2 :
Pelatihan 16.146 bug Pengujian 1.600 bug
Desain Penelitian PEMBOBOTAN
PELATIHAN
Pre Proses Tokenizing
Data Atribut Summary
Pembobotan Data Text (TF*IDF)
Filtering
Data pelatihan dari N atribut
Matriks bobot TF*IDF Pengurutan term sesuai bobot
Stemming
Data Atribut selain Summary
Pengelompokkan data (Enumerasi)
Penghitungan peluang kemunculan Data Numerik
Penghitungan Infogain
Urutan atribut penting
Rekomendasi atribut penting
Matriks nilai peluang
Pembuatan matrik Inputan untuk SVM Pemasangan term sesuai urutan pada laporan bug
Penomoran term atribut selain Summary
KLASIFIKASI Matrik Term sesuai atribut
Pembentukkan SVM biner untuk masing-masing kelas
MatriksBiner Biner Matriks Matriks Biner Matriks Biner Kelas-1 Matriks Biner Kelas-1 Kelas-1 Matriks Biner Kelas-1 Kelas-1 Kelas-1
Klasifikasi Multiclass (SVM Multiclass)
Hyperplane
PENGUJIAN Pre Proses
Data Atribut Summary
Data pelatihan dari M atribut Data Atribut selain Summary
Filtering
Pembobotan Data Text (TF*IDF)
Matriks bobot TF*IDF
Stemming
Pengelompokkan data (Enumerasi)
Penghitungan peluang kemunculan Data Numerik
Matriks nilai peluang
Pembuatan matrik inputan untuk SVM
PEMBOBOTAN
Tokenizing
Penomoran term atribut selain Summary
Pemasangan term sesuai urutan pada laporan bug
Klasifikasi Multiclass (SVM Multiclass)
KLASIFIKASI
Data Terklasifikasi
Metodologi Penelitian
Preproses
Pembobotan
TF*IDF, untuk term dari atribut summary. Penghitungan peluang, untuk term dari atribut selain summary.
Infogain Pelatihan
Tokenizing Filtering Stemming
Klasifikasi SVM multiclass dengan 7 atribut termasuk pelatihan skenario 1 Klasifikasi SVM multiclass dengan 1 atribut yaitu summary pelatihan skenario 2 Klasifikasi SVM multiclass dengan 4 atribut yang memiliki nilai infogain tinggi (diatas 0,3) pelatihan skenario 2 Klasifikasi SVM multiclass dengan 3 atribut yang memiliki nilai infogain rendah (dibawah 0,3) pelatihan skenario 2
Pengujian
Klasifikasi SVM multiclass dengan 7 atribut. Klasifikasi SVM multiclass dengan 1 atribut yaitu summary pengujian skenario 1 & 2 Klasifikasi SVM multiclass dengan 4 atribut yang memiliki nilai infogain tinggi (diatas 0,3) pengujian skenario 1 & 2 Klasifikasi SVM multiclass dengan 3 atribut yang memiliki nilai infogain rendah (dibawah 0,3) pengujian skenario 1 & 2
Hasil Infogain Atribut
Infogain
Qa_contact
0,97
Component
0,91
Summary
0,47
Product
0,33
Version
0,17
Op_sys
0,1
Priority
0,02
Hasil SVM Hasil pelatihan SVM dengan 7 atribut
Hasil pengujian SVM dengan 7 atribut
Skenario 1 Hasil pengujian SVM dengan 1 atribut summary, 4 atribut tinggi, 3 atribut rendah
Skenario 2 Hasil pelatihan SVM skenario 2 dengan 1 atribut (summary)
Hasil pengujian SVM skenario 2 dengan 1 atribut (summary)
Hasil pelatihan SVM dengan 4 atribut tinggi
Hasil pengujian SVM dengan 4 atribut tinggi
Hasil pelatihan dan pengujian SVM dengan 3 atribut rendah
Bad mouve : kondisi dimana tidak ditemukannya support vector yang tepat untuk membagi tiap – tiap kelas
Kesimpulan
Pemilihan jenis term yang unik dapat membantu meningkatkan akurasi klasifikasi tipe severity. SVM Multiclass sesuai untuk jenis data dengan dimensi atribut 7 dan jumlah data set sebanyak 17.746. Atribut yang signifikan mempengaruhi tingkat akurasi klasifikasi tipe severity pada laporan bug Bugzilla adalah qa_contact, component, summary, product dengan nilai infogain diatas 0,3. Atribut yang tidak signifikan mempengaruhi tingkat akurasi kasifikasi tipe severity pada laporan bug Bugzilla adalah version, op_sys, priority dengan nilai infogain dibawah 0,3.
Data Bug
Praproses
Teks Tokenizing Kategorikal Filtering
Stemming
Tokenizing
Penghitungan Bobot Co mp on en t
Pr ior ity
Ve rs
13
0
0
0
critical
281
280
564
270
1
236
major
15
7
0
0
major
392
407
765
420
1
341
normal
66
10
93
17
normal
390
51
4888
2451
36
0
minor
0
1
0
4
minor
134
129
344
205
2
110
trivial
0
0
0
0
trivial
38
53
202
73
2
34
8
0
1
3
enhancement
80
2
503
330
0
0
0
critical
0,479
0,477
0,96
0,459
0,002
0,402
0,489
0,507
0,95
0,524
0,001
0,425
0,07
0,009
0,88
0,44
0,006
0
enhancement
co nta c
ys
ion
Op _s
Qa _
kemunculan
idf = log2(N/df)
Hitung idf Hitung bobot tf*idf
w = tf * idf
critical
Bobot hasil tf*idf
t
Pr od uc t
critical
Term hasil praproses atribut summary
tf & df
Term hasil praproses atribut selain summary
0,02
0
0
major
0,058
0,046
0
0
major
normal
0,06
0,016
0,232
0,027
normal
minor
0
0,019
0
0,075
minor
0,364
0,35
0,94
0,558
0,005
0,299
trivial
0
0
0
0
trivial
0,185
0,258
0,98
0,356
0,009
0,166
0,92
0,606
0
0
enhancement
0,046
0
0,016
0,029
enhancement
0,147
0,004
Perankingan sesuai urutan bobot terbesar sampai terkecil sesuai atribut dan severitynya
Bobot hasil peluang
Infogain Proses penghitungan entropy severity N severity = N critical + N trivial + N normal + N minor + N major + N enhancement
S critical = - (N critical / N severity) log2 (N critical / N severity)
S normal = - (N normal / N severity) log2 (N normal / N severity)
S enhancement = - (N enhancement / N severity) log2 (N enhancement / N severity)
S minor = - (N minor / N severity) log2 (N minor / N severity)
S major = - (N major / N severity) log2 (N major / N severity)
S severity = S critical + S trivial + S major + S minor + S enhancement + S normal
Entropy masing - masing severity
S trivial = - (N trivial / N severity) log2 (N trivial / N severity)
Proses penghitungan entropy pada atribut Nfennec = Nfennec_critical + Nfennec_trivial + Nfennec_normal + Nfennec_minor + Nfennec_major + Nfennec_enhancement
Nbugzilla = Nbugzilla_critical + Nbugzilla_trivial + Nbugzilla_normal + Nbugzilla_minor + Nbugzilla_major + Nbugzilla_enhancement
Ncamino = Ncamino_critical + Ncamino_trivial + Ncamino_normal + Ncamino_minor + Ncamino_major + Ncamino_enhancement
P Nfennec_critical = Nfennec_critical / Nfennec P Nfennec_trivial = Nfennec_trivial / Nfennec
Nproduct = Nfennec + Nbugzilla + Ncamino
Contoh penghitungan peluang pada masing - masing term ditiap - tiap severity
Nproduct digunakan untuk menghitung peluang masing - masing term pada tiap severity
Sfennec = - P Nfennec_critical log2 (P Nfennec_critical) - P Nfennec_trivial log2 (P Nfennec_trivial) - P Nfennec_normal log2 (P Nfennec_normal) - P Nfennec_minor log2 (P Nfennec_minor) - P Nfennec_major log2 (P Nfennec_major) - P Nfennec_enhancement log2 (P Nfennec_enhancement) Sbugzilla = - P Nbugzilla_critical log2 (P Nbugzilla_critical) - P Nbugzilla_trivial log2 (P Nbugzilla_trivial) - P Nbugzilla_normal log2 (P Nbugzilla_normal) - P Nbugzilla_minor log2 (P Nbugzilla_minor) - P Nbugzilla_major log2 (P Nbugzilla_major) - P Nbugzilla_enhancement log2 (P Nbugzilla_enhancement) Sbugzilla = - P Ncamino_critical log2 (P Ncamino_critical) - P Ncamino_trivial log2 (P Ncamino_trivial) - P Ncamino_normal log2 (P Ncamino_normal) - P Ncamino_minor log2 (P Ncamino_minor) - P Ncamino_major log2 (P Ncamino_major) - P Ncamino_enhancement log2 (P Ncamino_enhancement)
Proses penghitungan Infogain dari masing – masing atribut Gain (Sseverity, Product ) = Sseverity - (Nfennec / Nproduct) Sfennec - (Nbugzilla / Nproduct) Sbugzilla - (Ncamino / Nproduct) Scamino
Gain (Sseverity, Summary)
Gain (Sseverity, Version)
Gain (Sseverity, Op_sys)
Gain (Sseverity, Qa_contact)
Gain (Sseverity, Component)
Gain (Sseverity, Priority)
Hasil infogain dari masing - masing atribut diurutkan mulai darii nilai Gain terbesar sampai terkecil
Rekomendasi atribut penting
Pembuatan Matriks Inputan SVM Term terurut atribut summary
Term terurut atribut selain summary
Pengkategorian (kode term + kode atribut)
Kode term dari atribut summary
92
1802
2760
1238
131
1482
23
764
255
1816
Pembentukan matriks term x dimensi atribut sebanyak 6 severity
Kode term dari atribut selain summary
Pelatihan SVM 7 Atribut Xi pelatihan
Pembentukan matriks biner
Matriks Matriks Matriks Matriks Matriks Biner Biner Matriks Biner Biner Biner Kelas-1 Kelas-1 Biner Kelas-1 Kelas-1 Kelas-1 Kelas-1
Klasifikasi SVM Multiclass
f2(x)
f3(x)
f4(x)
f5(x)
Critical
Major
Normal
Minor
Enhancement
f1(x)
Yprediksi
Trivial
Hyperplane : xsup, w, b , lambda, alpha, nbsv, pos
(100 * (Yprediksi - Ypengujian)) / Ypengujian
Akurasi data terklasifikasi