Lompat ke konten Lompat ke sidebar Lompat ke footer

Penjelasan Lengkap Algoritma Support Vector Machine (SVM)

Support Vector Machine (SVM) merupakan salah satu algoritma machine learning dengan pendekatan berbasis supervised learning yang dapat digunakan untuk masalah klasifikasi dan regresi.

Daftar Isi

Pengertian Support Vector Machine (SVM)

Support Vector Machine–selanjutnya disebut SVM–adalah metode pada machine learning yang dapat digunakan untuk menganalisis data dan mengurutkannya ke dalam salah satu dari dua kategori.

Penjelasan Lengkap Algoritma Support Vector Machine (SVM)

SVM ditemukan oleh Vladimir N. Vapnik dan Alexey Ya. Chervonenkis pada tahun 1963. Sejak itu, SVM telah digunakan dalam klasifikasi teks, hiperteks dan gambar. SVM dapat bekerja dengan karakter tulisan tangan dan algoritma ini telah digunakan di laboratorium biologi untuk melakukan tugas seperti menyortir protein.

Algoritma ini juga dikenal sebagai Support Vector Network (SVN).

SVM bekerja untuk mencari hyperplane atau fungsi pemisah (decision boundary) terbaik untuk memisahkan dua buah kelas atau lebih pada ruang input. Hiperplane dapat berupa line atau garis pada dua dimensi dan dapat berupa flat plane pada multiple plane. 

Ilustrasi Algoritma Support Vector Machine
Sumber: medium.com

Jenis-jenis Algoritma SVM

SVM dapat dibagi menjadi 2 jenis yakni:

1. SVM Linear

SVM linear digunakan untuk data yang dapat dipisahkan secara linear, yang berarti jika sebuah dataset dapat diklasifikasi menjadi dua kelas dengan menggunakan sebuah garis lurus tunggal, maka data tersebut disebut sebagai data yang dapat dipisahkan secara linear, dan classifier yang digunakan disebut sebagai Linear SVM classifier.


2. SVM Non-linear

SVM non-linear digunakan untuk data yang dapat dipisahkan secara non-linear, yang berarti jika sebuah dataset tidak dapat diklasifikasi menggunkan garis lurus, maka data tersebut disebut data non-linear dan classifier yang digunakan disebut sebagai Non-linear SVM classifier.

Kelebihan dan Kelemahan SVM

Adapun kelebihan dan kelemahan dari algoritma SVM adalah sebagai berikut

Kelebihan

  • Cocok untuk ruang dimensi tinggi
  • Efektif untuk kasus dimana jumlah dimensi lebih besar dari jumlah sampel
  • Hemat memori, karena menggunakan training point dari fungsi keputusan (support vector)
  • Bekerja relatif baik ketika ada margin pemisahan yang jelas antar kelas.

Kelemahan

  • Algoritma SVM tidak cocok untuk dataset dalam jumlah yang besar karena membutuhkan waktu training yang lama.
  • SVM tidak bekerja dengan baik ketika dataset memiliki lebih banyak noise misalnya kelas target terjadi tumpang tindih.
  • Jika jumlah fitur untuk setiap titik data melebihi jumlah sampel data training, SVM akan memiliki performa yang kurang baik
  • Karena support vector classifier bekerja dengan meletakkan titik data di atas dan di bawah hyperplane, tidak ada kejelasan probabilistik untuk klasifikasi tersebut. Hal ini dapat menyebabkan beban komputasi yang tinggi.

Hyperplane, Support Vector, dan Max Margin pada Algoritma SVM

Hyperplane

Dalam memisahkan kelas dalam ruang n-dimensi, ada kemungkinkan terdapat beberapa garis atau batas keputusan. Namun kita perlu menemukan batas keputusan terbaik yang membantu mengklasifikasikan titik data. Batas terbaik ini dikenal sebagai hyperplane dari SVM.

Hyperplane adalah batas keputusan yang membedakan dua kelas dalam SVM. Titik data yang jatuh di kedua sisi hyperplane dapat dikaitkan dengan kelas yang berbeda.

Dimensi hyperplane bergantung pada fitur yang ada pada dataset, yang artinya jika terdapat dua fitur, maka hyperplane akan berbentuk garis lurus. Dan jika terdapat tiga fitur, maka hyperplane akan menjadi bidang dua dimensi.

Berikut adalah contoh ilustrasi hyperplane

Ilustrasi Hyperplane pada SVM
Sumber: medium.com

Support Vector

Support vector ialah titik data atau vektor yang paling dekat dengan hyperplane dan yang mempengaruhi posisi hyperplane. Karena vektor-vektor ini mendukung hyperplane, maka disebut support vector.

Ilustrasi Support Vector pada SVM
Sumber: javatpoint.com

Max Margin

Margin adalah jarak antara support vector dari masing-masing kelas di sekitar hyperplane. Pada gambar dibawah, margin diilustrasikan dengan jarak antara 2 garis putus. Margin terbesar (max margin) dapat ditemukan dengan memaksimalkan nilai jarak antara hyperplane dan titik terdekatnya. 

Dapat dilihat pada gambar bagian kanan memiliki margin lebih besar daripada gambar bagian kiri. Secara intuitif, margin yang lebih besar akan menghasilkan performa klasifikasi yang lebih baik. 

Ilustrasi max margin pada SVM
Sumber: medium.com

Cara Kerja Algoritma SVM

Algoritma SVM bekerja dengan cara memetakan data ke ruang fitur berdimensi tinggi sehingga titik data dapat dikategorikan, bahkan ketika data tersebut tidak dapat dipisahkan secara linier.

Apabila pemisah antar kategori berhasil ditemukan, data dapat ditransformasikan sedemikian rupa sehingga pemisah tersebut dapat digambarkan sebagai hyperplane. Kemudian, karakteristik data baru dapat digunakan untuk memprediksi pada kelompok mana record baru seharusnya berada.

Sebagai ilustrasi, perhatikan gambar di bawah dimana terdapat titik-titik data yang terpisah dalam 2 kategori, yakni bulatan hitam dan bulatan putih.

Gambar 1: Dataset awal
Gambar 1: Dataset awal

Kedua kategori tersebut kemudian dipisahkan dengan kurva, seperti yang terlihat pada gambar 2

Gambar 2: Dataset yang ditambahkan pemisah
Gambar 2: Dataset yang ditambahkan pemisah

Setelah dilakukan transformasi, batas antara dua kategori dapat ditentukan oleh hyperplane, seperti yang ditunjukkan gambar 3

Gambar 3. Data hasil transformasi
Gambar 3. Data hasil transformasi

Fungsi matematis yang digunakan pada proses transformasi algoritma SVM dikenal dengan istilah fungsi kernel (kernel function). Fungsi kernel digunakan untuk mengklasifikasikan data non-linier. Caranya adalah dengan mengubah data non-linear menjadi data linier dan kemudian membentuk hyperplane.

Fungsi kernel linier direkomendasikan ketika pemisahan linier data dilakukan secara langsung. Dalam kasus yang berbeda, penggunaan fungsi lain mungkin diperlukan. 

Kita perlu bereksperimen dengan fungsi yang berbeda untuk mendapatkan model terbaik dalam setiap kasus, karena biasanya membutuhkan algoritma dan parameter yang berbeda.

Penutup

Demikianlah artikel mengenai penjelasan algoritma Support Vector Machine (SVM) di bidang AI. Semoga informasi yang dipaparkan bermanfaat bagi Anda sebagai pembaca.

Salam!

Trivusi
Trivusi Ikatlah ilmu dengan menulis. Menebar manfaat dengan berbagi :)

Posting Komentar untuk "Penjelasan Lengkap Algoritma Support Vector Machine (SVM)"