Machine Learning: Support Vector Machines

Machine Learning: Support Vector Machines

Apa itu Kernel?

Kernel adalah sebuah teknik agar bisa merubah data points (dataset) yang tadinya dua dimensi menjadi multi dimensi. Mengapa penting menggunakan kernel? Agar lebih jelas, silakan lihat ilustrasi berikut:

Contoh dataset.

Anggap kita memiliki dataset seperti di atas, lalu kita ingin mencari batas antara 2 kelompok dengan SVM, maka muncul sebuah masalah. Masalahanya adalah mustahil memisahkan 2 zona itu hanya dengan garis lurus saja bukan? Ilustrasi dari permasalahan ini adalah sebagai berikut:

Mustahil memisahkan 2 kelompok dengan garis.

Mau dibuat dengan garis model apapun, maka mustahil bisa memisahkan 2 kelompok ini. Lalu bagaimana solusinya? Adalah dengan menggunakan kernel!


Konsep Kernel

Anggap kita hanya memiliki dataset dalam 1 dimensi (1 sumbu saja, misal sumbu x). Ilustrasinya sebagai berikut:

Kita memiliki 8 data. Nilai 0 dan 6 adalah koordinat sumbu x nya.

Sekarang bagaimana cara memisahkan dua kelompok biru dan merah pada contoh di atas? Apakah bisa hanya dengan 1 garis? Mustahil bukan? Maka solusinya adalah merubah data dari 1 dimensi ke 2 dimensi.

Langkah pertama adalah mengaplikasikan sebuah fungsi sederhana, misal

f = x – 6

Jadi kita kurangkan koordinat kedelapan data kita dengan 6, sehingga semuanya mundur ke belakang sebanyak 6 koordinat. Kurang lebih menjadi seperti ini:

Semua data mundur ke belakang sebanyak 6 koordinat.

Sekarang, kita aplikasikan fungsi kuadrat, yaitu

Kuadrat dari fungsi sebelumnya.

Sekarang ilustrasinya menjadi seperti ini:

Semua titik dari fungsi awal berpindah ke fungsi kuadrat.

Sekarang semua titik dari sumbu x menjadi titik-titik dari fungsi kuadratik. Jika sudah demikian, maka kita bisa menarik garis lurus seperti ini:

Hyperplane yang ada bisa memisahkan dua kelompok.

Sekarang kita bisa membuat hyperplane nya.

Apakah sudah selesai? Belum, karena ini adalah bukan fungsi sesungguhnya. Tugas selanjutnya adalah mengembalikan (mentransformasikan) kembali ke fungsi awal. Ilustrasinya tampak sebagai berikut:

Hyperplane hasil dari fungsi kuadrat pada data 1 dimensi.

Dengan menggunakan ilustrasi (konsep) di atas, sekarang cara yang sama juga bisa dilakukan pada kasus data sebelumnya. Dengan fungsi mapping (transformasi dimensi), hasilnya menjadi sebagai berikut:

Hasil hyperplane setelah melalui fungsi mapping.

Jika sudah didapatkan hyperplane nya, maka ketika ditransformasikan (proyeksikan) ke data awal menjadi sebagai berikut:

Hasil proyeksi dari fungsi mapping sebelumnya.

Sampai sekarang saya harap konsep dari Kernel bisa dipahami. Ternyata kernel ada banyak sekali jenisnya, namun yang paling dikenal ada 3, antara lain:

  1. Kernel Gaussian (paling populer)
  2. Kernel Sigmoid
  3. Kernel Polinomial

Kita tidak akan membahas fungsi matematikanya, dan saya harap pembaca setidaknya bisa memahami konsepnya. Namun jika ingin belajar lebih detail tentang kernel, bisa ke situs ini.

Selanjutnya kita coba mengaplikasikan kernel Gaussian ke dalam bahasa Python dan R.

Untuk melanjutkan membaca, silakan klik tombol di bawah ini.

Pages: 1 2 3 4 5 6 7

Subscribe
Notify of
guest

14 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Bobby
Bobby
5 years ago

Bisa dikasih contoh perhitungan manualnya sampai titi temu bahwa kelas tersebut masuk ke kelas -1 atau +1
terimakasih

agi
agi
5 years ago

permisi pak, apakah boleh minta data setnya sebagai bahan latihan agar lebih mudah dipahami pak

Hera Masri'an
Hera Masri'an
5 years ago

Permisi, Pak.
Saya mau bertanya.
Apakah Support Vector Machine bisa digunakan untuk clustering?

aninda
aninda
5 years ago

kak untuk mendowload data latih terdapat bagian mana ya?

adhy
adhy
5 years ago

Permisi pak mau tanya,,,
apa metode SVM bisa mengklasifikasi objek yg bergerak atau objek dalam video??

Amel
Amel
4 years ago

Kenapa binary class nya digunakan bilangan +1 dan -1? Tidak menggunakan 0 dan 1 saja. Terima kasih?

MaruIchi
MaruIchi
10 months ago

misalnya di library sklearn, svm bisa menambahkan parameter C, dan juga parameter C ini (yang adalah selain kernel) jika digunakan dapat digunakan untuk mencari metode terbaik dengan grid search sebagai caranya yaitu kombinasi antara C dan juga kernel., di pembahasan ini, kenapa seperti tidak menambahkan pembahasan tentang parameter C maupun perhitungan manual seperti SVM dengan tulis tangan?