Diabetes mellitus merupakan salah satu penyakit kronis yang memiliki dampak serius terhadap kesehatan masyarakat. Penyakit ini berpotensi menimbulkan berbagai komplikasi jangka panjang yang berkembang secara bertahap, terutama apabila kadar gula darah tidak terkontrol dengan baik. Semakin lama seseorang menderita diabetes, semakin besar risiko terjadinya komplikasi yang dapat menurunkan kualitas hidup bahkan mengancam keselamatan jiwa. Menurut Mayo Clinic (2018), komplikasi diabetes dapat mencakup penyakit kardiovaskular, kerusakan saraf (neuropati), gangguan ginjal (nefropati), kerusakan mata (retinopati), masalah pada kaki, gangguan kulit, penurunan fungsi pendengaran, hingga gangguan kesehatan mental seperti depresi.
Besarnya dampak penyakit diabetes tercermin dari tingginya jumlah penderita di berbagai negara, termasuk Indonesia. Berdasarkan laporan International Diabetes Federation (IDF) tahun 2019, Indonesia menempati peringkat kedua di kawasan Pasifik Barat setelah Tiongkok dalam jumlah penderita diabetes. Tercatat sekitar 10,7 juta penduduk Indonesia menderita diabetes dari total populasi dewasa sebanyak 172,2 juta jiwa. Dengan demikian, sekitar 6,2% populasi dewasa di Indonesia hidup dengan penyakit ini. Selain itu, sekitar 115,6 ribu kematian dikaitkan dengan diabetes, yang menunjukkan tingginya beban penyakit tersebut terhadap kesehatan masyarakat. IDF juga melaporkan bahwa sekitar 73,7% kasus diabetes di Indonesia belum terdiagnosis, sehingga banyak individu berisiko mengalami komplikasi akibat keterlambatan penanganan.
Deteksi dini menjadi salah satu upaya preventif yang penting dalam mengurangi risiko komplikasi diabetes. Informasi awal mengenai kondisi kesehatan seseorang dapat membantu proses pencegahan, diagnosis, serta penanganan penyakit secara lebih efektif. Seiring berkembangnya teknologi, berbagai sistem berbasis kecerdasan buatan telah dikembangkan untuk mendukung pengambilan keputusan di bidang kesehatan. Salah satu pendekatan yang banyak digunakan adalah machine learning, yang memungkinkan komputer mempelajari pola dari data dan menghasilkan prediksi secara otomatis. Dalam konteks diabetes, metode machine learning dapat diterapkan untuk membangun sistem klasifikasi yang membantu mengidentifikasi individu yang berisiko menderita penyakit tersebut.
Penelitian ini dilakukan sebagai upaya untuk membantu deteksi dini penyakit diabetes melalui pemanfaatan teknologi machine learning. Diabetes mellitus merupakan salah satu penyakit kronis yang terus mengalami peningkatan jumlah kasus setiap tahunnya dan dapat menyebabkan berbagai komplikasi serius apabila tidak ditangani dengan baik. Oleh karena itu, diperlukan metode yang mampu membantu proses identifikasi risiko diabetes secara cepat dan akurat berdasarkan data kesehatan pasien.
Salah satu metode machine learning yang banyak digunakan dalam permasalahan klasifikasi adalah Support Vector Machine (SVM). Algoritma ini memiliki kemampuan yang baik dalam menemukan batas pemisah (hyperplane) optimal antara dua kelas data. Untuk menangani pola data yang tidak dapat dipisahkan secara linear, SVM dapat dikombinasikan dengan kernel Radial Basis Function (RBF) yang mampu memetakan data ke ruang berdimensi lebih tinggi sehingga meningkatkan kemampuan klasifikasi.
Beberapa penelitian sebelumnya telah menunjukkan bahwa metode SVM memiliki performa yang baik dalam klasifikasi penyakit diabetes. Sisodia dan Sisodia (2018) membandingkan beberapa algoritma klasifikasi, yaitu Decision Tree, Naive Bayes, dan Support Vector Machine pada dataset yang sama. Hasil penelitian menunjukkan bahwa setiap algoritma memiliki tingkat performa yang berbeda, sehingga pemilihan metode dan proses optimasi parameter menjadi faktor penting dalam menghasilkan model klasifikasi yang optimal.
Berdasarkan kondisi tersebut, penelitian ini bertujuan untuk membangun model klasifikasi diabetes menggunakan algoritma Support Vector Machine dengan kernel Radial Basis Function (SVM-RBF). Dataset yang digunakan adalah Pima Indians Diabetes Dataset yang tersedia secara publik melalui repositori Jason Brownlee di GitHub. Dataset ini berasal dari National Institute of Diabetes and Digestive and Kidney Diseases (NIDDK) dan merupakan salah satu dataset yang paling banyak digunakan sebagai benchmark dalam penelitian klasifikasi medis. Dataset tersebut berisi 768 data pasien perempuan keturunan Pima Indian dengan delapan atribut kesehatan, yaitu jumlah kehamilan, kadar glukosa, tekanan darah, ketebalan lipatan kulit, kadar insulin, indeks massa tubuh (BMI), fungsi riwayat diabetes keluarga, dan usia, serta satu atribut target yang menunjukkan status diabetes.
Melalui penerapan tahapan prapemrosesan data, standardisasi fitur, tuning hyperparameter, dan evaluasi menggunakan berbagai metrik klasifikasi, penelitian ini diharapkan dapat menghasilkan model SVM-RBF yang mampu mengklasifikasikan status diabetes secara akurat serta memberikan gambaran mengenai efektivitas metode tersebut dalam mendukung deteksi dini penyakit diabetes.
Tujuan utama analisis ini adalah:
Membangun model klasifikasi SVM dengan kernel Radial Basis Function (RBF) untuk memprediksi status diabetes seseorang.
Melakukan tuning hiperparameter secara sistematis menggunakan cross-validation untuk mendapatkan performa optimal.
Mengevaluasi model secara komprehensif menggunakan berbagai metrik klasifikasi.
Menginterpretasikan hasil model dalam konteks klinis yang bermakna.
Data yang digunakan dalam penelitian ini merupakan data sekunder yang diperoleh dari website https://github.com/jbrownlee/Datasets/blame/master/pima-indians-diabetes.names. Dataset yang digunakan adalah Pima Indians Diabetes Dataset
Dataset yang digunakan adalah Pima Indians Diabetes Dataset, yang tersedia secara publik melalui repositori Jason Brownlee di GitHub. Dataset ini awalnya berasal dari National Institute of Diabetes and Digestive and Kidney Diseases (NIDDK) dan sering digunakan sebagai benchmark dalam penelitian klasifikasi medis.
Unit observasi dalam penelitian ini adalah individu perempuan keturunan Pima Indian yang berusia minimal 21 tahun. Setiap baris data pada Pima Indians Diabetes Dataset merepresentasikan satu individu dengan karakteristik kesehatan tertentu yang digunakan untuk menentukan status diabetes. Dataset terdiri atas 768 observasi yang berasal dari National Institute of Diabetes and Digestive and Kidney Diseases (NIDDK).
Variabel respons yang digunakan dalam penelitian ini adalah status diabetes individu yang bersifat biner. Variabel ini menunjukkan apakah seorang individu terdiagnosis diabetes atau tidak berdasarkan hasil pemeriksaan medis. Distribusi kelas pada dataset dapat dilihat pada Tabel @ref(tab:distribusi-kelas).
| Kelas | Label | Jumlah | Proporsi |
|---|---|---|---|
| 1 | Diabetes | 268 | 34,9% |
| 0 | No_Diabetes | 500 | 65,1% |
Berdasarkan Tabel @ref(tab:distribusi-kelas), distribusi kelas pada dataset tidak seimbang (class imbalance), di mana jumlah individu yang tidak menderita diabetes lebih besar dibandingkan individu yang menderita diabetes. Kondisi ini perlu diperhatikan dalam proses pembangunan dan evaluasi model klasifikasi karena dapat memengaruhi performa model dalam mendeteksi kelas minoritas.
Variabel yang digunakan dalam penelitian ini terdiri atas satu variabel respons (dependent variable) dan delapan variabel prediktor (independent variable). Variabel respons berupa status diabetes, sedangkan variabel prediktor merupakan faktor-faktor kesehatan yang diduga berpengaruh terhadap kondisi diabetes seseorang. Rincian variabel penelitian dapat dilihat pada Tabel @ref(tab:variabel-penelitian).
| Variabel | Keterangan | Satuan | Sumber |
|---|---|---|---|
| Outcome | Variabel Respons (Y) | Kategori | Pima Indians Diabetes Dataset (NIDDK) |
| Pregnancies | Variabel Prediktor (X1) | Kali | Pima Indians Diabetes Dataset (NIDDK) |
| Glucose | Variabel Prediktor (X2) | mg/dL | Pima Indians Diabetes Dataset (NIDDK) |
| BloodPressure | Variabel Prediktor (X3) | mm Hg | Pima Indians Diabetes Dataset (NIDDK) |
| SkinThickness | Variabel Prediktor (X4) | mm | Pima Indians Diabetes Dataset (NIDDK) |
| Insulin | Variabel Prediktor (X5) | μU/ml | Pima Indians Diabetes Dataset (NIDDK) |
| BMI | Variabel Prediktor (X6) | kg/m² | Pima Indians Diabetes Dataset (NIDDK) |
| DiabetesPedigreeFunction | Variabel Prediktor (X7) | - | Pima Indians Diabetes Dataset (NIDDK) |
| Age | Variabel Prediktor (X8) | Tahun | Pima Indians Diabetes Dataset (NIDDK) |
Seluruh variabel prediktor dalam penelitian ini berbentuk numerik dan digunakan sebagai masukan (input) dalam model Support Vector Machine (SVM) dengan kernel Radial Basis Function (RBF) untuk mengklasifikasikan status diabetes pada individu.
Support Vector Machine (SVM) adalah algoritma pembelajaran terawasi yang digunakan untuk klasifikasi dan regresi. SVM bekerja dengan menemukan hyperplane optimal yang memisahkan data dari kelas berbeda dengan margin maksimal.
Pada SVM linear, kita mencari hyperplane yang dapat memisahkan data. Formulasi matematisnya mengoptimalkan:
\[\min_{w, b} \frac{1}{2} ||w||^2 + C \sum_{i=1}^{n} \xi_i\]
dengan batasan \(y_i(w^T x_i + b) \geq 1 - \xi_i\) untuk semua data \(i\), di mana: - \(w\) adalah vektor normal terhadap hyperplane - \(b\) adalah bias - \(C\) adalah parameter regularisasi (trade-off antara margin maksimal dan toleransi kesalahan) - \(\xi_i\) adalah variabel slack (mengukur pelanggaran margin) - \(x_i\) adalah vektor fitur dari data ke-i - \(y_i\) adalah label kelas (-1 atau 1)
Untuk data yang tidak dapat dipisahkan secara linear, SVM menggunakan kernel trick untuk memetakan data ke dimensi yang lebih tinggi. Kernel RBF (Radial Basis Function) adalah yang paling umum digunakan:
\[K(x_i, x_j) = \exp(-\gamma ||x_i - x_j||^2)\]
di mana \(\gamma\) (gamma) mengontrol “jarak jangkauan” pengaruh setiap titik data. Gamma yang lebih tinggi = pengaruh lebih lokal (model lebih kompleks dan cenderung overfit).
Dataset Pima Indians Diabetes berisi data medis dari 768 perempuan berusia ≥21 tahun dari komunitas Pima di Arizona. Data ini dikumpulkan oleh National Institute of Diabetes and Digestive and Kidney Diseases (NIDDK).
| Variabel | Min | Q1 | Median | Mean | Q3 | Max | SD |
|---|---|---|---|---|---|---|---|
| Pregnancies | 0.00 | 1.00 | 3.00 | 3.85 | 6.00 | 17.00 | 3.37 |
| Glucose | 0.00 | 99.00 | 117.00 | 120.89 | 140.25 | 199.00 | 31.97 |
| BloodPressure | 0.00 | 62.00 | 72.00 | 69.11 | 80.00 | 122.00 | 19.36 |
| SkinThickness | 0.00 | 0.00 | 23.00 | 20.54 | 32.00 | 99.00 | 15.95 |
| Insulin | 0.00 | 0.00 | 30.50 | 79.80 | 127.25 | 846.00 | 115.24 |
| BMI | 0.00 | 27.30 | 32.00 | 31.99 | 36.60 | 67.10 | 7.88 |
| DiabetesPedigreeFunction | 0.08 | 0.24 | 0.37 | 0.47 | 0.63 | 2.42 | 0.33 |
| Age | 21.00 | 24.00 | 29.00 | 33.24 | 41.00 | 81.00 | 11.76 |
| Outcome | 0.00 | 0.00 | 0.00 | 0.35 | 1.00 | 1.00 | 0.48 |
Berdasarkan tabel statistik deskriptif, rata-rata kadar glukosa adalah 120,89 mg/dL, rata-rata BMI 31,99 kg/m², dan rata-rata usia 33,24 tahun. Nilai minimum 0 pada variabel Glucose, BloodPressure, SkinThickness, Insulin, dan BMI mengindikasikan adanya data yang tidak logis secara medis sehingga perlu diperlakukan sebagai missing value.
Secara umum, responden memiliki kadar glukosa dan BMI yang relatif tinggi. Ditemukan beberapa nilai nol pada variabel klinis yang secara medis tidak mungkin terjadi, sehingga dilakukan proses imputasi untuk meningkatkan kualitas data sebelum pemodelan.
| Outcome | n | Percentage |
|---|---|---|
| Diabetes | 268 | 34.89583 |
| No_Diabetes | 500 | 65.10417 |
Distribusi kelas menunjukkan ketidakseimbangan (class imbalance), di mana jumlah pasien non-diabetes (65,1%) lebih besar dibandingkan pasien diabetes (34,9%). Kondisi ini dapat menyebabkan model cenderung memprediksi kelas mayoritas sehingga perlu diperhatikan pada tahap evaluasi model.
Individu yang menderita diabetes memiliki kadar glukosa yang secara konsisten lebih tinggi dibandingkan individu non-diabetes. Perbedaan median yang cukup besar menunjukkan bahwa kadar glukosa merupakan salah satu prediktor utama dalam klasifikasi diabetes.
Kelompok diabetes cenderung memiliki indeks massa tubuh (BMI) yang lebih tinggi. Hasil ini mengindikasikan bahwa obesitas atau kelebihan berat badan berpotensi meningkatkan risiko diabetes mellitus.
Risiko diabetes cenderung meningkat pada kelompok usia yang lebih tua. Temuan ini sejalan dengan literatur yang menyatakan bahwa prevalensi diabetes meningkat seiring bertambahnya usia.
Terdapat kecenderungan bahwa individu dengan kadar glukosa dan BMI yang lebih tinggi memiliki probabilitas lebih besar untuk mengalami diabetes. Meskipun demikian, masih terdapat tumpang tindih antara kedua kelompok sehingga diperlukan model non-linear seperti SVM-RBF untuk memisahkan pola tersebut secara lebih baik.
Tidak ditemukan korelasi yang sangat tinggi (>|0,8|) antar variabel prediktor. Hal ini menunjukkan bahwa masalah multikolinearitas relatif rendah sehingga seluruh variabel masih layak digunakan dalam pemodelan.
Sebelum proses pemodelan dilakukan, dataset yang telah melalui tahap pembersihan data diperiksa kembali untuk memastikan tidak terdapat nilai hilang (missing values) yang tersisa. Observasi yang masih mengandung nilai hilang dihapus sehingga diperoleh dataset lengkap yang siap digunakan dalam proses pembelajaran mesin.
Selanjutnya, data dibagi menjadi dua bagian, yaitu data latih (training set) sebesar 80% dan data uji (test set) sebesar 20%. Pembagian data dilakukan menggunakan metode stratified sampling berdasarkan variabel target (Outcome) untuk mempertahankan proporsi kelas diabetes dan non-diabetes pada kedua subset data. Pendekatan ini bertujuan untuk menghasilkan proses pelatihan dan evaluasi model yang lebih representatif serta mengurangi potensi bias akibat ketidakseimbangan kelas.
Untuk memperoleh estimasi performa model yang lebih stabil dan mengurangi risiko overfitting, digunakan metode 5-fold cross-validation pada data latih. Dalam metode ini, data latih dibagi menjadi lima subset (fold), di mana pada setiap iterasi empat subset digunakan untuk melatih model dan satu subset digunakan untuk validasi. Proses ini dilakukan secara bergantian hingga seluruh subset memperoleh kesempatan menjadi data validasi.
Selain itu, teknik stratified cross-validation diterapkan berdasarkan variabel Outcome sehingga proporsi kelas diabetes dan non-diabetes tetap terjaga pada setiap fold. Dengan demikian, proses evaluasi model menjadi lebih konsisten dan mampu merepresentasikan karakteristik data secara lebih baik.
Dalam dataset ini, nilai 0 pada variabel tertentu secara
medis tidak mungkin terjadi (misalnya, glukosa plasma = 0 berarti pasien
tidak mungkin hidup). Oleh karena itu, nilai 0 pada
variabel berikut diperlakukan sebagai data hilang tersembunyi
(implicit missing values) dan dikonversi menjadi
NA:
step_mutate(
Glucose = na_if(Glucose, 0),
BloodPressure = na_if(BloodPressure, 0),
SkinThickness = na_if(SkinThickness, 0),
Insulin = na_if(Insulin, 0),
BMI = na_if(BMI, 0)
)Variabel yang terdeteksi memiliki nilai nol tidak logis secara medis:
| Variabel | Nilai Min | Keterangan |
|---|---|---|
Glucose |
0 | Tidak mungkin secara klinis |
BloodPressure |
0 | Tidak mungkin secara klinis |
SkinThickness |
0 | Sangat tidak realistis |
Insulin |
0 | Memungkinkan tapi dicurigai missing |
BMI |
0 | Tidak mungkin secara fisik |
Data hilang kemudian diimputasi menggunakan median dari data training:
Dataset dibagi dengan rasio 80:20 menggunakan stratified sampling berdasarkan variabel respons, untuk memastikan proporsi kelas terjaga di kedua subset:
split_obj <- initial_split(pima, prop = 0.80, strata = Outcome)
train_dat <- training(split_obj) # 313 observasi
test_dat <- testing(split_obj) # 79 observasi| Subset | Jumlah Observasi | Proporsi Diabetes |
|---|---|---|
| Training | 313 | ~34,9% |
| Testing | 79 | ~34,9% |
Penelitian ini menggunakan metode Support Vector Machine (SVM) dengan kernel Radial Basis Function (RBF) untuk mengklasifikasikan status diabetes. Kernel RBF dipilih karena mampu menangani hubungan nonlinier antar variabel prediktor dan menghasilkan batas keputusan (decision boundary) yang lebih fleksibel dibandingkan model linear. Selain itu, SVM-RBF dikenal memiliki kemampuan generalisasi yang baik pada dataset dengan dimensi menengah dan kompleksitas pola yang cukup tinggi.
Pada tahap ini ditentukan spesifikasi model SVM-RBF yang akan digunakan. Dua hiperparameter utama yang akan dioptimalkan adalah cost (\(C\)) dan rbf_sigma (\(\sigma\)). Parameter \(C\) mengontrol tingkat penalti terhadap kesalahan klasifikasi, sedangkan parameter \(\sigma\) mengatur tingkat kelengkungan fungsi kernel RBF dalam memetakan data ke ruang berdimensi lebih tinggi. Proses tuning dilakukan untuk memperoleh kombinasi parameter yang menghasilkan performa klasifikasi terbaik.
Untuk mempermudah proses pemodelan, seluruh tahapan praproses data dan spesifikasi model digabungkan ke dalam sebuah workflow. Pendekatan ini memastikan bahwa setiap proses transformasi data yang diterapkan pada data latih juga diterapkan secara konsisten pada data validasi maupun data uji.
Optimasi hiperparameter dilakukan menggunakan metode grid search, yaitu dengan mencoba berbagai kombinasi nilai parameter yang telah ditentukan sebelumnya. Pada penelitian ini digunakan rentang nilai cost dari 0,01 hingga 100 serta nilai rbf sigma dari 0,001 hingga 1. Dengan lima tingkat (levels) pada masing-masing parameter, diperoleh sebanyak 25 kombinasi hiperparameter yang akan dievaluasi.
Performa model dievaluasi menggunakan beberapa metrik klasifikasi. Nilai ROC-AUC digunakan untuk mengukur kemampuan model dalam membedakan kelas diabetes dan non-diabetes secara keseluruhan. Accuracy digunakan untuk mengukur proporsi klasifikasi yang benar, Sensitivity digunakan untuk mengukur kemampuan model dalam mendeteksi pasien diabetes, sedangkan Specificity digunakan untuk mengukur kemampuan model dalam mengenali individu yang tidak menderita diabetes.
Proses pencarian parameter terbaik dilakukan menggunakan metode 5-fold cross-validation. Setiap kombinasi hiperparameter dievaluasi pada lima subset data latih yang berbeda sehingga menghasilkan estimasi performa yang lebih stabil dan mengurangi risiko overfitting. Dengan 25 kombinasi parameter dan 5 fold validasi, total sebanyak 125 model dievaluasi selama proses tuning.
| cost | rbf_sigma | .metric | .estimator | mean | n | std_err | .config |
|---|---|---|---|---|---|---|---|
| 2.00 | 0.0316 | roc_auc | binary | 0.8613 | 5 | 0.0202 | pre0_mod18_post0 |
| 2.00 | 0.0056 | roc_auc | binary | 0.8607 | 5 | 0.0200 | pre0_mod17_post0 |
| 1.00 | 0.0056 | roc_auc | binary | 0.8606 | 5 | 0.0181 | pre0_mod12_post0 |
| 0.25 | 0.0316 | roc_auc | binary | 0.8597 | 5 | 0.0177 | pre0_mod03_post0 |
| 1.00 | 0.0316 | roc_auc | binary | 0.8595 | 5 | 0.0208 | pre0_mod13_post0 |
| 4.00 | 0.0056 | roc_auc | binary | 0.8588 | 5 | 0.0199 | pre0_mod22_post0 |
| 0.50 | 0.0316 | roc_auc | binary | 0.8587 | 5 | 0.0196 | pre0_mod08_post0 |
| 4.00 | 0.0010 | roc_auc | binary | 0.8575 | 5 | 0.0178 | pre0_mod21_post0 |
| 0.25 | 0.1778 | roc_auc | binary | 0.8532 | 5 | 0.0161 | pre0_mod04_post0 |
| 0.25 | 0.0056 | roc_auc | binary | 0.8530 | 5 | 0.0165 | pre0_mod02_post0 |
| cost | rbf_sigma | .metric | .estimator | mean | n | std_err | .config |
|---|---|---|---|---|---|---|---|
| 0.25 | 0.0316 | accuracy | binary | 0.7861 | 5 | 0.0124 | pre0_mod03_post0 |
| 2.00 | 0.0316 | accuracy | binary | 0.7858 | 5 | 0.0174 | pre0_mod18_post0 |
| 0.50 | 0.1778 | accuracy | binary | 0.7828 | 5 | 0.0137 | pre0_mod09_post0 |
| 2.00 | 0.0056 | accuracy | binary | 0.7794 | 5 | 0.0124 | pre0_mod17_post0 |
| 1.00 | 0.0056 | accuracy | binary | 0.7765 | 5 | 0.0169 | pre0_mod12_post0 |
| 1.00 | 0.0316 | accuracy | binary | 0.7763 | 5 | 0.0151 | pre0_mod13_post0 |
| 4.00 | 0.0056 | accuracy | binary | 0.7762 | 5 | 0.0119 | pre0_mod22_post0 |
| 4.00 | 0.0316 | accuracy | binary | 0.7730 | 5 | 0.0069 | pre0_mod23_post0 |
| 1.00 | 0.1778 | accuracy | binary | 0.7701 | 5 | 0.0101 | pre0_mod14_post0 |
| 0.50 | 0.0316 | accuracy | binary | 0.7699 | 5 | 0.0151 | pre0_mod08_post0 |
| cost | rbf_sigma | .metric | .estimator | mean | n | std_err | .config |
|---|---|---|---|---|---|---|---|
| 2.00 | 0.0316 | sens | binary | 0.5962 | 5 | 0.0488 | pre0_mod18_post0 |
| 1.00 | 0.1778 | sens | binary | 0.5681 | 5 | 0.0484 | pre0_mod14_post0 |
| 1.00 | 0.0316 | sens | binary | 0.5676 | 5 | 0.0417 | pre0_mod13_post0 |
| 4.00 | 0.0316 | sens | binary | 0.5676 | 5 | 0.0492 | pre0_mod23_post0 |
| 0.50 | 0.0316 | sens | binary | 0.5671 | 5 | 0.0478 | pre0_mod08_post0 |
| 2.00 | 0.0056 | sens | binary | 0.5671 | 5 | 0.0339 | pre0_mod17_post0 |
| 4.00 | 0.0056 | sens | binary | 0.5671 | 5 | 0.0339 | pre0_mod22_post0 |
| 2.00 | 0.1778 | sens | binary | 0.5576 | 5 | 0.0381 | pre0_mod19_post0 |
| 0.50 | 0.1778 | sens | binary | 0.5486 | 5 | 0.0502 | pre0_mod09_post0 |
| 0.25 | 0.0316 | sens | binary | 0.5386 | 5 | 0.0509 | pre0_mod03_post0 |
Kombinasi parameter Cost = 2 dan Sigma = 0,0316 menghasilkan kemampuan diskriminasi terbaik selama proses cross-validation. Nilai ROC-AUC sebesar 0,8613 menunjukkan bahwa model mampu membedakan pasien diabetes dan non-diabetes dengan tingkat akurasi diskriminatif yang sangat baik.
Peningkatan nilai Cost tidak selalu meningkatkan performa model. Kombinasi parameter tertentu menghasilkan keseimbangan terbaik antara sensitivity dan specificity. Hal ini menunjukkan pentingnya proses tuning hiperparameter dalam memperoleh model SVM yang optimal.
Model akhir dibangun menggunakan kombinasi parameter terbaik yang diperoleh dari proses hyperparameter tuning. Selanjutnya, model dilatih pada data latih (training set) dan dievaluasi menggunakan data uji (test set).
Model mampu mengklasifikasikan 75,9% observasi dengan benar. Nilai ROC-AUC sebesar 0,829 menunjukkan kemampuan diskriminasi yang baik. Namun, sensitivity sebesar 50% mengindikasikan bahwa model hanya mampu mendeteksi setengah dari seluruh pasien diabetes yang sebenarnya positif. Sebaliknya, specificity sebesar 88,7% menunjukkan bahwa model sangat baik dalam mengenali individu yang tidak menderita diabetes.
| id | Outcome | .pred_class | .pred_Diabetes | .pred_No_Diabetes |
|---|---|---|---|---|
| train/test split | Diabetes | Diabetes | 0.8771 | 0.1229 |
| train/test split | Diabetes | No_Diabetes | 0.3126 | 0.6874 |
| train/test split | No_Diabetes | Diabetes | 0.6028 | 0.3972 |
| train/test split | No_Diabetes | No_Diabetes | 0.0973 | 0.9027 |
| train/test split | No_Diabetes | Diabetes | 0.7641 | 0.2359 |
Hasil prediksi pada data uji:
## Truth
## Prediction Diabetes No_Diabetes
## Diabetes 13 6
## No_Diabetes 13 47
| Actual | Pred..Diabetes | Pred..No.Diabetes | Total |
|---|---|---|---|
| Diabetes | 13 (TP) | 13 (FN) | 26 |
| No Diabetes | 6 (FP) | 47 (TN) | 53 |
| Total | 19 | 60 | 79 |
Dari 26 pasien diabetes, model berhasil mengidentifikasi 13 pasien secara benar dan gagal mendeteksi 13 pasien lainnya. Sementara itu, dari 53 pasien non-diabetes, model berhasil mengklasifikasikan 47 pasien dengan benar. Hasil ini menunjukkan bahwa model lebih efektif dalam mengenali individu sehat dibandingkan mendeteksi seluruh kasus diabetes.
Kurva ROC yang berada jauh di atas garis acak menunjukkan bahwa model memiliki kemampuan klasifikasi yang baik. Nilai AUC sebesar 0,88 menunjukkan bahwa model memiliki probabilitas sekitar 88% untuk memberikan skor risiko yang lebih tinggi kepada pasien diabetes dibandingkan pasien non-diabetes yang dipilih secara acak.
Model Support Vector Machine dengan kernel Radial Basis Function (SVM-RBF) berhasil dibangun untuk mengklasifikasikan status diabetes pada Pima Indians Diabetes Dataset. Hasil tuning menunjukkan bahwa kombinasi Cost = 2 dan Sigma = 0,0316 memberikan performa terbaik dengan ROC-AUC cross-validation sebesar 0,8613. Pada data pengujian, model menghasilkan akurasi 75,9%, sensitivitas 50,0%, spesifisitas 88,7%, dan ROC-AUC 82,9%. Temuan ini menunjukkan bahwa model memiliki kemampuan yang baik dalam membedakan pasien diabetes dan non-diabetes, namun masih kurang optimal dalam mendeteksi seluruh kasus diabetes sehingga pengembangan lebih lanjut, seperti penyeimbangan kelas menggunakan SMOTE atau optimasi threshold klasifikasi, perlu dipertimbangkan untuk meningkatkan sensitivitas model.
| Jenis Kesalahan | Jumlah | Dampak Klinis |
|---|---|---|
| False Negative (FN) | 23 | Tinggi — Pasien diabetes tidak terdeteksi, risiko komplikasi |
| False Positive (FP) | 11 | Sedang — Pasien non-diabetes menjalani tes tambahan yang tidak perlu |
23 kasus False Negative adalah perhatian utama dari perspektif klinis. Dalam konteks skrining kesehatan, kesalahan tipe ini (melewatkan kasus positif) berpotensi lebih berbahaya daripada False Positive.
tidymodels yang terstandarisasi.Model Support Vector Machine (SVM) dengan kernel Radial Basis Function (RBF) berhasil dibangun untuk mengklasifikasikan status diabetes pada Pima Indians Diabetes Dataset. Berdasarkan hasil analisis yang telah dilakukan, diperoleh beberapa kesimpulan sebagai berikut.
Model SVM-RBF berhasil dibangun melalui proses training, cross-validation, dan hyperparameter tuning. Parameter optimal diperoleh melalui proses grid search dan menghasilkan performa terbaik berdasarkan nilai ROC-AUC.
Proses hyperparameter tuning menggunakan 5-fold cross-validation berhasil meningkatkan performa model. Nilai ROC-AUC pada proses validasi silang mencapai sekitar \(0.861\), yang menunjukkan kemampuan diskriminasi model yang sangat baik dalam membedakan pasien diabetes dan non-diabetes.
Evaluasi pada data pengujian (test set) menunjukkan bahwa model memiliki performa yang baik dengan nilai akurasi sebesar \(75.9\%\), sensitivitas sebesar \(50.0\%\), spesifisitas sebesar \(88.7\%\), dan ROC-AUC sebesar \(0.829\). Hasil tersebut menunjukkan bahwa model mampu mengklasifikasikan sebagian besar observasi dengan benar serta memiliki kemampuan diskriminasi yang baik.
Dari perspektif klinis, model lebih andal dalam mengidentifikasi individu yang tidak menderita diabetes dibandingkan mendeteksi seluruh kasus diabetes yang sebenarnya. Hal ini ditunjukkan oleh nilai spesifisitas yang tinggi (\(88.7\%\)) dan sensitivitas yang relatif rendah (\(50.0\%\)). Oleh karena itu, model masih berpotensi menghasilkan false negative sehingga perlu pengembangan lebih lanjut sebelum digunakan sebagai alat skrining klinis.
| No | Rekomendasi |
|---|---|
| 1 | Menerapkan teknik penyeimbangan kelas seperti Synthetic Minority Oversampling Technique (SMOTE) atau undersampling untuk meningkatkan sensitivitas model. |
| 2 | Membandingkan performa SVM-RBF dengan metode lain seperti Random Forest, XGBoost, dan Logistic Regression. |
| 3 | Melakukan optimasi classification threshold berdasarkan kurva ROC untuk memperoleh keseimbangan yang lebih baik antara sensitivitas dan spesifisitas. |
| 4 | Menggunakan dataset yang lebih besar dan lebih beragam agar kemampuan generalisasi model meningkat. |
| 5 | Menerapkan metode interpretabilitas model seperti SHAP (SHapley Additive exPlanations) atau LIME (Local Interpretable Model-Agnostic Explanations) untuk meningkatkan pemahaman terhadap keputusan model. |
| 6 | Melakukan validasi eksternal menggunakan dataset independen sebelum model diterapkan dalam lingkungan klinis nyata. |
Dataset:
Smith, J.W., Everhart, J.E., Dickson, W.C., Knowler, W.C., & Johannes, R.S. (1988). Using the ADAP learning algorithm to forecast the onset of diabetes mellitus. Proceedings of the Annual Symposium on Computer Application in Medical Care, 261–265.
Brownlee, J. (2016). Pima Indians Diabetes Dataset. Machine Learning Mastery GitHub Repository. https://github.com/jbrownlee/Datasets
Metode dan Perangkat Lunak:
Cortes, C., & Vapnik, V. (1995). Support-vector networks. Machine Learning, 20(3), 273–297. https://doi.org/10.1007/BF00994018
Karatzoglou, A., Smola, A., Hornik, K., & Zeileis, A. (2004). kernlab — An S4 Package for Kernel Methods in R. Journal of Statistical Software, 11(9), 1–20. https://doi.org/10.18637/jss.v011.i09
Kuhn, M., & Wickham, H. (2020). Tidymodels: a collection of packages for modeling and machine learning using tidyverse principles. https://www.tidymodels.org
R Core Team (2024). R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org
Wickham, H. et al. (2019). Welcome to the tidyverse. Journal of Open Source Software, 4(43), 1686. https://doi.org/10.21105/joss.01686