Klasifikasi adalah teknik utama yang dioperasikan dalam penambangan data. Teknik ini sering diterapkan pada sejumlah besar kumpulan data untuk memecahkan suatu masalah dalam suatu penelitian. Klasifikasi ini sendiri merupakan metode pemisahan dan pengelompokan data yang melibatkan data latih dengan menggunakan algoritma klasifikasi. Show
Support Vector Machine atau SVM adalah algoritme pembelajaran mesin yang diawasi yang dapat digunakan untuk klasifikasi dan regresi. Cara kerja SVM didasarkan pada SRM atau Structural Risk Minimization yang dirancang untuk mengolah data menjadi Hyperplane yang mengklasifikasikan ruang input menjadi dua kelas. Teori SVM diawali dengan pengelompokan kasus-kasus linier yang dapat dipisahkan dengan hyperplane dan dibagi menurut kelasnya. Konsep SVM diawali dengan masalah klasifikasi dua kelas sehingga membutuhkan set pelatihan positif dan negatif. SVM akan berusaha mendapatkan hyperplane (pemisah) sebaik mungkin untuk memisahkan kedua kelas dan memaksimalkan margin kedua kelas tersebut. Berikut adalah visualisasi klasifikasi SVM dengan mencari hyperplane yang membedakan kedua kelas tersebut:
Ada 2 metode dalam support vector machine: Model linier memiliki sifat penting baik dari aspek komputasi dan analitis. Penggunaan model linier dengan pendekatan parametrik dalam metode klasik memiliki aplikasi praktis yang terbatas karena kutukan dimensionalitas. Terdapat 2 pendekatan dalam metode linier: pendekatan alternatif adalah membuat fungsi basis adaptif terhadap data latih dengan sejumlah fungsi basis yang telah ditentukan, pendekatan nonparametrik yaitu mendefinisikan data latih sebagai basis pusat. Fungsi kernel adalah fungsi k yang untuk semua vektor masukan x, z akan memenuhi syarat k (x,
Fungsi kernel adalah untuk mengimplementasikan model dalam ruang dimensi yang lebih tinggi tanpa harus menentukan fungsi pemetaan dari ruang masukan ke ruang fitur. Salah satu contoh fungsi kernel yang banyak digunakan adalah Gaussian radial basis function (RBF), yaitu: k (x, x ‘) = φ (|| xx’ ||) = exp (- || xx ‘|| 2 / 2s2) di mana x ‘adalah “inti” yang dipilih dari data pelatihan. Ada 2 cara penggunaan metode kernel dalam pembelajaran mesin yaitu: Penggunaan langsung yaitu fungsi kernel yang digunakan sebagai fungsi dasar model SVM, contoh: fungsi jaringan basis radial, penggunaan tidak langsung merepresentasikan model menjadi beberapa representasi yang berisi produk dalam fungsi pemetaan, misalnya: kernel regresi linier, kernel Perceptron, mesin vektor dukungan, dll. Berikut adalah contoh aplikasi pemograman matlab untuk pengklasifikasian bentuk suatu objek pada suatu citra. Dalam contoh ini, bentuk yang diklasifikasikan adalah bentuk lingkaran dan bentuk hati. Setiap bentuk kemudian dikarakterisasi oleh parameter metrik dan eksentrisitasnya. Metrik adalah perbandingan antara luas dan keliling suatu benda. Sedangkan eksentrisitas adalah nilai perbandingan jarak antara fokus minor dan fokus utama suatu objek. Referensi https://www.researchgate.net/publication/323409685_Implementasi_Algoritme_Support_Vector _Machine_SVM_untuk_Prediksi_Ketepatan_Waktu_Kelulusan_Mahasiswa https://www.analyticsvidhya.com/blog/2017/09/understaing-support-vector-machine-example-code/ https://garudacyber.co.id/artikel/1325-contoh-kasus-svm-dan-algoritma-perhitungannya https://ocw.ui.ac.id/pluginfile.php/266/mod_resource/content/0/7.1%20Support%20Vector%20 Machine.pdf Pada 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 SVMBeberapa contoh dimana algoritma SVM dapat diaplikasikan antara lain:
Metode algoritma SVM (step by step)Algoritma SVM bekerja dengan berdasarkan langkah-langkah sebagai berikut:
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 SVMPendekatan 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, 2015Permasalahan selanjutnya adalah pemetaan ke higher dimensional space membutuhkan cost komputasi yang tinggi. Untuk mengatasi hal ini, digunakanlah “kernel” SVM. Jenis-jenis SVMAlgoritma 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 SVMKernel 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.
Beberapa kernel lainnya antara lain:
Memilih fungsi kernelPemilihan 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 SVRUntuk lebih memahami linear SVR, kita bandingkan dengan metode regresi linear sederhana. Lihat ilustrasi di bawah ini. Metode algoritma Support Vector RegressionBerikut 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 SVRNon 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. Non linear Support Vector Regression. Sumber: SpiedigitallibraryKelebihan SVMBerikut ini adalah kelebihan atau keunggulan dari algoritma Support Vector Machine (SVM):
Kelemahan SVMSedangkan beberapa kelemahan atau kekurangan dari algoritma SVM antara lain:
Kapan menggunaan SVMMeskipun 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:
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:
KesimpulanPada 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. |