Support vector machines (SVM) adalah algoritma machine learning yang diawasi yang mengklasifikasikan data dengan menemukan garis optimal atau hyperplane yang memaksimalkan jarak antara setiap kelas dalam ruang N-dimensi.
"SVM dikembangkan pada tahun 1990-an oleh Vladimir N. Vapnik dan rekan-rekannya, dan mereka mempublikasikan karya ini dalam sebuah makalah berjudul "Support Vector Method for Function Approximation, Regression Estimation, and Signal Processing"1 pada tahun 1995.
SVM biasanya digunakan dalam masalah klasifikasi. SVM membedakan antara dua kelas dengan menemukan hyperplane optimal yang memaksimalkan margin antara titik data terdekat dari kelas yang berlawanan. Jumlah fitur dalam data input menentukan apakah hyperplane adalah garis dalam ruang 2-D atau bidang dalam ruang n-dimensional. Karena beberapa hyperplane dapat ditemukan untuk membedakan kelas, memaksimalkan margin antar titik memungkinkan algoritma untuk menemukan batas keputusan terbaik antar kelas. Ini, pada gilirannya, memungkinkannya untuk menggeneralisasi dengan baik ke data baru dan membuat prediksi klasifikasi yang akurat. Garis-garis yang berdekatan dengan hyperplane optimal dikenal sebagai vektor pendukung karena vektor ini berjalan melalui titik-titik data yang menentukan margin maksimal.
Algoritma SVM banyak digunakan dalam machine learning karena dapat menangani tugas klasifikasi linier dan nonlinier. Namun, ketika data tidak dapat dipisahkan secara linier, fungsi kernel digunakan untuk mengubah data menjadi ruang dimensi yang lebih tinggi untuk memungkinkan pemisahan linier. Penerapan fungsi kernel ini dapat dikenal sebagai "ernel trick", dan pilihan fungsi kernel, seperti kernel linier, kernel polinomial, kernel radial basis function (RBF), atau kernel sigmoid, tergantung pada karakteristik data dan contoh penggunaan tertentu.
SVM linier digunakan dengan data yang dapat dipisahkan secara linier; ini berarti bahwa data tidak perlu menjalani transformasi apa pun untuk memisahkan data ke dalam berbagai kelas yang berbeda. Batas keputusan dan vektor pendukung membentuk tampilan jalan, dan Profesor Patrick Winston dari MIT menggunakan analogi "menyesuaikan jalan yang seluas mungkin"2 (tautan berada di luar ibm.com) untuk menggambarkan masalah optimasi kuadrat ini. Matematis, hyperplane pemisah ini dapat dipresentasikan sebagai:
wx + b = 0
di mana w adalah vektor bobot, x adalah vektor input, dan b adalah suku bias.
Ada dua pendekatan untuk menghitung margin, atau jarak maksimum antar kelas, yaitu klasifikasi hard-margin dan klasifikasi soft-margin. Jika kita menggunakan SVM dengan hard-margin, titik-titik data akan dipisahkan secara sempurna di luar vektor pendukung, atau "di luar jalan", jika melanjutkan analogi Profesor Hinton. Ini diwakili dengan rumus,
(wxj + b) yj ≥ a,
dan kemudian margin dimaksimalkan, yang direpresentasikan sebagai: max ɣ= a / ||w||, di mana a adalah margin yang diproyeksikan ke w.
Klasifikasi soft-margin lebih fleksibel, memungkinkan terjadinya kesalahan klasifikasi melalui penggunaan variabel slack (`ξ`). Hyperparameter, C, menyesuaikan margin; nilai C yang lebih besar mempersempit margin untuk kesalahan klasifikasi minimal sementara nilai C yang lebih kecil melebarkannya, memungkinkan lebih banyakdata yang salah diklasifikasikan3.
Sebagian besar data dalam skenario dunia nyata tidak dapat dipisahkan secara linier, dan di situlah SVM nonlinier akan berguna. Untuk membuat data dapat dipisahkan secara linear, metode prapemrosesan diterapkan pada data pelatihan untuk mengubahnya menjadi ruang fitur berdimensi lebih tinggi. Meskipun demikian, ruang dimensi yang lebih tinggi dapat menciptakan lebih banyak kerumitan dengan meningkatkan risiko overfitting data dan menjadi beban komputasi. "Kernel trickl" membantu mengurangi beberapa kerumitan tersebut, membuat komputasi menjadi lebih efisien, dan hal ini dilakukan dengan mengganti perhitungan dot produk dengan fungsi kernel yang setara4.
Ada sejumlah jenis kernel yang berbeda yang dapat diterapkan untuk mengklasifikasikan data. Beberapa fungsi kernel populer meliputi:
Kernel polinomial
Kernel fungsi basis radial (juga dikenal sebagai kernel Gaussian atau RBF)
Kernel sigmoid
Support vector regression (SVR) adalah perluasan dari SVM, yang diterapkan pada masalah regression (yaitu hasil yang bersifat kontinu). Mirip dengan SVM linier, SVR menemukan hyperplane dengan margin maksimum di antara titik-titik data, dan biasanya digunakan untuk prediksi deret waktu.
SVR berbeda dari regresi linier karena Anda perlu menentukan hubungan yang ingin Anda pahami antara variabel independen dan dependen. Pemahaman tentang hubungan antara variabel dan arahnya sangat penting ketika menggunakan regression linier. Ini tidak diperlukan untuk SVR karena mereka menentukan hubungan ini sendiri.
Pada bagian ini, kita akan membahas proses membangun pengklasifikasi SVM, bagaimana perbandingannya dengan algoritma pembelajaran terawasi lainnya dan aplikasinya dalam industri saat ini.
Seperti model machine learning lainnya, mulailah dengan membagi data Anda menjadi satu set pelatihan dan set pengujian. Selain itu, ini mengasumsikan bahwa Anda telah melakukan analisis data eksplorasi pada data Anda. Meskipun secara teknis hal ini tidak diperlukan untuk membuat pengklasifikasi SVM, tetapi ini merupakan praktik yang baik sebelum menggunakan model machine learning apa pun karena ini akan memberi Anda pemahaman tentang data yang hilang atau outlier.
Impor modul SVM dari pustaka pilihan Anda, seperti scikit-learn (tautan berada di luar ibm.com). Latih sampel pelatihan Anda pada pengklasifikasi dan prediksi responsnya. Anda dapat mengevaluasi kinerja dengan membandingkan akurasi set pengujian dengan nilai yang diprediksi. Anda mungkin ingin menggunakan metrik evaluasi lainnya, seperti f1-score, precision, atau recall.
Hyperparameter dapat disetel untuk meningkatkan kinerja model SVM. Hiperparameter optimal dapat ditemukan dengan menggunakan metode pencarian grid dan validasi silang, yang akan melakukan iterasi melalui kernel, regularisasi (C), dan nilai gamma yang berbeda untuk menemukan kombinasi terbaik.
Pengklasifikasi machine learning yang berbeda dapat digunakan untuk contoh penggunaan yang sama. Penting untuk menguji dan mengevaluasi model yang berbeda untuk memahami mana yang berkinerja terbaik. Meskipun demikian, akan sangat membantu jika Anda memahami kekuatan dan kelemahan masing-masing untuk menilai aplikasinya untuk contoh penggunaan Anda.
Baik klasifikasi Naive Bayes dan SVM biasanya digunakan untuk tugas klasifikasi teks. SVM cenderung berkinerja lebih baik daripada Naive Bayes ketika data tidak dapat dipisahkan secara linier. Meskipun demikian, SVM harus menyesuaikan hyperparameter yang berbeda dan bisa lebih mahal secara komputasi.
SVM biasanya berkinerja lebih baik dengan kumpulan data berdimensi tinggi dan tidak terstruktur, seperti data gambar dan teks, dibandingkan dengan regresi. SVM juga kurang sensitif terhadap overfitting dan lebih mudah ditafsirkan. Meskipun demikian, mereka bisa lebih mahal secara komputasi.
SVM berkinerja lebih baik dengan data dimensi tinggi dan kurang rentan terhadap overfitting dibandingkan dengan decision trees. Meskipun demikian, decision trees biasanya lebih cepat untuk dilatih, terutama dengan kumpulan data yang lebih kecil, dan secara umum lebih mudah untuk diinterpretasikan.
Serupa dengan perbandingan model lainnya, SVM lebih mahal secara komputasi untuk dilatih dan tidak terlalu rentan terhadap overfitting, tetapi neural networks dianggap lebih fleksibel dan dapat diskalakan.
SVM dapat digunakan untuk berbagai tugas, tetapi berikut ini adalah beberapa aplikasi SVM yang paling populer di industri.
SVM biasanya digunakan dalam pemrosesan bahasa alami (NLP) untuk tugas-tugas seperti analisis sentimen, deteksi spam, dan pemodelan topik. SVM cocok untuk data ini karena berkinerja baik dengan data dimensi tinggi.
SVM diterapkan dalam tugas klasifikasi gambar seperti deteksi objek dan pengambilan gambar. Ini juga dapat berguna dalam domain keamanan, dengan mengklasifikasikan gambar sebagai gambar yang telah dirusak.
SVM juga digunakan untuk klasifikasi protein, analisis ekspresi gen, dan diagnosis penyakit. SVM sering diaplikasikan dalam penelitian kanker (tautan berada di luar ibm.com) karena dapat mendeteksi tren halus dalam kumpulan data yang kompleks.
SVM dapat menganalisis struktur geofisika berlapis di bawah tanah, menyaring 'kebisingan' dari data elektromagnetik. SVM juga telah membantu memprediksi potensi likuifaksi seismik tanah, yang relevan dengan bidang teknik sipil.
IBM Granite adalah rangkaian model AI kami yang terbuka, berkinerja, dan tepercaya, yang dirancang untuk bisnis dan dioptimalkan untuk menskalakan aplikasi AI Anda. Jelajahi opsi bahasa, kode, deret waktu, dan batasan.
Kami menyurvei 2.000 organisasi tentang inisiatif AI mereka untuk mengetahui apa yang berhasil, apa yang tidak, dan cara Anda untuk maju.
Jelajahi pendekatan pembelajaran yang diawasi seperti mesin vendor pendukung dan pengklasifikasi probabilistik.
Belajar konsep dasar dan bangun keterampilan Anda dengan laboratorium praktis, kursus, proyek terpandu, uji coba, dan lainnya.
Pelajari cara memilih model dasar AI yang paling sesuai untuk contoh penggunaan Anda.
Latih, validasi, lakukan tuning, dan terapkan AI generatif, model dasar, dan kemampuan machine learning dengan IBM watsonx.ai, studio perusahaan generasi berikutnya untuk pembangun AI. Bangun aplikasi AI dalam waktu singkat, dengan sedikit data.
Gunakan AI di bisnis Anda dalam perpaduan antara keahlian AI terdepan di industri dari IBM dan portofolio solusi Anda.
Temukan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara real-time, dan nilai bisnis.
Semua tautan berada di luar ibm.com
1 Metode Vektor Pendukung untuk Pendekatan Fungsi, Estimasi Regresi, dan Pemrosesan Sinyal
2 Catatan Kuliah 16 tentang Support Vector Machines, Patrick Winston, MIT, 2010
3 Introduction to Support Vector Machines, Boswell, Dustin, Caltech, 2002
4 Support vector machines, Sontag, David, New York University