![](https://crypto4nerd.com/wp-content/uploads/2023/07/1Vv4OeoiIr5g4iekTiIDQRw.png)
Nah, teman-teman telah mengetahui penjelasan singkat tentang SVM. Semoga penjelasan diatas dapat dipahami yaa..
Selanjutnya, kita akan melakukan suatu analisis menggunakan metode SVM. Kita akan menggunakan data parkinson yang dapat diunduh pada website kaggle.com.
Pada dataset tersebut berisi kumpulan data yang terdiri dari rentang pengukuran suara biomedis dari 31 orang, 23 orang dengan penyakit parkinson (PD). Kita akan melakukan analisis klasifikasi untuk melihat keakuratan model SVM dalam memprediksi status pasien yang sakit dan sehat dengan menggunakan RStudio. Berikut adalah langkah-langkahnya.
Pertama, kita akan memasukkan data kedalam R dengan sintaks berikut.
parkinson<-read.csv("E://UII//SEMESTER 4//MPML//parkinsons.csv", sep = ";")
View(parkinson)
Untuk melakukan metode ini, kita perlu menginstall dan mengaktifkan beberapa package R yaitu e1071, devtools, dan caret dengan perintah berikut.
install.library("e1071")
install.library("devtools")
install.library("caret")
library(e1071)
library(devtools)
library(caret)
· Package e1071 menyediakan berbagai fungsi dan algoritma untuk analisis statistik, misalnya implementasi SVM untuk klasifikasi.
· Package caret digunakan untuk memfasilitasi proses pelatihan, evaluasi, dan pemilihan model prediktif.
· Package devtools menyediakan serangkain fungsi yang mempermudah proses pengembangan, termasuk pembuatan, pengujian, dokumentasi, dan distribusi paket R.
Setelah itu, kita akan menghitung jumlah 75% dari data parkinson yang akan dijadikan data training untuk melakukan pemodelan dengan perintah berikut.
n = round(nrow(parkinson)*0.75)
n
Dari hasil perhitungan perintah diatas, kita mendapatkan observasi sebanyak 146 data untuk dijadikan data training dari 195 data.
Kemudian, kita akan melakukan training sample sebanyak n observasi. Dan dari hasil training sample tersebut, kita akan membaginya menjadi data train yang berisi data sampel dan data test yang berisi sisa dari data sampel untuk melakukan pemodelan SVM. Lebih jelasnya, kita dapat menggunakan sintaks berikut.
set.seed(123)
sampel = sample(seq_len(nrow(parkinson)), size = n)
train = parkinson[sampel,]
nrow(train)
test = parkinson[-sampel,]
nrow(test)
Dari sintaks diatas, didapatkan output sebagai berikut.
Dari gambar diatas, didapatkan data train sebanyak 146 data dan untuk data test sebanyak 49 data.
Setelah kita membuat data train dan data test, kita dapat membuat model SVM dengan data train. Dan kita akan menggunakan variabel status sebagai variabel dependennya, karena pada variabel tersebut kita dapat mengetahui mana pasien yang sakit dan sehat. Berikut sintaks yang digunakan.
datasvm = svm(factor(status)~., data = train)
datasvm
Dari sintaks diatas, didapatkan output sebagai berikut.
Dari gambar diatas , diperoleh beberapa parameter yang digunakan dalam model SVM, diantaranya SVM-Type: C-Classification menjelaskan tipe SVM yang digunakan adalah metode C-Classification, SVM-Kernel: radial menjelaskan kernel yang digunakan dalam model SVM yaitu RBF (Radial Basis Function), cost: 1 menjelaskan nilai biaya yang digunakan dalam fungsi pemetaan SVM, dan Number of Support Vectors: 75 menjelaskan jumlah vector pendukung yang digunakan dalam model SVM.
Setelah model terbentuk, kita akan melakukan prediksi dengan data train untuk melatih modelnya. Kita dapat menggunakan sintaks sebagai berikut.
prediksi = predict(datasvm, train)
prediksi
table(prediksi)
Dari sintaks diatas, didapatkan output sebagai berikut.
Dari gambar diatas, diperoleh beberapa hasil prediksi dari data train. Untuk levels ‘0’ dan ‘1’ menunjukkan kategori dari variabel dependen, yaitu status yang dikategorikan sebagai : 0-sehat dan 1-sakit parkinson. Dan dari sintaks table() diperoleh banyaknya data pada level 0 sebanyak 24 data, sedangkan pada level 1 sebanyak 122 data.
Lalu, kita dapat melihat tingkat akurasi model SVM pada data train dengan menggunakan confusion matrix. Confusion matrix (matriks kebingungan) adalah sebuah tabel yang digunakan untuk mengevaluasi performa model klasifikasi dengan membandingkan prediksi model terhadap nilai sebenarnya dari data uji. Kita dapat menggunakan sintaks seperti berikut.
confusionMatrix(prediksi, factor(train$status))
Dari sintaks diatas, didapatkan output sebagai berikut.
Dari gambar diatas, diperoleh confusion matrix dari hasil prediksi terhadap data train dengan variabel status yaitu untuk prediksi level 0 semuanya berada di level 0, sedangkan untuk prediksi level 1 yang benar-benar berada di level 1 terdapat 101 data. Dari matriks tersebut, memiliki keakuratan sebesar 0,911 atau 91,1%.
Selanjutnya, kita akan melakukan prediksi pada data test untuk menguji model SVM. Berikut sintaks yang dapat digunakan.
prediksi2 = predict(datasvm, test)
prediksi2
table(prediksi2)
Dari sintaks diatas, didapatkan output sebagai berikut.
Dari gambar diatas, diperoleh beberapa hasil prediksi dari data test. Untuk levels ‘0’ dan ‘1’ menunjukkan kategori dari variabel dependen, yaitu status yang dikategorikan sebagai : 0-sehat dan 1-sakit parkinson. Dan dari sintaks table() diperoleh banyaknya data pada level 0 sebanyak 7 data, sedangkan pada level 1 sebanyak 42 data.
Lalu, kita akan melihat keakurasian dari hasil prediksi kedua terhadap data test dengan variabel status. Kita dapat menggunakan sintaks sebagai berikut.
confusionMatrix(prediksi2, factor(test$status))
Dari sintaks diatas, didapatkan output sebagai berikut.
Dari gambar diatas, diperoleh confusion matrix dari hasil prediksi terhadap data train dengan variabel status yaitu untuk prediksi level 0 semuanya berada di level 0, sedangkan untuk prediksi level 1 yang benar-benar berada di level 1 terdapat 38 data. Dari matriks tersebut, memiliki keakuratan sebesar 0,918 atau 91,8%. Yang artinya terdapat 38 orang yang sakit parkinson dan sisanya sehat.
Dari kedua prediksi dengan menggunakan data train dan data test, dapat disimpulkan bahwa model SVM yang dibentuk dapat dibilang akurat untuk memprediksi status pasien yang mengidap penyakit parkinson dengan keakuratan sebesar 91,1% dan 91,8%.
Nah, kita telah melihat keakuratan model SVM dalam memprediksi status pasien yang sakit dan sehat. Terima kasih telah membacanya sampai selesai. Selamat mencobaa teman-teman!!!
Wassalamualaikum Wr. Wb.