Apa itu support vector machines (SVM)?

27 Desember 2023

Apa itu SVM?

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.

Jenis pengklasifikasi SVM

SVM linier

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.

SVM nonlinier

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)

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.

Desain 3D bola yang menggelinding di lintasan

Berita + Insight AI terbaru 


Temukan insight dan berita yang dikurasi oleh para pakar tentang AI, cloud, dan lainnya di Buletin Think mingguan. 

Cara kerja SVM

Pada bagian ini, kita akan membahas proses membangun pengklasifikasi SVM, bagaimana perbandingannya dengan algoritma pembelajaran terawasi lainnya dan aplikasinya dalam industri saat ini.

Membangun pengklasifikasi SVM

Bagi data Anda

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.

Menghasilkan dan mengevaluasi model

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.

Penyetelan hyperparameter

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.

SVM vs. pengklasifikasi pembelajaran terawasi lainnya

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.

SVMs vs naive bayes

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 vs regresi logistik

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 vs decision trees

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.

SVM vs. neural networks

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.

Aplikasi SVM

SVM dapat digunakan untuk berbagai tugas, tetapi berikut ini adalah beberapa aplikasi SVM yang paling populer di industri.

Klasifikasi teks

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.

Klasifikasi Gambar

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.

Bioinformatika

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.

Sistem informasi geografis (GIS)

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.

Mixture of Experts | Podcast

Decoding AI: Rangkuman Berita Mingguan

Bergabunglah dengan panel insinyur, peneliti, pemimpin produk, dan sosok kelas dunia lainnya selagi mereka mengupas tuntas tentang AI untuk menghadirkan berita dan insight terbaru seputar AI.

Solusi terkait
IBM watsonx.ai

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.

Temukan watsonx.ai
Solusi kecerdasan buatan (AI)

Gunakan AI di bisnis Anda dalam perpaduan antara keahlian AI terdepan di industri dari IBM dan portofolio solusi Anda.

Jelajahi solusi AI
Konsultasi dan layanan AI

Temukan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara real-time, dan nilai bisnis.

Jelajahi layanan AI
Ambil langkah selanjutnya

Dapatkan akses ke berbagai kemampuan dalam satu alat untuk seluruh siklus pengembangan AI. Hasilkan solusi AI yang kuat dengan antarmuka ramah pengguna, alur kerja yang efisien, serta akses ke API dan SDK berstandar industri.

Jelajahi watsonx.ai Pesan demo langsung
Catatan kaki

Semua tautan berada di luar ibm.com

1 Metode Vektor Pendukung untuk Pendekatan Fungsi, Estimasi Regresi, dan Pemrosesan Sinyal

Catatan Kuliah 16 tentang Support Vector Machines, Patrick Winston, MIT, 2010

Introduction to Support Vector Machines, Boswell, Dustin, Caltech, 2002

Support vector machines, Sontag, David, New York University