Menu
CoddyTech

Support Vector Machine (SVM)

Pelajaran 18 dari 19 dalam kursus Pengantar Machine Learning di Coddy.

Support Vector Machine (SVM) adalah algoritma machine learning terawasi yang kuat dan serbaguna, digunakan untuk tugas klasifikasi maupun regresi. Namun, algoritma ini lebih umum digunakan untuk masalah klasifikasi. SVM menawarkan akurasi tinggi dan bekerja dengan baik pada ruang fitur berdimensi tinggi, sehingga cocok untuk berbagai aplikasi, mulai dari pengenalan gambar hingga bioinformatika.

Sumber: wikipedia

Tujuan utama algoritma SVM adalah menemukan hyperplane optimal (dalam ruang dua dimensi, ini adalah garis) yang paling baik memisahkan kelas-kelas dalam ruang fitur. Model SVM merepresentasikan contoh sebagai titik-titik dalam ruang, yang dipetakan sedemikian rupa sehingga contoh dari kategori yang berbeda dipisahkan oleh celah yang jelas dan selebar mungkin.

 

  • Hyperplane: Ini pada dasarnya adalah batas keputusan yang memisahkan kelas-kelas. Dalam 2D, hyperplane ini berupa garis, tetapi dalam dimensi yang lebih tinggi, bentuknya bisa lebih kompleks.
  • Support Vectors: Ini adalah titik data yang paling dekat dengan hyperplane, yang sangat penting untuk menentukan posisi hyperplane. Classifier SVM sangat dipengaruhi oleh titik-titik ini, karena itu namanya Support Vector Machine.
  • Margin: Ini adalah celah antara dua garis pada titik data terdekat dari kelas yang berbeda. Margin dapat dianggap sebagai ukuran pemisah antarkelas. Memastikan margin selebar mungkin merupakan tujuan utama dalam melatih SVM.

Jenis-jenis SVM:

  • Linear SVM: Jika data dapat dipisahkan secara linear, kita bisa menggunakan satu garis lurus untuk memisahkan kelas-kelas. Skenario ini menggunakan SVM linear.
  • Non-linear SVM: Jika data tidak dapat dipisahkan secara linear, SVM menggunakan sesuatu yang disebut trik kernel untuk mengubah ruang input menjadi ruang berdimensi lebih tinggi, tempat hyperplane dapat digunakan untuk memisahkan data. Trik kernel melibatkan transformasi data ke dimensi lain yang memiliki margin jelas di antara kelas-kelas data. Trik ini memungkinkan SVM menyelesaikan masalah non-linear. Kernel yang umum meliputi:
    • Linear Kernel: Digunakan jika data dapat dipisahkan secara linear.
    • Polynomial Kernel: Mengubah ruang fitur asli menjadi ruang fitur polinomial dengan derajat tertentu.
    • Gaussian Kernel: Berguna untuk data non-linear yang mengelompok menjadi beberapa grup. Kernel ini memetakan ruang fitur ke dimensi yang lebih tinggi.
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

challenge icon

Tantangan

Mudah

Support Vector Machines (SVMs) menggunakan fungsi kernel untuk mengubah data menjadi ruang berdimensi lebih tinggi, tempat data lebih mudah diklasifikasikan. Proses ini dikenal sebagai "trik kernel". Proses ini memungkinkan SVM menyelesaikan masalah klasifikasi dan regresi nonlinier secara efisien.

Di sini, kita akan mempelajari kernel polinomial yang memungkinkan batas melengkung pada data. Kernel ini menaikkan data ke derajat tertentu d. Kernel ini sangat berguna ketika hubungan antara label class dan atribut bersifat polinomial.
File:Svm 8 polinomial.JPG

Sumber: wikipedia

Buat fungsi bernama polynomial_kernel yang menerima dua list (x, y), sebuah derajat (d), dan sebuah koefisien (c), lalu mengembalikan kernel polinomial.

{\displaystyle K(x,y)=(x^{\mathsf {T}}y+c)^{d}} → (x hasil kali titik transpose y ditambah c ) dipangkatkan d.

Coba sendiri

import numpy as np
def polynomial_kernel(x, y, d, c):
    x_arr = np.array(x)
    y_arr = np.array(y)
    # Tulis kodemu di sini

Semua pelajaran di Pengantar Machine Learning

Latihan sendiri: Compiler Python online