Support Vector Machine Algoritma Untuk Machine Learning

By Saddam Hussein/ Machine Learning / November 18, 2021 February 23, 2022Pada artikel ini akan dijelaskan mengenai Support Vector Machine (SVM) yang merupakan salah satu algoritma populer dalam mempelajari machine learning dan data science.

Support Vector Machine (SVM) adalah salah satu algoritma machine learning dengan pendekatan supervised learning yang bekerja dengan mencari hyperplane atau fungsi pemisah terbaik untuk memisahkan kelas. Algoritma SVM memiliki konsep dan dasar matematis yang mapan sehingga menjadi algoritma yang populer. Algoritma ini dapat digunakan untuk klasifikasi (SVM classification) dan regresi (SVM regression).

Sebelum melanjutkan membaca, artikel ini merupakan bagian dari seri artikel yang menjelaskan tentang Algoritma Machine Learning.

Jika kamu sedang belajar mengenai algoritma machine learning meliputi pengertian, jenis dan macamnya, bagaimana cara kerjanya, silahkan mulai dari artikel ini dan menelusuri tautan-tautan di dalamnya:

Algoritma Machine Learning: Jenis-jenis dan Contoh Algoritmanya.

Apa itu SVM?

Support Vector Machine (SVM) merupakan salah satu algoritma machine learning dengan pendekatan supervised learning yang paling populer dan sering digunakan.

Algoritma ini mengkelaskan data baru mengelompokkan data-data dengan memisahkannya berdasarkan hyperplane dalam ruang N-dimensi (N – jumlah fitur) yang secara jelas mengklasifikasikan titik data.

Algoritma SVM dapat digunakan untuk kasus klasifikasi (Support Vector Classification) maupun regresi (Support Vector Regression). Meskipun demikian, SVM lebih sering digunakan dalam proses klasifikasi.

Support vector machine sangat disukai oleh banyak orang karena algoritma ini dapat menghasilkan akurasi yang signifikan dengan daya komputasi yang lebih sedikit.

SVM memiliki pendekatan yang unik jika dibandingkan dengan algoritma supervised learning lainnya.

Jika banyak algoritma lain mengkelaskan data berdasarkan kemiripan titik data, SVM melakukannya dengan menemukan batas antar kelas dan mengkelaskan data berdasarkan batas tersebut.

Contohaplikasi SVM

Beberapa contoh dimana algoritma SVM dapat diaplikasikan antara lain:

* Klasifikasi teks: penetapan kategori, pendeteksian spam, dan analisis sentimen.
* Pengenalan gambar: SVM bekerja sangat baik dalam pengenalan berbasis gambar dan klasifikasi berbasis warna.

Metode algoritma SVM (step by step)

Algoritma SVM bekerja dengan berdasarkan langkah-langkah sebagai berikut:

1. Langkah-1: Tentukan batas kelas (hyperplane) yang mungkin dari dataset.
2. Langkah-2: Pilih hyperplane berdasarkan margin maksimum

Untuk lebih memudahkan pemahaman, simak visualisasi di bawah ini berikut penjelasan di bawahnya.

Metode algoritma Support Vector MachineAda beberapa hal penting yang harus kita pahami saat mempelajari dan menggunakan algoritma SVM, yaitu hyperplanes dan support vector.

Saya sarankan untuk sambil melihat ilustrasi algoritma SVM di atas ketika membaca penjelasan di bawah ini.

Apa itu hyperplanes?
Hyperplanes dalam SVM adalah sebuah fungsi yang berperan sebagai batas yang membantu kita mengklasifikasikan titik data. Titik data yang terletak di kedua sisi hyperplane dapat dimaknai sebagai kelas yang berbeda.

Dimensi hyperplane tergantung pada jumlah fitur.

Jika jumlah fitur input adalah 1, maka hyperplane hanyalah sebuah titik.

Jika jumlah fitur input adalah 2, maka hyperplane hanyalah sebuah garis.

Jika jumlah fitur input adalah 3, maka hyperplane menjadi bidang dua dimensi.

Selanjutnya, kita sudah akan mulai mengalami kesulitan untuk membayangkan ketika jumlah fitur melebihi 3.

Apa itu support vector?
Support vector adalah titik data yang paling dekat dengan hyperplane dan mempengaruhi posisi dan orientasi hyperplane.

Dengan menggunakan vektor pendukung ini, kita memaksimalkan margin pengklasifikasi. Menghapus support vector akan mengubah posisi hyperplane.

Bagaimana kita menemukan hyperplane yang tepat?

Atau, dengan bahasa yang lebih sederhana, bagaimana cara terbaik untuk memisahkan dua kelas dalam data?

Jarak antara hyperplane dan support vector dikenal sebagai margin.

Tujuannya algoritmanya adalah untuk memilih hyperplane dengan margin terbesar yang mungkin antara hyperplane dan titik mana pun dalam data training.

Dengan seperti ini, model akan memberikan peluang lebih besar untuk data baru diklasifikasikan dengan akurat.

Keunikan SVM

Pendekatan yang dilakukan SVM cukup berbeda jika dibandingkan dengan algoritma klasifikasi lainnya seperti K-Nearest Neighbor.

Algoritma lain kebanyakan melakukan pemisahan berdasarkan pola rata-rata data yang ada. Sedangkan SVM melakukan klasifikasi berdasarkan titik data yang mirip tetapi berbeda kelas.

Misal, dalam task klasifikasi jeruk vs apel.

Kebanyakan algoritma akan menghitung dan membedakan berdasarkan titik-titik data “apel yang sangat apel” vs “jeruk yang sangat jeruk”.

Sedangkan SVM akan menghitung dan membedakan berdasarkan titik-titik data “apel yang paling mirip jeruk” vs “jeruk yang paling mirip apel”.

Berikut ilustrasinya.

Pendekatan SVMBagaimana jika data tidak bisa dipisah secara linier atau data memiliki banyak noise?

Permasalahan yang sering terjadi adalah bahwa tidak semua data dalam dataset dapat dipisahkan secara linier.

Untuk mengatasi hal ini, digunakanlah higher dimensional space yang dilakukan dengan memetakan data menggunakan mapping function tertentu.

Penambahan higher dimensional space memungkinkan pemisahan kelas dapat dilakukan secara non linier.

Lihat ilustrasi di bawah ini.

Ilustrasi pemetaan data ke higher dimensional space pada SVM. Sumber: Habib, Permasalahan selanjutnya adalah pemetaan ke higher dimensional space membutuhkan cost komputasi yang tinggi.

Untuk mengatasi hal ini, digunakanlah “kernel” SVM.

Jenis-jenis SVM
Algoritma SVM setidaknya dapat dibagi menjadi dua jenis:

Penjelasan dari awal artikel hingga kalimat ini adalah penjelasan mengenai Simple SVM.

Simple SVM atau biasa juga disebut SVM (saja) biasanya digunakan untuk melakukan regresi linier dan masalah dengan tujuan klasifikasi.

Kernel SVM memiliki logika yang sama dengan SVM. Perbedaannya adalah bahwa pada kernel SVM, algoritma melakukan pemetaan data berdasarkan fungsi kernel tertentu.

Kernel SVM memiliki lebih banyak fleksibilitas untuk data non linier karena kita dapat menambahkan lebih banyak feature untuk dapat digunakan untuk memaksimalkan hyperplane.

Kernel SVM
Kernel SVM biasanya digunakan ketika dataset berupa data yang tidak linier, atau data memuat kelas-kelas yang overlap atau tercampur.

Ini merupakan salah satu kelebihan SVM, di mana algoritma ini dapat digunakan untuk proses klasifikasi maupun regresi, pada data linier dan non-linier.

Secara lebih lengkap kelebihan SVM ini akan kita bahas pada bab selanjutnya.

Sekarang, mari kita fokus pada beberapa jenis fungsi kernel.

* Gaussian Radial Basis Function (RBF) Kernel. Salah satu kernel yang paling kuat dan umum digunakan di SVM. Biasanya pilihan untuk data non-linear
* Sigmoid Kernel. Lebih berguna dalam jaringan saraf daripada di mesin vektor dukungan, tetapi ada kasus penggunaan khusus sesekali.
* Polynomial Kernel.
* Lainnya:Ada banyak kernel lain yang dapat kita gunakan.

Beberapa kernel lainnya antara lain:

* Laplace RBF kernel,
* Hyperbolic tangent kernel,
* Sigmoid kernel,
* Bessel function of the first kind kernel
* ANOVA RBF kernel

Memilih fungsi kernel
Pemilihan kernel mungkin keputusan yang harus diambil ketika kita harus memenuhi batasan kesalahan tertentu, ingin mencoba dan mempercepat waktu training, atau ingin menyempurnakan parameter.

Setiap masalah berbeda, dan fungsi kernel bergantung pada tampilan data.

SVM untuk regresi (Support Vector Regression)

Algoritma SVM juga dapat digunakan untuk regresi.

Lebih tepatnya, algoritma ini sering disebut sebagai Support Vector Regression (SVR).

Algoritma SVR dibagi menjadi dua:

Linear SVR
Untuk lebih memahami linear SVR, kita bandingkan dengan metode regresi linear sederhana.

Lihat ilustrasi di bawah ini.

Metode algoritma Support Vector Regression

Berikut penjelasannya:

Pada linear SVR, pengukuran regresi tidak menggunakan garis, melainkan menggunakan “tube”, yang disebut dengan Epsilon Insensitive Tube.

Tube ini merupakan margin of error yang dizinkan oleh model.

Di sini error dihitung dengan menghitung jarak titik-titik yang berada di luar tube ke batas tube.

Sedangkan titik-titik yang berada di dalam tube errornya diabaikan.

Ini berbeda dengan regresi linear, di mana error dihitung pada setiap titik data dengan menghitung jarak kuadratnya ke garis regresi.

Non linear SVR

Non linear SVR lebih rumit untuk dipahami.

Pada prinsipnya, non linear SVR menggunakan pendekatan kernel seperti pada proses Kernel SVM pada tugas-tugas klasifikasi.

Kernel digunakan untuk memetakan data pada dimensi yang lebih tinggi (higher dimension) sehingga diperoleh hyperplane/ tube untuk regresi yang lebih representatif.

Berikut ilustrasinya.

Kelebihan SVM

Berikut ini adalah kelebihan atau keunggulan dari algoritma Support Vector Machine (SVM):

* Efektif pada dataset dengan margin pemisahan kelas yang jelas
* Efektif dalam kasus di mana jumlah fitur lebih besar dari jumlah titik data.
* Fungsi kernel yang berbeda dapat ditentukan untuk fungsi keputusan.
* SVM dapat menemukan hubungan kompleks antara data tanpa kita perlu melakukan banyak transformasi sendiri.

Kelemahan SVM

Sedangkan beberapa kelemahan atau kekurangan dari algoritma SVM antara lain:

* SVM tidak berfungsi dengan baik pada dataset yang besar karena waktu pelatihan yang dibutuhkan lebih tinggi
* SVM tidak secara langsung memberikan perkiraan probabilitas. Itu dihitung menggunakan validasi silang (cross validation) yang membutuhkan computation cost yang lebih tinggi.
* Kita perlu memahami fungsi kernel

Kapan menggunaan SVM

Meskipun dapat digunakan untuk melakukan regresi, SVM lebih banyak diterapkan pada proses klasifikasi.

SVM banyak diterapkan karena memiliki pendekatan klasifikasi yang cukup berbeda dengan yang lain, yaitu menggunakan dasar optimum margin.

Selain itu, penggunaan berbagai macam kernel membuat algoritma SVM menjadi lebih robust pada kasus-kasus data non linier.

Sebagai tambahan, SVM adalah algoritma yang cocok diterapkan dalam kasus-kasus berikut:

* Ketika jumlah fitur (variabel) dan jumlah data sangat besar
* Ketika sparity dalam masalah sangat tinggi, yaitu, sebagian besar fitur memiliki nilai nol.
* Ketika pembatasan kelas tidak linier, di mana kita bisa menggunakan kernel tertentu untuk proses klasifikasinya

Cara melakukan SVM (tutorial)

Algoritma SVM merupakan salah satu algoritma terbaik yang sering digunakan dalam machine learning.

Untuk menerapkan SVM di R, silahkan menggunakan tutorial pada tautan ini:

Sedangkan untuk menerapkan SVM di Python, silahkan menggunakan tutorial pada tauatan ini:

Pada artikel ini kita belajar mengenai algoritma Support Vector Machine (SVM), meliputi pengertiannya, aplikasi, metode, serta kelebihan dan kelemahannya.

Support Vector Machine (SVM) adalah salah satu algoritma machine learning dengan pendekatan supervised learning yang bekerja dengan mencari hyperplane atau fungsi pemisah terbaik untuk memisahkan kelas.

Selamat! Kamu telah belajar mengenai Algoritma Support Vector Machine (SVM).

Artikel ini merupakan bagian dari seri artikel yang menjelaskan tentang Algoritma Machine Learning.

Jika kamu sedang belajar mengenai algoritma machine learning meliputi pengertian, jenis dan macamnya, bagaimana cara kerjanya, silahkan mulai dari artikel ini dan menelusuri tautan-tautan di dalamnya:

Algoritma Machine Learning: Jenis-jenis dan Contoh Algoritmanya.