Catatan penting : Jika Anda benar-benar awam tentang apa itu Python, silakan klik artikel saya ini. Jika Anda awam tentang R, silakan klik artikel ini.
Kali ini saya akan berbagi salah satu teknik klasifikasi yang cukup terkenal dan banyak dipakai oleh para data scientist di luar sana, yaitu SVM (Support Vector Machines). Jika kita terjemahkan dari istilah inggrisnya, maka dalam bahasa indonesia artinya adalah mesin yang menggunakan vektor sebagai pendukung/penanda untuk membagi data ke dalam dua kelompok.
Dengan kata lain, SVM merupakan sebuah teknik yang menggunakan 2 titik (2 vektor), yang selanjutnya 2 titik ini akan membentuk garis pembatas (atau sisi pembatas jika 3 dimensi atau lebih). Garis/sisi pembatas yang dibentuk dari dua buah vektor ini disebut dengan hyperplane.
Cara kerja SVM bisa dilihat melalui ilustrasi yang sangat sederhana sebagai berikut:
Bisa dilihat bahwa kita memiliki 2 kelompok data (pembagiannya sudah kita ketahui, oleh karena itu disebut klasifikasi, bukan clustering). Kemudian, tugas SVM adalah membagi 2 kelompok ini sebaik mungkin.
Apa yang dimaksud pembagian yang sebaik mungkin? Yaitu pembagian di mana garis batasnya bisa memisahkan 2 kelompok dengan jarak terjauh antara titik terluar di masing-masing kelompok dengan garis pembatas itu sendiri.
Dari ilustrasi di atas, manakah garis yang paling baik (jarak terjauh antara titik merah dan biru terhadap garis)? Untuk bisa mengetahuinya, tentunya kita harus benar-benar menghitung jaraknya.
Mari kita lihat cara menentukan jarak titik terluar dari masing-masing kelompok terhadap garis pembatasnya sebagai berikut:
Melalui ilustrasi di atas, tugas SVM adalah menentukan hyperplane terbaik, yang bisa memberikan jarak terjauh (maximum margin) antara 2 kelompok yang berbeda. Mudah kan.
Dua titik yang menjadi patokan hyperplane disebut dengan support vectors. Menariknya, titik-titik lain di belakang dua garis ini tidak berkontribusi apa-apa terhadap hasil SVM, karena sesuai namanya, baik tidaknya hasil SVM tergantung dari support vectors-nya.
Sebagai tambahan, penamaan positive hyperplane atau negative hyperplane itu bebas. Jadi garis atas bisa saja kita sebut sebagai negative, dan garis bawah menjadi positive.
Catatan penting bahwa jarak terjauh antara titik merah dengan hyperplane dan antara titik biru dengan hyperplane harus sama ya.
Mungkin ada yang bingung, mengapa 2 titik ini disebut vektor? Mengapa bukan points saja? Atau bukan identifiers misalnya. Jawabannya adalah karena 2 titik ini adalah benar-benar vectors (vektor adalah istilah matematika, yang didefinisikan sebagai objek yang memiliki besaran (magnitute) dan arah (direction). Kita tidak akan membahas itu lebih jauh, cukup dipahami saja ya alasan penamaan vectors.
Hal lain yang harus dipahami bahwa penamaan hyperplane sebagai garis pembatas adalah penamaan yang banyak dikenal oleh data scientist di luar sana. Pembaca boleh saja menyebutnya hyperline (untuk kasus 2 dimensi, karena memang hanya tampak sebagai sebuah garis saja), atau konsisten dengan penamaan hyperplane (karena untuk 3D atau lebih, hyperplane memang pembatas yang berupa a plane (satu sisi pembatas) dan bukan hanya sekedar garis. Jika 3D kurang lebih akan tampak seperti ini:
Di halaman selanjutnya kita akan membahas tentang contoh aplikasi SVM di dunia nyata. Untuk melanjutkan membaca silakan klik tombol halaman di bawah ini.
Bisa dikasih contoh perhitungan manualnya sampai titi temu bahwa kelas tersebut masuk ke kelas -1 atau +1
terimakasih
Silakan baca referensinya (cari di bagian download) dan berlatih sendiri ya, sekalian belajar menerjemahkan rumus matematika.
Semoga menjawab
permisi pak, apakah boleh minta data setnya sebagai bahan latihan agar lebih mudah dipahami pak
Datasetnya ada di bagian download, dan dicantumkan link nya di artikel. Silakan dicek lagi.
Permisi, Pak.
Saya mau bertanya.
Apakah Support Vector Machine bisa digunakan untuk clustering?
Secara umum SVM dipakai untuk classification (klasifikasi) dan bukan clustering.
Tapi ada paper yang mencoba menggunakan SVM untuk clustering.
Saya belum pernah baca, tapi silakan dicoba metode di paper tersebut.
Semoga menjawab.
kak untuk mendowload data latih terdapat bagian mana ya?
Bisa dibaca di halaman 4, link ya ada di sana.
Permisi pak mau tanya,,,
apa metode SVM bisa mengklasifikasi objek yg bergerak atau objek dalam video??
Belum pernah coba, mungkin bisa dibaca penelitiannya di jurnal internasional.
Kenapa binary class nya digunakan bilangan +1 dan -1? Tidak menggunakan 0 dan 1 saja. Terima kasih?
Di SVM, penggunaan -1,1 lebih umum daripada 0,1