Apa itu support vector machine (SVM)?
Support vector machine adalah classifier yang memisahkan dua kelas dengan hyperplane yang menyisakan margin selebar mungkin ke titik training terdekat. Titik-titik terdekat itu disebut support vector, dan hanya titik-titik itu yang menentukan garis batas. Versi soft margin menoleransi sebagian error, dan kernel membuat metode yang sama bisa menggambar garis batas melengkung.
SVM termasuk classifier serbaguna paling akurat dari akhir 1990-an sampai 2000-an, dan dipakai untuk kategorisasi teks, pengenalan angka tulisan tangan, dan tugas bioinformatika seperti klasifikasi protein. SVM masih bekerja baik pada dataset kecil dan menengah dengan banyak feature. Ide yang diperkenalkannya, yaitu margin, hinge loss, dan kernel, muncul di berbagai bidang machine learning, dari kernel ridge regression sampai analisis neural network.
Ide utama
- SVM memilih hyperplane pemisah dengan margin terlebar ke titik terdekat dari tiap kelas.
- Hanya support vector, yaitu titik di atas atau di dalam margin, yang menentukan garis batas.
- Parameter C menyeimbangkan lebar margin dan error training pada SVM soft margin.
- Kernel membuat SVM bisa mempelajari garis batas non-linear dengan mengganti dot product dengan fungsi kemiripan.
- Pada kernel RBF, γ menentukan seberapa jauh pengaruh tiap titik training.
- SVM multi-kelas menggabungkan beberapa classifier biner, dengan one-vs-rest atau one-vs-one.
Pertanyaan umum
Apakah SVM lebih baik daripada logistic regression?
Secara umum, tidak ada yang selalu menang. Keduanya mempelajari garis batas linear, tetapi hinge loss mengabaikan titik yang jauh dari garis batas, sedangkan logistic loss memakai setiap titik dan menghasilkan probabilitas. Dengan kernel, SVM bisa mengikuti garis batas non-linear yang tidak bisa diikuti logistic regression biasa. Pada dataset tabular besar, gradient-boosted tree sering mengalahkan keduanya.
Apakah SVM bisa menghasilkan probabilitas?
Tidak secara langsung. Decision function memberi skor bertanda yang sebanding dengan jarak dari garis batas. Platt scaling mencocokkan sigmoid ke skor itu pada data held-out untuk mengubahnya menjadi probabilitas, dan scikit-learn melakukannya saat probability=True, dengan biaya training tambahan.
Apakah SVM butuh feature scaling?
Ya. Margin dan kernel RBF sama-sama bergantung pada jarak, jadi feature dengan rentang besar akan mendominasi yang lain. Standardisasi setiap feature ke mean nol dan variance satu adalah langkah awal yang umum.
Apakah SVM bisa dipakai untuk regresi?
Bisa. Support vector regression (SVR) mencocokkan fungsi yang menjaga sebagian besar titik di dalam tabung selebar ε di sekitarnya dan mengabaikan error yang lebih kecil dari ε. Titik di atas atau di luar tabung menjadi support vector, dan kernel yang sama tetap berlaku.
Penjelasan terkait
- Bias dan Decision Boundary · Cara bias term menggeser aktivasi dan membentuk area keputusan
- Constrained Optimization · Lagrange multiplier: optimasi dengan constraint
- Konveksitas, Minimum, dan Saddle Point · Kenapa sebagian masalah optimasi lebih sulit daripada yang lain
- Regularization · Dropout, L1, dan L2 agar model tetap jujur
- K-Nearest Neighbors · Klasifikasi berdasarkan kedekatan dan metrik jarak
- Klasifikasi vs Regresi · Dua jenis prediksi dan kapan memakai masing-masing
Referensi
- Cortes & Vapnik (1995), "Support-Vector Networks", Machine Learning
- Boser, Guyon & Vapnik (1992), "A Training Algorithm for Optimal Margin Classifiers"
- James, Witten, Hastie & Tibshirani, "An Introduction to Statistical Learning", chapter 9: Support Vector Machines
Terakhir diperbarui