๐Ÿ›ก๏ธ Support Vector Machine (SVM)

Batas keputusan dengan margin TERLEBAR โ€” dan segelintir titik yang menentukan segalanya.

๐ŸŽฌ Animasi: SVM: Margin Terlebar

SVM mencari garis keputusan dengan margin (jarak) TERLEBAR. Hanya support vector (titik di tepi, berlingkaran) yang menentukan garis.

๐Ÿ“Œ 1. Konsep: Margin Maksimal

Banyak garis bisa memisahkan dua kelas. SVM memilih garis yang paling jauh dari titik-titik terdekat kedua kelas โ€” margin maksimal = paling "aman" terhadap data baru yang mirip.

o o o o โ† garis mana pun di antara dua kelas โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• โ† garis tengah (margin maksimal) x x x x Titik yang "menyentuh" batas margin = SUPPORT VECTOR. Fakta penting: HAPUS semua titik selain support vector โ†’ garis SVM TIDAK BERUBAH. Model SVM ditentukan oleh segelintir titik! Fungsi tujuan (yang di-minimize): (1/n)ยทฮฃ max(0, 1 - yแตขยท(wยทxแตข + b)) + ฮปยท||w||ยฒ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ HINGE LOSS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€ L2 REGULARISASI โ”€โ”˜ โ€ข Hinge loss: menghukum titik di dalam margin / salah sisi โ€ข ฮป (atau C = 1/ฮป): seberapa keras kita menuntut margin C besar โ†’ margin dipaksakan (rawan overfit) C kecil โ†’ toleran, boundary lebih "lentur"

๐Ÿ“Œ 2. Contoh: Linear SVM + Menemukan Support Vector

Output:

๐Ÿ“Œ 3. Contoh: Efek Parameter C (Regularisasi)

C = 1/ฮป mengatur kompromi: memaksakan margin lebar (C besar) vs toleran terhadap titik yang "membandel" (C kecil).

Output:
๐Ÿ’ก Kernel trick: jika data tidak bisa dipisah garis lurus, SVM "memetakan" data ke dimensi lebih tinggi (polinomial, RBF/Gaussian) sehingga jadi linearly separable di sana. Itulah kenapa SVM kuat di data non-linear โ€” tanpa perlu menulis fitur baru manual.

๐Ÿง  Latihan

  1. Di contoh 1, hapus semua titik BUKAN support vector dari training, latih ulang, dan bandingkan garis boundary-nya. Sama persis?
  2. Jelaskan dengan kata-katamu: kenapa margin lebar = lebih robust? (Petunjuk: data baru yang mirip training.)
  3. Buat data make_circles(). Apakah linear SVM bisa mengklasifikasinya dengan baik? Kenapa? (Petunjuk: kernel trick.)
  4. Hitung margin satu titik: margin = yยท(wยทx + b). Berapa margin titik support vector yang paling "pelanggar"?