Support Vector Machine (SVM): Contoh Perhitungan Manual dan Hyperplane

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

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:

$$ f(x) = w \cdot x + b $$

Untuk dua atribut:

$$ f(x) = w_1x_1 + w_2x_2 + b $$

Aturan klasifikasi:

  • \(f(x) \ge 0\) → kelas +1
  • \(f(x) < 0\) → kelas -1

Syarat Hard-Margin

Untuk data latih yang terpisah sempurna:

$$ y_i(w \cdot x_i + b) \ge 1 $$

Support vector memenuhi kondisi:

$$ y_i(w \cdot x_i + b) = 1 $$

Lebar Margin

Lebar margin SVM:

$$ Margin = \frac{2}{||w||} $$

dengan:

$$ ||w|| = \sqrt{w_1^2 + w_2^2} $$

#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:

$$ w \cdot x + b = -1 $$

dan:

$$ w \cdot x + b = +1 $$

#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:

$$ 2a + 2a + b = -1 $$

sehingga:

$$ 4a + b = -1 $$

Kemudian masukkan support vector B1 = (3,3) ke margin kelas +1:

$$ 3a + 3a + b = 1 $$

sehingga:

$$ 6a + b = 1 $$

Kurangkan persamaan kedua dengan pertama:

$$ (6a+b) - (4a+b) = 1 - (-1) $$
$$ 2a = 2 $$
$$ a = 1 $$

Substitusikan \(a=1\):

$$ 4(1) + b = -1 $$
$$ b = -5 $$

Jadi:

  • \(w_1 = 1\)
  • \(w_2 = 1\)
  • \(b = -5\)

#04 Membentuk Hyperplane dan Margin

Setelah \(w\) dan \(b\) diperoleh, hyperplane menjadi:

$$ 1x_1 + 1x_2 - 5 = 0 $$

atau:

$$ x_1 + x_2 - 5 = 0 $$

Garis Margin Kelas -1

$$ x_1 + x_2 - 5 = -1 $$
$$ x_1 + x_2 = 4 $$

Garis Margin Kelas +1

$$ x_1 + x_2 - 5 = 1 $$
$$ x_1 + x_2 = 6 $$

Menghitung Lebar Margin

Sebelum melihat nilainya, hitung norma \(w\):

$$ ||w|| = \sqrt{1^2 + 1^2} = 1.4142 $$

Maka lebar margin:

$$ Margin = \frac{2}{1.4142} = 1.4142 $$

#05 Menghitung Decision Function

Setelah hyperplane diperoleh, setiap data dapat diuji menggunakan:

$$ f(x) = x_1 + x_2 - 5 $$

Contoh Perhitungan A1

Untuk A1 = (1, 1):

$$ f(A1) = 1 (1) + 1 (1) - 5 = -3 $$

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:

$$ f(x) = (1 \times 2.5) + (1 \times 3) - 5 = 0.5 $$

Karena \(f(x) = 0.5\) lebih besar atau sama dengan 0, maka data uji masuk ke Kelas B.

Jarak data uji ke hyperplane:

$$ \frac{|0.5|} {1.4142} = 0.3536 $$
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:

$$ \min_{w,b,\xi} \frac{1}{2}||w||^2 + C\sum_i \xi_i $$

dengan batas:

$$ y_i(w \cdot x_i + b) \ge 1-\xi_i $$

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

  1. Cortes, C. & Vapnik, V. (1995). Support-Vector Networks. Machine Learning, 20, 273–297.
  2. 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.

Ada yang Ditanyakan?

Jika anda masih ada kesulitan atau kekeliruan tentang penjelasan metode di atas, bisa menghubungi kami lewat WA/Email sesuai halaman Kontak.

Jika ingin memiliki file excel dari metode di atas bisa melihat cara download di halaman Download.

Jika ingin memiliki source code dari metode di atas, baik berbasis web maupun desktop bisa melihat daftar harga donasi di halaman Daftar Source Code.

Donasi ini digunakan oleh penulis untuk membayar server dan membeli kopi sembari membuat tutorial Metode/Algoritma lainnya :).