🖲️Dasar Teori
Apa itu SVM?
Support Vector Machine, atau disingkat SVM, merupakan salah satu algoritma pembelajaran mesin yang paling elegan dan kuat untuk tugas klasifikasi. Secara intuitif, SVM berusaha menemukan garis atau bidang pemisah terbaik antara dua kelas data. “Terbaik” di sini berarti bukan hanya sekadar memisahkan data dengan benar, melainkan juga memiliki margin pemisahan yang paling lebar—jarak antara garis pemisah dengan titik data terdekat dari masing-masing kelas. Titik-titik terdekat itu disebut support vectors, karena merekalah yang “menyokong” atau menentukan posisi garis pemisah.
Bayangkan kita memiliki dua kelompok titik di bidang dua dimensi—merah di kiri dan biru di kanan. Banyak garis bisa memisahkan keduanya, tetapi SVM akan memilih garis yang memberi ruang paling luas di antara kedua kelompok itu. Dengan cara ini, SVM menghasilkan model yang lebih tahan terhadap noise dan lebih mampu melakukan generalisasi terhadap data baru. Inilah alasan mengapa SVM dikenal sebagai pendekatan large-margin classification.
Konsep Margin dalam SVM
Margin merupakan inti dari metode SVM. Jika semua titik dari dua kelas dapat dipisahkan dengan garis lurus, maka SVM akan mencari hyperplane (garis dalam 2D, bidang dalam 3D, dan seterusnya) yang memaksimalkan jarak antara hyperplane tersebut dan titik data terdekat dari masing-masing kelas. Namun dalam praktik, data jarang sesempurna itu. Karena itulah dikembangkan dua pendekatan: hard margin dan soft margin.
Hard margin menuntut agar semua titik berada di sisi yang benar dari garis pemisah tanpa ada kesalahan sama sekali. Pendekatan ini ideal secara teori, tetapi tidak realistis ketika data mengandung outlier atau noise. Sebaliknya, soft margin memperbolehkan sebagian titik melanggar garis batas dengan penalti tertentu. Dengan cara ini, model menjadi lebih fleksibel dan mampu menangani data yang tidak terpisah sempurna.
Parameter penting dalam pengaturan ini adalah C, yang berfungsi sebagai pengendali keseimbangan antara margin yang lebar dan jumlah pelanggaran. Nilai C yang besar membuat model lebih ketat, berusaha keras agar semua titik diklasifikasikan dengan benar namun berisiko overfitting. Sebaliknya, nilai C yang kecil memberi kelonggaran terhadap kesalahan, menciptakan margin yang lebih lebar tetapi mungkin menyebabkan underfitting. Menemukan nilai C yang ideal merupakan bagian penting dari proses pelatihan SVM.
Kernel Trick: Solusi untuk Data Non-Linear
Sampai di sini, SVM tampak hanya bisa bekerja pada data yang terpisah secara linear. Namun kenyataannya, banyak dataset di dunia nyata memiliki batas yang melengkung atau tidak teratur. Untuk mengatasi hal ini, SVM menggunakan konsep yang disebut kernel trick.
Kernel trick memungkinkan SVM memetakan data ke ruang berdimensi lebih tinggi, di mana data yang tadinya tidak bisa dipisahkan menjadi dapat dipisahkan secara linear. Menariknya, SVM tidak benar-benar melakukan transformasi eksplisit ke ruang tinggi itu, melainkan hanya menghitung hasil perkalian dalam (inner product) dari titik-titik yang sudah “seolah-olah” ditransformasikan. Dengan trik ini, perhitungan menjadi jauh lebih efisien.
Beberapa kernel yang umum digunakan adalah:
Linear kernel, untuk data yang dapat dipisahkan secara linear.
Polynomial kernel, yang mampu membuat batas keputusan melengkung dengan derajat kelengkungan yang diatur oleh parameter derajat (degree).
Radial Basis Function (RBF) kernel atau Gaussian kernel, yang sangat populer karena dapat menghasilkan batas keputusan kompleks yang halus.
Sigmoid kernel, yang meniru fungsi aktivasi pada jaringan saraf tiruan.
Parameter γ (gamma) berperan penting dalam kernel RBF. Nilai gamma menentukan seberapa jauh pengaruh satu titik data terhadap lingkungan sekitarnya: gamma besar berarti pengaruhnya sempit (batas keputusan sangat tajam), sedangkan gamma kecil membuat pengaruhnya lebih luas (batas keputusan lebih halus). Kombinasi C dan gamma yang tepat adalah kunci agar model tidak terlalu kaku atau terlalu longgar.
Kelebihan dan Kekurangan
Kekuatan utama SVM terletak pada teori matematisnya yang kuat dan kemampuannya menangani data berdimensi tinggi dengan baik. Algoritma ini relatif tahan terhadap overfitting selama parameter C dan gamma diatur dengan hati-hati. Selain itu, SVM tidak bergantung pada jumlah fitur yang besar—ia bekerja baik pada teks, citra, maupun sinyal.
Namun, SVM juga memiliki keterbatasan. Ia tidak efisien untuk dataset yang sangat besar karena kompleksitas komputasinya tinggi. Selain itu, hasil model sulit diinterpretasikan secara langsung, terutama jika menggunakan kernel non-linear. Proses tuning hyperparameter pun bisa memakan waktu.
Intuisi Cara Kerja SVM
Simak video dari Josh Starmer berikut,
Fundamental SVM
SVM - Poly Kernel
SVM - RBF Kernel
Last updated