Tutorial ini membahas Support Vector Machine (SVM) dan contoh perhitungan manualnya untuk klasifikasi dua kelas. Contoh menggunakan SVM linear dengan data dua dimensi agar proses pembentukan hyperplane, margin, dan support vector dapat dipahami dengan jelas.
Perhitungan dilakukan mulai dari menyiapkan data, menentukan support vector, mencari nilai bobot \(w\) dan bias \(b\), membentuk hyperplane, menghitung margin, sampai melakukan klasifikasi data baru menggunakan decision function.
Daftar Isi
- Pengertian Support Vector Machine
- Hyperplane, Margin, dan Support Vector
- Rumus Dasar SVM Linear
- #01 Data Latih
- #02 Menentukan Support Vector
- #03 Menghitung Bobot dan Bias
- #04 Membentuk Hyperplane dan Margin
- #05 Menghitung Decision Function
- #06 Klasifikasi Data Uji
- Soft Margin dan Parameter C
- Kernel pada SVM
- Ringkasan
- FAQ SVM
- Referensi
- Source Code SVM
Pengertian Support Vector Machine
Support Vector Machine atau SVM adalah algoritma supervised learning yang dapat digunakan untuk klasifikasi. Pada kasus klasifikasi linear, SVM mencari sebuah garis atau bidang pemisah yang disebut hyperplane dengan margin sebesar mungkin terhadap data dari kelas yang berbeda.
Data yang berada paling dekat dengan hyperplane disebut support vector. Titik-titik inilah yang paling berpengaruh dalam menentukan posisi hyperplane optimal.
Hyperplane, Margin, dan Support Vector
- Hyperplane adalah batas keputusan yang memisahkan dua kelas.
- Margin adalah jarak antara dua garis/bidang pembatas yang melewati support vector dari masing-masing kelas.
- Support vector adalah data terdekat dengan hyperplane.
Tujuan SVM adalah mendapatkan hyperplane yang memiliki margin sebesar mungkin sambil tetap memisahkan kelas dengan baik.
Rumus Dasar SVM Linear
Decision Function
Untuk data \(x\), fungsi keputusan SVM linear adalah:
Untuk dua atribut:
Aturan klasifikasi:
- \(f(x) \ge 0\) → kelas +1
- \(f(x) < 0\) → kelas -1
Syarat Hard-Margin
Untuk data latih yang terpisah sempurna:
Support vector memenuhi kondisi:
Lebar Margin
Lebar margin SVM:
dengan:
#01 Data Latih
Contoh menggunakan 8 data dua dimensi dengan dua kelas. Kelas A diberi label -1, sedangkan Kelas B diberi label +1.
| Kode | X1 | X2 | Label y | Kelas |
|---|---|---|---|---|
| A1 | 1 | 1 | -1 | Kelas A |
| A2 | 1 | 2 | -1 | Kelas A |
| A3 | 2 | 1 | -1 | Kelas A |
| A4 | 2 | 2 | -1 | Kelas A |
| B1 | 3 | 3 | 1 | Kelas B |
| B2 | 3 | 4 | 1 | Kelas B |
| B3 | 4 | 3 | 1 | Kelas B |
| B4 | 4 | 4 | 1 | Kelas B |
#02 Menentukan Support Vector
Dari susunan data, titik terdekat antar-kelas adalah:
- A4 = (2, 2), label -1
- B1 = (3, 3), label +1
Kedua titik tersebut digunakan sebagai support vector karena berada paling dekat dengan batas keputusan optimal.
Pada bentuk kanonik SVM, support vector berada pada dua garis margin:
dan:
#03 Menghitung Bobot dan Bias
Karena data pada contoh ini simetris terhadap arah diagonal, normal hyperplane dapat ditulis dengan \(w_1 = w_2 = a\).
Sebelum melihat hasil akhirnya, masukkan support vector A4 = (2,2) ke persamaan margin kelas -1:
sehingga:
Kemudian masukkan support vector B1 = (3,3) ke margin kelas +1:
sehingga:
Kurangkan persamaan kedua dengan pertama:
Substitusikan \(a=1\):
Jadi:
- \(w_1 = 1\)
- \(w_2 = 1\)
- \(b = -5\)
#04 Membentuk Hyperplane dan Margin
Setelah \(w\) dan \(b\) diperoleh, hyperplane menjadi:
atau:
Garis Margin Kelas -1
Garis Margin Kelas +1
Menghitung Lebar Margin
Sebelum melihat nilainya, hitung norma \(w\):
Maka lebar margin:
#05 Menghitung Decision Function
Setelah hyperplane diperoleh, setiap data dapat diuji menggunakan:
Contoh Perhitungan A1
Untuk A1 = (1, 1):
Karena hasilnya negatif, A1 berada pada sisi kelas -1. Functional margin:
y × f(x) = -1 × -3 = 3
Dengan cara yang sama, seluruh data dihitung seperti tabel berikut.
| Kode | X1 | X2 | y | f(x) | y × f(x) | Jarak ke Hyperplane | Status |
|---|---|---|---|---|---|---|---|
| A1 | 1 | 1 | -1 | -3 | 3 | 2.1213 | Bukan Support Vector |
| A2 | 1 | 2 | -1 | -2 | 2 | 1.4142 | Bukan Support Vector |
| A3 | 2 | 1 | -1 | -2 | 2 | 1.4142 | Bukan Support Vector |
| A4 | 2 | 2 | -1 | -1 | 1 | 0.7071 | Support Vector |
| B1 | 3 | 3 | 1 | 1 | 1 | 0.7071 | Support Vector |
| B2 | 3 | 4 | 1 | 2 | 2 | 1.4142 | Bukan Support Vector |
| B3 | 4 | 3 | 1 | 2 | 2 | 1.4142 | Bukan Support Vector |
| B4 | 4 | 4 | 1 | 3 | 3 | 2.1213 | Bukan Support Vector |
Support vector mempunyai nilai \(y_i f(x_i)=1\), sedangkan data yang lebih jauh dari margin memiliki nilai lebih besar dari 1.
#06 Klasifikasi Data Uji
Data baru yang akan diklasifikasikan:
- X1 = 2.5
- X2 = 3
Sebelum menentukan kelas, hitung decision function:
Karena \(f(x) = 0.5\) lebih besar atau sama dengan 0, maka data uji masuk ke Kelas B.
Jarak data uji ke hyperplane:
| Data | X1 | X2 | f(x) | Prediksi |
|---|---|---|---|---|
| Data Uji | 2.5 | 3 | 0.5 | Kelas B |
Soft Margin dan Parameter C
Contoh di atas menggunakan hard-margin SVM karena data dapat dipisahkan sempurna. Pada data nyata sering terdapat overlap atau noise, sehingga digunakan soft-margin SVM.
Secara umum, optimasinya dapat ditulis:
dengan batas:
Parameter C mengatur kompromi antara margin yang besar dan penalti terhadap kesalahan klasifikasi.
Kernel pada SVM
Jika data tidak dapat dipisahkan secara linear, SVM dapat menggunakan kernel trick untuk bekerja pada ruang fitur yang lebih kompleks.
Kernel yang umum digunakan antara lain:
- Linear Kernel
- Polynomial Kernel
- Radial Basis Function (RBF)
Tutorial ini menggunakan kernel linear karena tujuan utamanya adalah memperlihatkan proses perhitungan hyperplane dan margin secara manual.
Ringkasan
Support Vector Machine mencari hyperplane yang memisahkan dua kelas dengan margin sebesar mungkin. Pada contoh ini diperoleh \(w=(1,1)\) dan \(b=-5\), sehingga hyperplane adalah \(x_1+x_2-5=0\). Support vector berada pada A4 dan B1, sedangkan data uji diklasifikasikan ke Kelas B.
FAQ SVM
Apa fungsi support vector?
Support vector adalah data terdekat dengan hyperplane dan menjadi titik yang paling menentukan posisi margin optimal.
Apa fungsi hyperplane?
Hyperplane merupakan batas keputusan yang digunakan untuk memisahkan kelas.
Apa perbedaan hard-margin dan soft-margin SVM?
Hard-margin digunakan ketika data dapat dipisahkan sempurna, sedangkan soft-margin mengizinkan sebagian pelanggaran margin atau kesalahan klasifikasi dengan penalti tertentu.
Apa fungsi parameter C?
Parameter C mengontrol kompromi antara margin yang lebih lebar dan penalti terhadap kesalahan klasifikasi.
Kapan kernel diperlukan?
Kernel digunakan ketika hubungan antar-kelas tidak dapat dipisahkan dengan hyperplane linear pada ruang fitur asli.
Apakah SVM hanya untuk dua kelas?
Formulasi dasar SVM bersifat biner, tetapi klasifikasi multikelas dapat dibangun menggunakan strategi seperti one-vs-rest atau one-vs-one.
Referensi
- Cortes, C. & Vapnik, V. (1995). Support-Vector Networks. Machine Learning, 20, 273–297.
- Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer.
Source Code Support Vector Machine
Berikut adalah beberapa source code yang menggunakan metode Support Vector Machine, baik berbasis web maupun desktop.




