IndoMS Journal on Statistics Vol. 2, No. 2 (2014), pp. 27–36
SISTEM DETEKSI PENYAKIT DIABETES MENGGUNAKAN METODE SUPPORT VECTOR MACHINES
1,2
Abdul Azis Abdillah1 dan Suwarno2 STKIP Surya, 1 Politeknik Negeri Jakarta,
Email: 1
[email protected]; 2
[email protected]
Abstract In 2013, Indonesia has around 8.5 million people with diabetes. That is the fourth highest number in Asia and 7th in the world. Diabetes has not been able to be cured at this time. However, early detection and proper treatment can reduce risks of complications of the disease. One of the solution is using pattern recognition methods. Pattern recognition methods used in this study is Support Vector Machines (SVM). Testing was conducted using PIMA Indians Diabetes Database with 10-fold cross validation as experimental design. Detection of diabetes using SVM yields the average value of accuracy of 81.34%, Sensitivity 83.64%, and the specificity 80.09%. The results indicated that the system has good results and can be used an alternative for early detection of diabetes disease. Keywords: Diabetes, Support Vector Machines, PIMA
Abstrak Pada tahun 2013, Indonesia memiliki sekitar 8,5 juta penderita Diabetes yang merupakan jumlah ke-empat terbanyak di Asia dan nomor-7 di dunia. Penyakit diabetes belum mampu disembuhkan saat ini. Namun, dengan adanya deteksi dini dan penanganan yang tepat dapat mengurangi komplikasi penyakit yang mungkin terjadi. Salah satu cara pendeteksian yang dapat dilakukan adalah menggunakan metode pengenalan pola. Metode pengenalan pola yang digunakan pada penelitian ini adalah Support Vector Machine (SVM). Pengujian dilakukan menggunakan dataset PIMA Indians Diabetes Database dengan desain eksperimen 10-fold cross validation. Deteksi penyakit diabetes menggunakan SVM menghasilkan nilai ratarata accuracy sebesar 81.34%, Sensitivity 83.64%, dan Specificity 80.09%. Hasil yang diperoleh menunjukkan bahwa sistem yang dibangun memiliki hasil yang baik dan dapat menjadi suatu alternatif untuk deteksi awal penyakit diabetes. Kata kunci: Diabetes, Support Vector Machines, PIMA
1. Pendahuluan Diabetes mellitus (DM) yang sering disebut sebagai penyakit kencing manis, adalah suatu kelainan metabolik yang disebabkan oleh tingginya tingkat glukosa darah dalam jangka waktu yang lama [1]. Tanda-tanda umum dari DM adalah hilangnya berat badan, polyuria (sering berkemih), polydipsia (sering haus), dan polyphagia (sering lapar). Jika tidak diobati, diabetes dapat menyebabkan banyak penyakit komplikasi [2], komplikasi jangka panjang dapat menyebabkan penyakit 27
28
Abdul Azis Abdillah dan Suwarno
serius seperti penyakit jantung, stroke, gagal ginjal, ulkus kaki dan kerusakan pada mata [2]. Pada tahun 2013, Indonesia memiliki sekitar 8,5 juta penderita Diabetes yang merupakan jumlah ke-empat terbanyak di Asia dan nomor-7 di dunia [3]. Tingginya penderita DM dan perkiraan adanya peningkatan pada tahun yang akan datang menyebabkan perlunya antisipasi awal terhadap DM. Menyikapi hal tersebut, maka perlu tindakan pendeteksian dini terhadap penyakit diabetes agar dapat mengurangi komplikasi yang mungkin terjadi di masa yang akan datang. Salah satu cara pendeteksian yang dapat dilakukan adalah menggunakan metode pengenalan pola. Pada bidang medis, pendeteksian penyakit menggunakan pengenalan pola baru-baru ini mendapat perhatian lebih. Salah satu yang banyak digunakan adalah Support Vector Machines (SVM). SVM dikenal sebagai metode pembelajaran mesin (machine learning) paling mutakhir dalam pengenalan pola. SVM dikembangkan oleh Boser, Guyon, Vapnik, dan pertama kali dipresentasikan pada tahun 1992 di Annual Workshop on Computational Learning Theory. Prinsip dasar SVM adalah klasifikasi biner, dan selanjutnya dikembangkan agar dapat bekerja pada kasus multiclass. Penelitian awal terkait penyakit diabetes dilakukan oleh Smith, et al [4] menggunakan Dataset PIMA menghasilkan nilai sensitivity dan specificity sebesar 76%. Sedangkan, penelitian sebelumnya mengenai deteksi penyakit diabetes menggunakan SVM dengan kernel RBF dilakukan oleh Kumari, et al [5], menghasilkan nilai accuracy sebesar 78% dengan nilai sensitivity sebesar 80% dan specificity sebesar 76.5%. Pada penelitian ini metode Support Vector Machines digunakan untuk menganalisis dan mengimplementasikan sistem deteksi penyakit diabetes. Diharapkan dengan menggunakan sistem ini selain bisa digunakan dalam jangka panjang, biaya dan waktu yang dibutuhkan lebih efisien dibandingkan metode konvensional. 2. Support Vector Machines Suport Vector Machine (SVM) merupakan salah satu metode machine learning untuk menyelesaikan masalah klasifikasi. Konsep dasar SVM adalah mencari suatu hyperplane yang memisahkan dua buah kelas dengan margin maksimum. Secara teori, pemilihan margin maksimum ini akan memberikan kemampuan generalisasi yang paling baik. Sedangkan secara intuitif, jika marginnya maksimum maka ketika hyperplane optimalnya dicoba pada data selain data pembelajaran namun dengan kasus yang sama maka hyperplane optimal tersebut tetap dapat mengklasifikasi data ke dalam dua kelas dengan baik. 2.1 Maximal Margin Classifier Misalkan S = {(xi , ti )}i=1,,m merupakan suatu himpunan dengan m buah data, dimana xi ∈ Rn dan ti = {1, −1}. Persamaan wT x + b = 0 disebut hyperplane. Jika suatu data memiliki label ti = 1, maka data tersebut dimasukkan ke dalam kelas A+ (kelas positif). Sedangkan jika suatu data memiliki label ti = −1, maka data tersebut dimasukkan ke dalam kelas A− (kelas negatif). Fungsi linier yang digunakan sebagai fungsi keputusan pada SVM adalah f (x) = wT x + b, dimana x adalah vektor input yang berupa data, w adalah vektor bobot, dan b adalah suatu bias.
Sistem Deteksi Penyakit Diabetes Menggunakan Metode SVM
29
Fungsi keputusan ini digunakan untuk memisahkan dua buah kelas, sehingga untuk setiap data xi , i = 1, 2, , m dimana ti = 1 (kelas A+ ) akan membuat wT x + b > 0 dan untuk setiap data xi , i = 1, 2, , m dimana ti = −1 (kelas A− ) akan membuat wT x + b < 0, sehingga untuk setiap data xi akan diklasifikasi dengan benar jika ti (wT xi + b) > 0. Karena fungsi keputusan f (x) = wT x + b tergantung pada parameter w dan b, maka harus dicari nilai parameter w dan b yang dapat memaksimumkan margin. Solusinya yaitu dengan menggunakan bentuk canonical dari hyperplane, yaitu T ti (w xi + b) = 1, dimana ti = 1, −1, i = 1, 2, , m dimana bentuk canonical paralel terhadap hyperplane dan memiliki jarak yang sama terhadap hyperplane. Bentuk canonical dari hyperplane pada kelas yaitu (wT x+ i + b) = 1, i = 1, 2, , m sedangkan − T pada kelas yaitu (w xi +b) = −1,i = 1, 2, , m Selanjutnya semua data pembelajaran akan memenuhi kondisi berikut: ti (wT xi + b) ≥ 1. Pada SVM, hyperplane optimal diperoleh saat margin antara dua kelas tersebut maksimum. Misalkan d+ adalah jarak dari data x+ i ke hyperplane dan d− adalah jarak dari data x− ke hyperplane, maka margin pada SVM didefinisikan sebagai i d = d+ + d− , dimana d+ = d− . d = d+ + d− 1 T − (|wT x+ = i + b| + |w xi + b|) kwk 2 = kwk
(1)
2 Berdasarkan hal ini, maka masalah memaksimalkan margin kwk , ekuivalen dengan 1 2 meminimumkan 2 kwk . Sehingga model matematis dari masalah maksimal margin classifier dapat dinyatakan sebagai berikut [6, 7, 8]:
1 min kwk2 w,b 2
(2)
dengan kendala: ti (wT xi + b) ≥ 1, i = 1, 2, , m (3) Untuk memudahkan penyelesaian, maka pemrograman kuadrat akan ditransformasikan ke bentuk dual dengan bantuan pengali Lagrange. Fungsi Lagrange dari masalah optimisasi pada persamaan diatas yaitu [6, 7, 8] m
X 1 L(w, b, a) = kwk2 − ai [ti (wT xi + b) − 1] 2
(4)
i=1
Dimana ai ≥ 0 merupakan pengali Lagrange. Untuk mentransformasikan masalah optimisasi ke bentuk dual, maka fungsi Lagrange L(w, b, a) harus diminimumkan terhadap w dan b serta harus dimaksimalkan terhadap variabel dual ai . Dengan meminimumkan L(w, b, a) terhadap parameter w dan b diperoleh m
X ∂L =0→w= ai ti xi ∂w
(5)
i=1 m
X ∂L =0→0= ai ti ∂b i=1
(6)
Abdul Azis Abdillah dan Suwarno
30
Sehingga, bentuk dual dari masalah klasifikasi dengan margin maksimum dapat dituliskan sebagai berikut [6, 7, 8]: ˆ max L(a) = a
m X
m
ai −
i=1
m
1 XX ai aj ti tj xTi xj 2
(7)
i=1 j=1
dengan kendala : ai ≥ 0, i = 1, , m m X ai ti = 0
(8) (9)
i=1
Dengan demikian, solusi dari bentuk dual ini adalah diperolehnya nilai ai yang nantinya digunakan untuk menentukan nilai w dan b dengan rumus : m X w= ai ti xi (10) i=1
b = ti − wT xi (11) Terdapat nilai ai untuk setiap data pelatihan. Data pelatihan yang memiliki nilai ai > 0 disebut sebagai support vector. Dengan demikian fungsi keputusan yang dihasilkan hanya dipengaruhi oleh support vector. Setelah solusi permasalahan pemrograman kuadrat ditemukan (nilai ai ) maka kelas dari data pengujian x dapat ditentukan berdasarkan nilai dari fungsi keputusan : ns X f (x) = ai ti xTi x + b (12) i=1
2.2 Soft Margin Support Vector Machines Pada umumnya dua buah kelas pada input space tidak dapat terpisah secara sempurna. Hal ini menyebabkan kendala ti (wT xi + b) ≥ 1, i = 1, 2, , m tidak dapat terpenuhi, sehingga optimasi tidak dapat dilakukan. Namun, kita tentu ingin mengontrol data yang berada pada kelas yang tidak sesuai. Selanjutnya, untuk mengontrol data yang berada pada kelas yang tidak sesuai kita menggunakan slack variable: ξi ≥ 0, i = 1, 2, , m (13) Dengan demikian, masalah optimisasi pada klasifikasi dengan soft margin dapat dinyatakan sebagai [6, 7, 8]: m
X 1 ξi min kwk2 + C w,b 2
(14)
ti (wT xi + b) ≥ 1 − ξi , i = 1, 2, ..., m
(15)
i=1
dengan kendala : ξi ≥ 0, i = 1, 2, ..., m (16) dimana C > 0 adalah parameter yang menentukan besarnya penalti akibat kesalahan dalam klasifikasi data dan nilainya di tentukan oleh user. Parameter C ditentukan dengan mencoba beberapa nilai dan dievaluasi efeknya terhadap akurasi yang dicapai oleh SVM.
Sistem Deteksi Penyakit Diabetes Menggunakan Metode SVM
31
2.3 Nonlinear Support Vector Machines Pada kasus-kasus di dunia nyata, data yang terbentuk merupakan data yang nonlinier. Sehingga masalah yang terjadi adalah tidak ada satupun hyperplane yang dapat memisahkan data menjadi beberapa kelas. Untuk menyelesaikan kasus nonlinier SVM, maka pertama-tama data di ruang input Rn dipetakan oleh fungsi transformasi Φ ke ruang Feature F , Φ : Rn → F dimana dimensi dari F lebih besar dari dimensi Rn . Sehingga, bentuk dual dari masalah klasifikasi dengan soft margin di ruang Feature menjadi [6, 7, 8]: ˆ max L(a) = a
m X i=1
m
m
1 XX ai − ai aj ti tj Φ(xi )T Φ(xj ) 2
(17)
i=1 j=1
dengan kendala : 0 ≤ ai ≤ C, i = 1, 2, ..., m m X ai ti = 0
(18) (19)
i=1
Karena untuk mendapatkan fungsi transformasi Φ yang tepat sangat sulit untuk diketahui, maka perhitungan dot product Φ(xi )T Φ(xj ) digantikan oleh fungsi Kernel K(xi , xj ) yang dapat mendefinisikan secara implisit transformasi Φ. Proses ini dikenal sebagai Kernel Trick. Tujuan digunakannya fungsi Kernel adalah untuk menghitung dot product pada ruang Feature berdimensi tinggi atau bahkan berdimensi tak hingga secara langsung dari ruang input tanpa harus secara eksplisit menghitung fungsi transformasi Φ. Dengan menggunakan fungsi kernel, bentuk dual dari masalah klasifikasi dengan soft margin di ruang Feature menjadi [6, 7, 8]: ˆ max L(a) = a
m X
m
ai −
m
1 XX ai aj ti tj K(xi , xj ) 2
(20)
i=1 j=1
i=1
dengan kendala : 0 ≤ ai ≤ C, i = 1, 2, ..., m m X ai ti = 0
(21) (22)
i=1
Fungsi kernel yang digunakan pada penelitian ini adalah Fungsi Radial Basis (RBF) yang didefinisikan sebagai [6, 7, 8]: K(x, y) = exp(−
kx − yk2 ), σ2
σ > 0.
(23)
3. Metodologi Diagram alur sistem deteksi penyakit diabetes menggunakan SVM dapat dilihat pada gambar 1 berikut ini.
Abdul Azis Abdillah dan Suwarno
32
Figure 1. Diagram alur sistem deteksi penyakit diabetes 3.1 Dataset Untuk mengetahui kinerja metode SVM dalam melakukan deteksi penyakit diabetes, dilakukan pengujian terhadap Dataset PIMA Indians Diabetes Database [4, 5, 9]. Dataset PIMA terdiri dari 768 data pasien yang semuanya adalah perempuan dengan usia ≥ 21 tahun. Dataset berisi 500 pasien tidak terdeteksi diabetes dan 268 pasien terdeteksi diabetes. Selain itu, dataset PIMA terdiri dari dua kelas yaitu kelas positif dan kelas negatif serta delapan atribut dari penyakit diabetes yaitu • • • • • • • •
Jumlah kali hamil Konsentrasi glukosa plasma 2 jam dalam tes toleransi glukosa oral Tekanan darah diastolik (mm Hg) Triceps ketebalan lipatan kulit (mm) Serum insulin 2-Jam (mu U / ml) Indeks massa tubuh (kg/m2 ) Riwayat Keturunan Penyakit Diabetes Umur (tahun)
3.2 Desain Eksperimen Desain Eksperimen dari penelitian ini menggunakan 10-fold cross validation [6] dengan tujuan untuk mendapatkan model terbaik untuk memprediksi penyakit diabetes. Dataset PIMA Indians Diabetes Database dibagi menjadi 10 bagian dengan jumlah kelas sama untuk setiap bagian. Sembilan bagian digunakan untuk melatih model, satu bagian digunakan untuk mengevaluasi model. Hasil rata-rata akurasi yang dicapai oleh 10 fold tersebut digunakan sebagai akurasi deteksi diabetes. 3.3 Evaluasi Eksperimen Evaluasi eksperimaen yang digunakan pada penelitian ini yaitu Confusion Matrix [10]. Confusion Matrix dideskripsikan pada Tabel 1. TP adalah jumlah record positif yang diklasifikasikan sebagai positif, FP adalah jumlah record negatif yang diklasifikasikan sebagai positif, FN adalah jumlah record positif yang diklasifikasikan sebagai negatif, TN adalah jumlah record negatif yang diklasifikasikan sebagai negatif. Accuracy dalam klasifikasi adalah persentase ketepatan record data yang diklasifikasikan secara benar. Formula Accuracy adalah sebagai berikut [10] : TP + TN (24) Accuracy = TP + FP + FN + TN
Sistem Deteksi Penyakit Diabetes Menggunakan Metode SVM
33
Table 1. Confusion matrix Actual Class yes no
Output Class yes no True Positive (TP) False Negative (FN) False Positive (FP) True Negative (TN)
Kuantitas lain yang digunakan pada bidang medis adalah Sensitivity dan Specificity. Pada kasus evaluasi sistem diagnosis penyakit pasien, sensitivity adalah kemampuan pengujian untuk mendiagnosis semua pasien sakit yang terdiagnosis sakit. Sedangkan, specificity adalah kemampuan pengujian untuk mendiagnosis semua pasien tidak sakit yang terdiagnosis tidak sakit. Pada bidang medis semakin besar nilai sensitivity dan specificity berarti sistem yang dibuat semakin baik. Berikut merupakan formula sensitivity dan specificity [10]: Sensitivity =
TP TP + FN
(25)
Specif icity =
TN TN + FP
(26)
4. Hasil Eksperimen Pada penelitian ini penulis melakukan percobaan deteksi penyakit diabetes, dengan metode Support Vector Machines (SVM) menggunakan software Matlab R2013a. Spesifikasi komputer yang digunakan pada percobaan ini adalah CPU Processor Intel Core i5 4460 3.2 GHz dengan RAM 4 GB dan OS Windows 7 Ultimate. Pada tahap awal, dataset PIMA dibagi menjadi dua bagian. 576 data digunakan sebagai data pelatihan dan sisanya 192 data sebagai data testing. Berdasarkan 10 fold cross validation, pada data pelatihan diperoleh model yang optimal dengan nilai parameter σ = 1.5. Tabel 2a dan tabel 2b secara berturut-turut merupakan hasil confusion matrix yang diperoleh dari percobaan SVM menggunakan nilai parameter yang telah diperoleh. Selanjutnya, dilakukan perhitungan untuk mencari nilai accuracy, sensitivity dan specificity dari data training dan data testing, yang hasilnya dapat dilihat pada Tabel 3. Berdasarkan pada tabel 3 diperoleh rata-rata hasil accuracy = 81.34%, Sensitivity = 83.64% dan Specificity = 80.09%.
5. Kesimpulan Support Vector Machines dapat digunakan untuk menganalisis dan membangun sistem deteksi penyakit diabetes. Analisa yang dilakukan menggunakan dataset PIMA yang berfungsi sebagai masukan pada SVM. Pada tahap awal dilakukan pemisahan dataset PIMA menjadi dua bagian yaitu 576 data sebagai data pelatihan dan sisanya 192 data sebagai data tes. Tahapan selanjutnya yaitu menentukan
34
Abdul Azis Abdillah dan Suwarno
Table 2. Hasil confusion matrix (a) Confusion matrix pada data training
Output Class Tested Positive Tested Negative Tested Positive 170 28 Tested Negative 70 308 Actual Class
(b) Confusion matrix pada data testing
Output Class Tested Positive Tested Negative Tested Positive 57 13 Tested Negative 26 96 Actual Class
Table 3. Hasil accuracy, sensitivity dan specificity dari metode SVM Accuracy (%) Sensitivity (%) Specificity (%)
Training Testing 82.99 79.69 85.86 81.43 81.48 78.69
nilai parameter σ yang optimal dengan melakukan 10 cross validation. Setelah mendapatkan nilai σ yang optimal, tahap terakhir adalah melakukan uji sesungguhnya menggunakan data tes untuk mencari nilai accuracy, sensitivity, dan specificity. Pada penelitian ini nilai parameter optimal yang diperoleh adalah σ = 1.5. Deteksi penyakit diabetes menggunakan SVM dengan kernel RBF menghasilkan nilai rata-rata accuracy sebesar 81.34%, Sensitivity 83.64%, dan Specificity 80.09%. Berdasarkan hasil yang diperoleh pada penelitian ini, kinerja dari SVM sebagai pengklasifikasi lebih baik dari penelitian sebelumnya yang dilakukan oleh Smith, et al [4] dan Kumari, et al [5]. Hasil yang diperoleh menunjukkan bahwa sistem yang dibangun memiliki hasil yang baik dan dapat menjadi suatu alternatif untuk deteksi awal penyakit diabetes. Ucapan Terima Kasih. Penulis mengucapkan terima kasih kepada Kementerian Pendidikan dan Kebudayaan melalui DIRJEN DIKTI atas dukungan dana penelitian, melalui Hibah Penelitian Dosen Pemula Tahun 2015 Nomor DIPA-023.04.1.673453 /2015.
References [1] World Health Organization. About diabetes. http://www.who.int/diabetes/action_online/ basics/en/. (30 Maret 2015, Pukul 11.54 WIB). [2] World Health Organization. Diabetes Fact sheet. http://www.who.int/mediacentre/ factsheets/fs312/en/. (30 Maret 2015, Pukul 11.55 WIB). [3] Muhammadi, F.Z., Simple treatment to curb diabetes. http://www.thebalidaily.com/ 2014-01-20/simple-treatment-curb-diabetes.html. (28 Maret 2015, Pukul 12.07 WIB).
Sistem Deteksi Penyakit Diabetes Menggunakan Metode SVM
35
[4] Smith, J.W., J. E. Everhart, et al., Using the ADAP learning algorithm to forecast the onset of diabetes mellitus, Proceedings of the Symposium on Computer Applications and Medical Care, (1988), 261-265. [5] Kumari, V. A. dan Chitra, R., ”Classification of Diabetes Disease Using Support Vector Machine”, IJERA, 3 (2013), 1797-1801. [6] Bishop, C. M., Pattern Recognition and Machine Learning, Springer, 2006. [7] Christianini, N., and J. C. Shawe-Taylor, An Introduction to Support Vector Machines, Cambridge, UK: Cambridge University Press, 2000. [8] Scholkopf, B., and A. Smola, Learning with Kernels, Cambridge, MA: The MIT Press, 2001. [9] Lichman, M. UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science, 2013. [10] Gorunescu, F., Data mining concepts, models and techniques, Springer, 2011.
36
Abdul Azis Abdillah dan Suwarno