Machine Learning: Support Vector Machines

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:

Ilustrasi SVM. Terlihat ada 3 garis pembatas (1, 2, dan 3).
Masing-masing garis ini dibentuk oleh 2 titik yang terdekat dari garisnya.

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:

Ilustrasi bagaimana menghitung jarak antara titik terluar di masing-masing kelompok dengan hyperplane.
Perlu diperhatikan bahwa 2 titik terluar ini (paling luar dari kelompoknya dan paling dekat dengan hyperplane) harus tegak lurus terhadap hyperplane nya. Dua titik ini disebut dengan support vectors.

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:

Ilustrasi SVM. Terlihat ada 3 garis pembatas (1, 2, dan 3).
Masing-masing garis ini dibentuk oleh 2 titik terdekat yang terdekat dari garisnya.

Di halaman selanjutnya kita akan membahas tentang contoh aplikasi SVM di dunia nyata. Untuk melanjutkan membaca silakan klik tombol halaman di bawah ini.

Bagikan artikel ini:

Pages: 1 2 3 4 5 6 7

Leave a Reply

avatar
  Subscribe  
Notify of