Anda di halaman 1dari 9

Support Vector Machine

Menurut Santoso (2007) Support vector machine (SVM) adalah suatu teknik untuk melakukan
prediksi, baik dalam kasus klasifikasi maupun regresi. 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.
Dalam penelitian ini, teknik SVM digunakan untuk menemukan fungsi pemisah(klasifier) yang
optimal yang bisa memisahkan dua set data dari dua kelas yang berbeda. Penggunaan teknik
machine learning tersebut, karena performansinya yang meyakinkan dalam memprediksi kelas
suatu data baru.
Teori SVM dimulai dengan kasus klasifikasi yang secara linier bisa dipisahkan. Dalam hal ini
fungsi pemisah yang dicari adalah fungsi linier. Fungsi ini bisa didefinisikan sebagai;
g(x) := sgn(f(x)) (2.1)
dengan (2,2)
atau (2.3)
dimana x, w
and b
. Masalah klasifikasi ini bisa dirumuskan set parameter (w, b) sehingga f(xi) =< w, x > +b = y
i

untuk semua i. Teknik SVM berusaha menemukan fungsi pemisah (klasifier/hyperplane) terbaik
diantara fungsi yang tidak terbatas jumlahnya untuk memisahkan dua macam obyek. Hyperplane
terbaik adalah hyperplane yang terletak di tengah-tengah antara dua set obyek dari dua kelas.
Mencari hyperplane terbaik ekuivalen dengan memaksimalkan margin atau jarak antara dua set
obyek dari kelas yang berbeda. Jika adalah hyperplane-pendukung (supporting hyperplane) dari
kelas dan hyperplane-pendukung dari kelas
, margin antara dua kelas dapat dihitung dengan mencari jarak antara kedua hyperplane-
pendukung dari kedua kelas. Secara spesifik, margin dihitung dengan cara berikut:
.
Menurut Kecman, Vojislav Kosaka (2001), untuk detailnya bagaimana nilai margin optimal
diperoleh seperti dijelaskan pada gambar 2.1 dibawah ini;


Gambar 2. 1 Nilai Jarak Optimal


Gambar 2. 2 Hyperplane

Pada suatu ruang ada suatu titik dan hyperplane d (x, W, b) = 0 kemudian didefinisikan oleh ,
maka D jarak dari titik P ke hyperplane diberikan sebagai berikut;

( 2.4)
Jarak antara dua Support vektor dari kelas yang berbeda. Maka margin M dapat didefisikan
sebagai berikut:
(2.5)
dmana notasi w subscript menunjukkan proyeksi ke arah vektor bobot W. Kemudian M marjin
sekarang dapat ditemukan dengan menggunakan Support vektor x
1
dan x
2
sebagai berikut;
, , (2.6)
Dimana merupakan sudut antara w dengan dam besarnya darajat sudut antara w dengan ,
sehinga kedua konsep jarak dari vector tersebut dapat dijelaskan dalam bentuk:
(2.7)
Kemudian formula (2.7) disubstitusikan kedalam kedalam bentuk formula (2.6) yang
mengahasilkan.
(2.8)
dan dengan menggunakan fakta bahwa dan adalah support vektor yang memenuhi , j=1,2, , yaitu,
dan , dan akhirnya diperoleh;
(2.9)
Atau singkatnya pendekatan secara aljabar bisa saja digunakan untuk menunjukkan hubungan
antara vektor bobot normal dan M margin: (2.43) menyatakan jarak D antara vektor dukungan
dan Hyperplan kanonik. Jadi, misalnya, untuk dua-dimensi input ditunjukkan pada gambar 2.17,
jarak D antara dukungan vektor x
2
dan garis pemisah kanonik adalah sama dengan setengah dari
M margin, dan dari (2.43) maka diperoleh

Untuk membuktikan bahwa memaksimalkan margin antara dua set obyek akan meningkatkan
probabilitas pengelompokkan secara benar dari data testing. Pada dasarnya jumlah fungsi
pemisah ini tidak terbatas banyaknya. Misalkan dari jumlah yang tidak terbatas ini diambil dua
saja, yaitu f
1
(x) and f
2
(x) . Fungsi f
1
mempunyai margin yang lebih besar dari pada fungsi f
2
.
Setelah menemukan dua fungsi ini, sekarang suatu data baru masuk dengan keluaran 1.
Kemudian harus dikengelompokkan apakah data ini ada dalam kelas 1 atau +1 dengan
menggunakan fungsi pemisah yang sudah di temukan. Dengan menggunakan f
1
, akan
kelompokkan data baru ini di kelas 1 yang berarti pengelompokkannya benar. Selanjutnya
gunakan f
2
, akan menempatkannya di kelas +1 yang berarti salah. Dengan demikian bahwa
memperbesar margin bisa meningkatkan probabilitas pengelompokkan suatu data secara benar.
1. Formula Matematis
Secara matematika, formulasi problem optimisasi SVM untuk kasus klasifikasi linier di dalam
primal space santoso (2007)
adalah
(2.11)
Subject to

(2.12)
dimana x
i

adalah data input, y
i
adalah keluaran dari data x
i
, w, b adalah parameter-parameter yang dicari
nilainya. Dalam formulasi di atas,akan diminimalkan fungsi tujuan (obyektif function) atau
memaksimalkan kuantitas atau
dengan memperhatikan pembatas
Bila output data y
i

= +1, maka pembatas menjadi .
Sebaliknya bila y
i

= -1, pembatas menjadi (wx
i
+b) 1. Di dalam kasus yang tidak feasible (infeasible) dimana
beberapa data mungkin tidak bisa dikelompokkan secara benar, formulasi matematikanya
menjadi berikut

Subject to

dimana ti adalah variabel slack. Dengan formulasi ini dapat memaksimalkan margin antara dua
kelas dengan meminimalkan ) . Dalam formulasi ini berusaha meminimalkan kesalahan
klasifikasi (misclassification error) yang dinyatakan dengan adanya variabel slack ti, sementara
dalam waktu yang sama dapat memaksimalkan margin, ) . . Penggunaan variabel slack
adalah untuk mengatasi kasus ketidaklayakan (infeasibility) dari pembatas (constraints)
dengan cara memberi pinalti untuk data yang tidak memenuhi pembatas tersebut. Untuk
meminimalkan nilai ti ini, berikan pinalti dengan menerapkan konstanta ongkos C. Vektor w
tegak lurus terhadap fungsi pemisah: wx + b = 0. Konstanta b menentukan lokasi fungsi pemisah
relatif terhadap titik asal (origin). Problem formula diatas adalah programa nonlinear. Ini bisa
dilihat dari fungsi tujuan (objective function) yang berbentuk kuadrat. Untuk menyelesaikannya
lebih mudah dan efisien untuk diselesaikan, masalah ini bisa ditransformasikan ke dalam dual
space. Untuk itu, formula diatas dirubah menjadi fungsi Lagrangian :


dimana variabel non-negatif, i dinamakan Lagrange multiplier. Solusi dari problem optimisasi
dengan pembatas seperti di atas ditentukan dengan mencari
saddle point dari fungsi Lagrangian J(w, b, ). Fungsi ini harus diminimalkan terhadap variabel
w dan b dan harus dimaksimalkan terhadap variable . Kemudian cari turunan pertama dari
fungsi J(w, b, ) terhadap variabel w dan b dan samakan dengan 0. Dengan melakukan proses
ini, akan mendapatkan dua kondisi optimalitas berikut:
1. kondisi 1:


1. kondisi 2:

Penerapan kondisi optimalitas 1 pada fungsi Lagrangian (2.14) akan menghasilkan

Penerapan kondisi optimalitas 2 pada fungsi Lagrangian (2.14) akan menghasilkan


Menurut duality theorem (Bertsekas,1995)
1. Jika problem primal mempunyai solusi optimal, maka problem dual juga akan
mempunyai solusi optimal yang nilainya sama.
2. Bila w
o

adalah solusi optimal untuk problem primal dan
o

untuk problem dual, maka perlu dan cukup bahwa w
o

solusi layak untuk problem primal dan
(w
o
) = J(w
o
, b
o
,
o
) =

Untuk mendapatkan problem dual dari problem , jabarkan persamaan (2.14) sebagai berikut:


Menurut kondisi optimalitas ke dua dalam (2.18), term ketiga sisi sebelah kanan dalam
persamaan di atas sama dengan 0. Dengan memakai nilai nilai w di (2.17), dapatkan

maka persamaan (2.18) menjadi


Selanjutnya dapatkan formulasi dual dari problem (2.11):

Subject to

0
i
, i=1,,

Dengan dot product sering diganti dengan simbol K. dimana K adalah fungsi kernel. Formulasi
(2.22) adalah quadratic programming (QP)dengan pembatas (constraint) linier. Melatih SVM
ekuivalen dengan menyelesaikan problem convex optimization. Karena itu solusi dari SVM
adalah unik (dengan asumsi bahwa k adalah positive definite) dan global optimal.



Fungsi pemisah optimal adalah



Dimana
= 1, .., adalah solusi optimal dari problem (10) dan

dipilih sehingga y
i
f(x
i
) = 1 untuk sembarang i dengan C > >0 . Data x
i
dimana > 0 dinamakan
support vector dan menyatakan data training yang diperlukan untuk mewakili fungsi keputusan
yang optimal.

1. Metode Kernel
Menurt Santoso (2007) banyak teknik data mining atau machine learning yang dikembangkan
dengan asumsi kelinieran. Sehingga algorithma yang dihasilkan terbatas untuk kasus-kasus yang
linier. Karena itu, bila suatu kasus klasifikasi memperlihatkan ketidaklinieran, algorithma seperti
perceptron tidak bisa mengatasinya. Secara umum, kasus-kasus di dunia nyata adalah kasus yang
tidak linier. Sebagai contoh, perhatikan Gambar 2.3. Data ini sulit dipisahkan secara linier.
Metoda kernel adalah salah satu untuk mengatasinya. Dengan metoda kernel suatu data x di input
space dimapping ke feature space F dengan dimensi yang lebih tinggi melalui map sebagai
berikut : x _ (x). Karena itu data x di input space menjadi (x) di feature space. Sering kali
fungsi (x) tidak tersedia atau tidak bisa dihitung. Tetapi dot product dari dua vektor dapat
dihitung baik di dalam input space maupun di feature space. Dengan kata lain, sementara (x)
mungkin tidak diketahui, dot product < (x
1
), (x
2
) > masih bisa dihitung di feature space.
Untuk bisa memakai metoda kernel, pembatas (constraint) perlu diekspresikan dalam bentuk dot
product dari vektor data xi. Sebagai konsekuensi, pembatas yang menjelaskan permasalahan
dalam klasifikasi harus diformulasikan kembali sehingga menjadi bentuk dot product. Dalam
feature space ini dot product < . > menjadi< (x), (x) >. Suatu fungsi kernel, k(x, x), bisa
untuk menggantikan dot product < (x), (x) >. Kemudian di feature space, bisa membuat
suatu fungsi pemisah yang linier yang mewakili fungsi nonlinear di input space. Gambar 2.3
mendeskrisikan suatu contoh feature mapping dari ruang dua dimensi ke feature space dua
dimensi.
Dalam input space, data tidak bisa dipisahkan secara linier, tetapi bias memisahkan di feature
space. Karena itu dengan memetakan data ke feature space menjadikan tugas klasifikasi menjadi
lebih mudah


Gambar 2. 3 Transformasi Kelinieran

Linier :

Polynomial:






Pemilihan fungsi kernel yang tepat adalah hal yang sangat penting. Karena fungsi kernel ini akan
menentukan feature space di mana fungsi klasifier akan dicari. Sepanjang fungsi kernelnya
legitimate, SVM akan beroperasi secara benar meskipun tidak tahu seperti apa map yang
digunakan. Pada penerapan metoda kernel, tidak perlu tahu map apa yang digunakan untuk satu
per satu data, tetapi lebih penting mengetahui bahwa dot produk dua titik di feaure space bisa
digantikan oleh fungsi kernel.

1. Support Vector Machine Multikelas
Pengembangan kearah persoalan klasifikasi untuk multi kelas masih menjadi perhatian para
peneliti [Hsu and Lin, 2002]. Pada Klasifikasi multi kelas, output dari set data memiliki lebih
dari dua kelas atau kategori. Dengan jumlah kelas yang lebih dari dua, maka diperlukan
pendekatan yang berbeda dengan kasus dua kelas. Ada dua pendekatan utama untuk SVM multi
kelas yaitu: pertama menentukan dan menggabungkan beberapa fungsi pemisah persoalan
klasifikasi multi kelas. Yang kedua, secara langsung menggunakan semua data dari semua kelas
dalam satu formasi persoalan optimasi.termasuk dalam pendekatan pertama dimana beberapa
fungsi untuk problem dua kelas dikembangkan lalu digabung: satu-lawan-semua (One-againt-
all), dan satu-lawan-satu(one-againts-one) [Hsu and Lin,2002; Santosa and Trafalis, 2004].
1. Metode Satu-Lawan Semua
Menurut Santoso (2007) Metode Satu-Lawan-Satu (SLA), untuk masalah klasifikasi k-Kelas,
ditemukan k fungsi pemisah dimana k adalah banyaknya kelas. Misalkan fungsi pemisah
dinamakan dan dinotasikan dengan .Dalam metode ini, ditraining dengan data dari kelas-i
dengan label +1 dan semua data dari kelas lain dengan label
-1. Diislustrasikan dalam masalah klasifikasi 3 kelas, ketika mentraining semua data dalam kelas
1 diberi label +1 dan data yang lain dari kelas 2 dan 3 diberi -1. Begitu juga, ketika fungsi semua
data dalam kelas 2 diberi label +1 dan data yang lain dari kelas 1 dan 3 diberi label -1. Proses
dilakuakn untuk semua i=1,2,3. Dan apabila diberikan data untuk training dimana adalah data
input dan kelas dari yang bersangkutan, fungsi pemisah ke-I menyelesaikan persoalan optimasi
berikut:

(2.25)



Setelah penyelesaian (2.25) ada k Fungsi pemisah


1. Estimasi Parameter Terbaik
Akurasi model yang akan dihasikan dari proses pelatihan dengan SVM sangat bergantung pada
fungsi kernal serta parameter yang digunakan. Oleh karena itu
performansinya dapat dioptimasi dengan mencari (mengestimasi) parameter terbaik. Ada
beberapa cara yang dapat dilakukan antara lain cross validation (mudah digunakan) dan leave-
one-out (akurat tetapi membutuhkan biaya komputasi yang tinggi) . K-folds crossalidation dapat
digunakan untuk menentukan nilai parameter C dan parameter kernel yang tidak overfit data
pelatihan. Dengan metode ini, data yang diambil secara acak kemudian dibagi menjadi k buah
partisi dengan ukuran yang sama. Selanjutnya, dilakukan iterasi sebanyak k. Pada setiap iterasi
digunakan sebuah partisi sebagai data pengujian, sedangkan k-1 partisi sisanya digunakan
sebagai data pelatihan. Jadi akan dicoba berbagai nilai parameter dan parameter terbaik
ditentukan melalui k-folds crossalidation.

1. Pemilihan Atribut penting (feature selection)
Pada pelatihan dengan menggunakan SVM tidak terdapat mekanisme untuk mengetahui atribut
yang penting atau yang kurang penting. Atribut yang kurang
penting umumnya tidak mempengaruhi efektifitas teknik klasifikasi. Oleh karena itu, jika atribut
yang kurang penting ini dibuang maka efisiensi teknik klasifikasi akan meningkat. Efektifitas
teknik klasifikasi juga dapat meningkat jika atribut yang kurang penting ini ternyata menjadi
noise. Pada SVM salah satu cara yang sederhana untuk mengetahui atribut yang penting adalah
seperti yang dilakukan dengan mengevaluasi efektifitas dan efisiensi teknik klasifikasi setelah
sebuah fitur dihilangkan. Dari hasil pengujian setelah fitur ini dihilangkan dapat diketahui
sebuah fitur penting atau tidak dari perbedaan efisiensi dan efektifitas

Anda mungkin juga menyukai