Support Vector Machine (SVM) adalah metode klasifikasi yang bekerja dengan cara mencari hyperplane dengan margin terbesar. Hyperplane adalah garis batas pemisah data antar-kelas. Margin adalah jarak antara hyperplane dengan data terdekat pada masing-masing kelas. Adapun data terdekat dengan hyperplane pada masing-masing kelas inilah yang disebut support vector
author : cahya dsn
,
published on : November 16th, 2018
updated on : November 16th, 2018
Support vector machine (SVM) adalah suatu teknik yang relatif baru (1995) untuk melakukan prediksi, baik dalam kasus klasifikasi maupun regresi, yang sangat populer belakangan ini. SVM berada dalam satu kelas dengan Artificial Neural Network (ANN) dalam hal fungsi dan kondisi permasalahan yang bisa diselesaikan. Keduanya masuk dalam kelas supervised learning, dimana dalam implementasinya perlu adanya tahap training dan disusul tahap testing
Support Vector Machine (SVM) adalah sistem pembelajaran yang menggunakan ruang hipotesis berupa fungsi-fungsi linier dalam sebuah ruang fitur (feature space) berdimensi tinggi, dilatih dengan algoritma pembelajaran yang didasarkan pada teori optimasi dengan mengimplementasikan learning bias yang berasal dari teori pembelajaran statistik (Christianini 2000
).
Teori yang mendasari SVM sendiri sudah berkembang sejak 1960-an, tetapi baru diperkenalkan oleh Vapnik, Boser dan Guyon pada tahun 1992 dan sejak itu SVM berkembang dengan pesat. SVM adalah salah satu teknik yang relatif baru dibandingkan dengan teknik lain, tetapi memiliki performansi yang lebih baik di berbagai bidang aplikasi seperti bioinformatics, pengenalan tulisan tangan, klasifikasi teks dan lain sebagainya (Chang, 2001
).
Proses pembelajaran pada SVM bertujuan untuk mendapatkan hipotesis berupa bidang pemisah terbaik yang tidak hanya meminimalkan empirical risk yaitu rata-rata error pada data pelatihan, tetapi juga memiliki generalisasi yang baik. Generalisasi adalah kemampuan sebuah hipotesis untuk mengklasifikasikan data yang tidak terdapat dalam data pelatihan dengan benar. Untuk menjamin generalisasi ini, SVM bekerja berdasarkan prinsip Structural Risk Minimization (SRM)
SRM bertujuan untuk menjamin batas atas dari generalisasi pada data pengujian dengan cara mengontrol "kapasitas" (fleksibilitas) dari hipotesis hasil pembelajaran. Untuk mengukur kapasitas ini digunakan dimensi Vapnik-Chervonenkis (VC) yang merupakan properti dari ruang hipotesis ${f (α )}$. Nilai dari dimensi VC ini, berdasarkan teori pembelajaran statistik akan menentukan besarnya nilai kesalahan hipotesis pada data pengujian. Lebih jelasnya, besar kesalahan pada data pengujian/actual risk $R(α)$ dengan probabilitas sebesar $1−η,0 ≤η ≤ 1$, pada dataset yang terdiri dari $n$ data dapat dilihat pada persamaan (SVM-001). $R_{emp}(α)$ adalah kesalahan pada data pelatihan dan $h$ adalah dimensi VC.
Nilai VC confidence (nilai elemen kedua pada ruas kanan (SVM-001) ), ditentukan oleh hipotesis/
fungsi hasil pembelajaran (Burges , 1998
). Jadi, prinsip SRM adalah menemukan subset dari ruang
hipotesis yang dipilih sehingga batas atas actual risk dengan menggunakan subset tersebut
diminimumkan. SRM bertujuan untuk meminimumkan actual risk dengan cara meminimumkan
kesalahan pada data pelatihan dan juga VC confidence. Namun, implementasi SRM tidak
dilakukan dengan meminimumkan persamaan (SVM-001) karena dimensi VC dari ruang hipotesis
${f(α)}$ sulit untuk dihitung dan hanya terdapat sedikit model hipotesis yang diketahui
bagaimana cara menghitung dimensi VC-nya (Osuna , 1997
). Selain itu, walaupun dimensi VC dapat
dihitung, tidak mudah meminimumumkan persamaan (SVM-001). Implementasi SRM pada SVM
menggunakan fungsi linier dan akan dijelaskan pada bagian selanjutnya.
Linearly separable data merupakan data yang dapat dipisahkan secara linier. Misalkan {$x_n ,..., x_1$} adalah dataset dan $y_i ∈${$+1,−1$} adalah label kelas dari data $x_i$. Pada gambar 1 dapat dilihat berbagai alternatif bidang pemisah yang dapat memisahkan semua data set sesuai dengan kelasnya. Namun, bidang pemisah terbaik tidak hanya dapat memisahkan data tetapi juga memiliki margin paling besar.
Dalam memajukan Bangsa dan Negara dibutuhkan generasi yang pintar dan cerdas. Salah satu factor yang penting adalah pendidikan,namun banyak siswa-siswi yang memliki kemampuan dan potensi yang besar tidak bisa melanjutkan sekolah karena tidak mampu secara financial tetapi banyak juga siswa-siswi yang mampu yang mendapat beasiswa.Dalam lingkungan pendidikan terutama sekolah seharusnya ada beberapa peraturan atau klasifikasi dalam menentukan siswa-siswi yang mendapat beasiswa. Oleh karena itu algoritma Support Vector Machine (SVM) yang di aplikasikan terhadap data siswa-siswi yang mendapat beasiswa dapat membantu pengklasifikasian penerima beasiswa dengan lebih baik.
Pendidikan merupakan pondasi bagi sebuah pendidikan,kita bisa melihat Jepang ketika negaranya hancur lembur oleh bom atom,maka pondasi yang utama adalah pendidikan, mereka mengutamakan pendidikan agar suatu saat dapat membangun negaranya lebih maju dan meraka berhasil melalukannya. Di negara berkembang seperti Indonesia, pendidikan juga di prioritaskan oleh pemerintah tetapi pemisah antara kota dan desa serta miskin dan kaya jauh berbeda. Sekolah di perkotaan sangat bagus sedangkan di pedesaan jauh dari layak. Hal tersebut berakibat pendidikan yang tidak merata terutama bagi masyakarat yang tidak mampu. Solusi yang baik adalah dengan beasiswa bagi masyarakat yang membutuhkan, namun banyak beasiswa yang tidak tepat sasaran. dikarnakan sistem yang tidak baik. Kondisi ini tentu saja perlu segera diatasi dengan melakukan perbaikan-perbaikan agar beasiswa tepat pada sasaran
Sebagai bahan pembelajaran Algoritma SVM ini; dibuat database (dalam hal ini menggunakan MySQL/MariaDB Database server) sebagai berikut:
CREATE DATABASE IF NOT EXISTS db_dm; USE db_dm;
Awalnya membuat dulu database dengan nama db_dm
jika belum ada database dengan nama tersebut, kemudian gunakan database tersebut dengan memakai sintak USE db_dm;
Sebelum dilakukan perhitungan-perhitungan menggunakan algoritma Support Vector Machines dengan menggunakan PHP, maka terlebih dahulu kita menyiapkan data yang akan diolah dengan mengambil (fetching) data dari database, dan disimpan (assign) ke dalam variabel-variabel PHP.
Sebelum melalukan operasi dengan data dari database, perlu dibuat script untuk koneksi ke database terlebih dahulu. Dari database yang sudah dibuat, kita bisa membuat script php untuk membuat koneksi ke database server dengan extension mysqli sebagai berikut:
<?php
//-- konfigurasi database
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'db_dm';
//-- koneksi ke database server dengan extension mysqli
$db = new mysqli($dbhost,$dbuser,$dbpass,$dbname);
//-- hentikan program dan tampilkan pesan kesalahan jika koneksi gagal
if ($db->connect_error) {
die('Connect Error ('.$db->connect_errno.')'.$db->connect_error);
}
?>;
Sesuaikan nilai-nilai $dbhost,$dbuser,$dbpass
dan $dbname
dengan konfigurasi database yg digunakan.