0% menganggap dokumen ini bermanfaat (0 suara)
734 tayangan15 halaman

Support Vector Machine

SVM merupakan teknik klasifikasi dan regresi yang mempelajari fungsi pemisah optimal untuk memisahkan dua kelas data. SVM mampu bekerja pada data berdimensi tinggi dengan menggunakan kernel trick untuk mentransformasi data ke ruang vektor berdimensi lebih tinggi dimana kedua kelas dapat dipisahkan secara linear. Kelebihan SVM termasuk generalisasi yang lebih baik, tidak terpengaruh oleh kutukan dimensi, berlandaskan te
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
734 tayangan15 halaman

Support Vector Machine

SVM merupakan teknik klasifikasi dan regresi yang mempelajari fungsi pemisah optimal untuk memisahkan dua kelas data. SVM mampu bekerja pada data berdimensi tinggi dengan menggunakan kernel trick untuk mentransformasi data ke ruang vektor berdimensi lebih tinggi dimana kedua kelas dapat dipisahkan secara linear. Kelebihan SVM termasuk generalisasi yang lebih baik, tidak terpengaruh oleh kutukan dimensi, berlandaskan te
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 15

SUPPORT VECTOR MACHINE (SVM)

A. PENGERTIAN SVM
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. 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. SVM mampu bekerja pada dataset yang berdimensi tinggi dengan menggunakan
kernel trik. SVM hanya menggunakan beberapa titik data terpilih yang berkontribusi (Support
Vector) untuk membentuk model yang akan digunakan dalam proses klasifikasi.
Macam-Macam Training untuk SVM :
Chunking (Quadratic Programming).
Osuna (Dekomposisi).
Sequential Minimum Optimation (SMO).
Least Square (LS) dan lainnya.
B. MODEL SVM
Titik data : xi = {x1,x2,.,xn} Rn
Kelas data : yi {-1,+1}
Pasangan data dan kelas :

xi , yi iN1
Maksimalkan fungsi berikut :

Ld i i j yi y j K xi , x j syarat : 0 i C dan
N N N N

i 1 i 1 j 1
y
i 1
i i 0

Hitung nilai w dan b :


N
w i yi xi b
1
w.x w.x
i 1 2
Fungsi keputusan klasifikasi sign(f(x)) :
m
f ( x) w.x b atau f ( x) i yi K ( x, xi ) b
i 1

1
Keterangan :
N (banyaknya data), n (dimensi data atau banyaknya fitur), Ld (Dualitas Lagrange Multipier),
i (nilai bobot setiap titik data), C (nilai konstanta), m (jumlah support vector/titik data yang
memiliki i > 0), K(x,xi) (fungsi kernel).
Beberapa Macam Fungsi Kernel Support Vector Machine (SVM) :

Kernel Linier digunakan ketika data yang akan diklasifikasi dapat terpisah dengan sebuah
garis/hyperplane.
Kernel non-Linier digunakan ketika data hanya dapat dipisahkan dengan garis lengkung
atau sebuah bidang pada ruang dimensi tinggi (Kernel Trik, No.2 sampai 6).
C. VISUALISASI SVM
Linier Kernel :

2 2
Margin
w w1 w2
2 2

2
Non Linear

D. KERNEL TRICK DAN NON LINEAR CLASSIFICATION PADA SVM


Pada umumnya masalah dalam domain dunia nyata (real world problem) jarang yang bersifat
linear separable. Kebanyakan bersifat non linear. Untuk menyelesaikan problem non linear, SVM
dimodifikasi dengan memasukkan fungsi Kernel.
Dalam non linear SVM, pertama-tama data x dipetakan oleh fungsi (x) ke ruang vektor yang
berdimensi lebih tinggi. Pada ruang vektor yang baru ini, hyperplane yang memisahkan kedua
class tersebut dapat dikonstruksikan. Hal ini sejalan dengan teori Cover yang menyatakanJika
suatu transformasi bersifat non linear dan dimensi dari feature space cukup tinggi, maka data pada
input space dapat dipetakan ke feature space yang baru, dimana pattern-pattern tersebut pada
probabilitas tinggi dapat dipisahkan secara linear. Ilustrasi dari konsep ini dapat dilihat pada
gambar 2. Pada gambar 2a diperlihatkan data pada class kuning dan data pada class merah yang
berada pada input space berdimensi dua tidak dapat dipisahkan secara linear. Selanjutnya gambar
2b menunjukkan bahwa fungsi memetakan tiap data pada input space tersebut ke ruang vektor
baru yang berdimensi lebih tinggi (dimensi 3), dimana kedua class dapat dipisahkan secara linear
oleh sebuah hyperplane. Notasi matematika dari mapping ini adalah
: d q d<q

3
Gambar 2 Fungsi memetakan data ke ruang vektor yang berdimensi lebih tinggi, sehingga
kedua class dapat dipisahkan secara linear oleh sebuah hyperplane

Pemetaan ini dilakukan dengan menjaga topologi data, dalam artian dua data yang berjarak dekat
pada input space akan berjarak dekat juga pada feature space, sebaliknya dua data yang berjarak
jauh pada input space akan juga berjarak jauh pada feature space. Selanjutnya proses pembelajaran
pada SVM dalam menemukan titik-titik support vector, hanya bergantung pada dot productdari
data yang sudah ditransformasikan pada ruang baru yang berdimensi lebih tinggi, yaitu
(). () .

Karena umumnya transformasi ini tidak diketahui, dan sangat sulit untuk dipahami secara
mudah, maka perhitungan dot product tersebut sesuai teori Mercer dapat digantikan dengan fungsi
kernel ( , ) yang mendefinisikan secara implisit transformasi. Hal ini disebut sebagai
Kernel Trick, yang dirumuskan
( , ) = (). ()

Kernel trick memberikan berbagai kemudahan, karena dalam proses pembelajaran SVM, untuk
menentukan support vector, kita hanya cukup mengetahui fungsi kernel yang dipakai, dan tidak
perlu mengetahui wujud dari fungsi non linear . Berbagai jenis fungsi kernel dikenal,
sebagaimana dirangkumkan pada tabel 1. Selanjutnya hasil klasifikasi dari data x diperoleh dari
persamaan berikut :

4
SV pada persamaan di atas dimaksudkan dengan subset dari training set yang terpilih sebagai
support vector, dengan kata lain data yang berkorespondensi pada 0.

E. KARAKTERISTIK SVM
Karakteristik SVM sebagaimana telah , dirangkumkan sebagai berikut:
1. Secara prinsip SVM adalah linear classifier
2. Pattern recognition dilakukan dengan mentransformasikan data pada input space ke ruang
yang berdimensi lebih tinggi, dan optimisasi dilakukan pada ruang vector yang baru
tersebut. Hal ini membedakan SVM dari solusi pattern recognition pada umumnya, yang
melakukan optimisasi parameter pada ruang hasil transformasi yang berdimensi lebih
rendah daripada dimensi input space.
3. Menerapkan strategi Structural Risk Minimization(SRM)
4. Prinsip kerja SVM pada dasarnya hanya mampu menangani klasifikasi dua class.
5. Memori yang digunakan dalam SVM dipengaruhi oleh banyaknya data, bukan besarnya
dimensi data.
F. KELEBIHAN DAN KEKURANGAN SVM
Dalam memilih solusi untuk menyelesaikan suatu masalah, kelebihan dan kelemahan masing-
masing metode harus diperhatikan. Selanjutnya metode yang tepat dipilih dengan memperhatikan
karakteristik data yang diolah. Dalam hal SVM, walaupun berbagai studi telah menunjukkan
kelebihan metode SVM dibandingkan metode konvensional lain, SVM juga memiliki berbagai
kelemahan. Kelebihan SVM antara lain sebagai berikut.
1. Generalisasi
Generalisasi didefinisikan sebagai kemampuan suatu metode (SVM, neural network, dsb.) untuk
mengklasifikasikan suatu pattern, yang tidak termasuk data yang dipakai dalam fase pembelajaran
metode itu. Vapnik menjelaskan bahwa generalization error dipengaruhi oleh dua faktor: error
terhadap training set, dan satu faktor lagi yang dipengaruhi oleh dimensi VC (Vapnik-
Chervokinensis). Strategi pembelajaran pada neural network dan umumnya metode learning
machine difokuskan pada usaha untuk meminimimalkan error pada training-set. Strategi ini
disebut Empirical Risk Minimization(ERM). Adapun SVM selain meminimalkan error pada
training-set, juga meminimalkan faktor kedua. Strategi ini disebut Structural Risk
Minimization(SRM), dan dalam SVM diwujudkan dengan memilih hyperplane dengan margin
terbesar. Berbagai studi empiris menunjukkan bahwa pendekatan SRM pada SVM memberikan
error generalisasi yang lebih kecil daripada yang diperoleh dari strategi ERM pada neural network
maupun metode yang lain.
2. Curse of dimensionality
Curse of dimensionality didefinisikan sebagai masalah yang dihadapi suatu metode pattern
recognition dalam mengestimasikan parameter (misalnya jumlah hidden neuron pada neural
network, stopping criteria dalam proses pembelajaran dsb.) dikarenakan jumlah sampel data yang

5
relatif sedikit dibandingkan dimensional ruang vektor data tersebut. Semakin tinggi dimensi dari
ruang vektor informasi yang diolah, membawa konsekuensi dibutuhkannya jumlah data dalam
proses pembelajaran. Pada kenyataannya seringkali terjadi, data yang diolah berjumlah terbatas,
dan untuk mengumpulkan data yang lebih banyak tidak mungkin dilakukan karena kendala biaya
dan kesulitan teknis. Dalam kondisi tersebut, jika metode itu terpaksa harus bekerja pada data
yang berjumlah relatif sedikit dibandingkan dimensinya, akan membuat proses estimasi parameter
metode menjadi sangat sulit. Curse of dimensionality sering dialami dalam aplikasi di bidang
biomedical engineering, karena biasanya data biologi yang tersedia sangat terbatas, dan
penyediaannya memerlukan biaya tinggi. Vapnik membuktikan bahwa tingkat generalisasi yang
diperoleh oleh SVM tidak dipengaruhi oleh dimensi dari input vector [3]. Hal ini merupakan alasan
mengapa SVM merupakan salah satu metode yang tepat dipakai untuk memecahkan masalah
berdimensi tinggi, dalam keterbatasan sampel data yang ada.
3. Landasan teori
Sebagai metode yang berbasis statistik, SVM memiliki landasan teori yang dapat dianalisa dengan
jelas, dan tidak bersifat black box.
4. Feasibility
SVM dapat diimplementasikan relatif mudah, karena proses penentuan support vector dapat
dirumuskan dalam QP problem. Dengan demikian jika kita memiliki libraryuntuk menyelesaikan
QP problem, dengan sendirinya SVM dapat diimplementasikan dengan mudah. Selain itu dapat
diselesaikan dengan metode sekuensial .
Disamping kelebihannya, SVM memiliki kelemahan atau keterbatasan, antara lain:
1. Sulit dipakai dalam problem berskala besar. Skala besar dalam hal ini dimaksudkan dengan
jumlah sample yang diolah.
2. SVM secara teoritik dikembangkan untuk problem klasifikasi dengan dua class. Dewasa ini
SVM telah dimodifikasi agar dapat menyelesaikan masalah dengan class lebih dari dua, antara lain
strategi One versus rest dan strategi Tree Structure. Namun demikian, masing-masing strategi ini
memiliki kelemahan, sehingga dapat dikatakan penelitian dan pengembangan SVM pada
multiclass-problem masih merupakan tema penelitian yang masih terbuka.

G. CONTOH STUDI KASUS


Contoh SVM Linier pada dataset berikut :
Tentukan Hyperplanenya !

x1 x2 Kelas (y) Support Vector (SV)

1 1 1 1

6
1 -1 -1 1

-1 1 -1 1

-1 -1 -1 0

Bentuk Visualisasi data :

Karena ada dua fitur (x1 dan x2), maka w juga akan memiliki 2 fitur (w1 dan w2).
Formulasi yang digunakan adalah sebagai berikut :
Meminimalkan nilai :

Syarat :

Sehingga didapatkan persamaan berikut :

Menjumlahkan persamaan (1) dan (2) :

Menjumlahkan persamaan (1) dan (3) :

7
Menjumlahkan persamaan (2) dan (3)

Sehingga didapatkan persamaan hyperplane :


w1x1 + w2x2 + b = 0
x1 + x2 - 1 = 0
x2 = 1 - x1

Visualisasi garis hyperplane (sebagai fungsi klasifikasi) :


w1x1 + w2x2 + b = 0
x1 + x2 - 1 = 0
x2 = 1 - x1

x1 x2 = 1 x1

-2 3

-1 2

0 1

1 0

2 -1

Misalkan diketahui data uji/ data testing berikut :


Diketahui : f(x) = x1 + x2 1
Kelas = sign(f(x))

8
Data Uji Hasil Klasifikasi
No
x1 x2 Kelas = sign(x1 + x2 - 1)

1 1 5 sign (1 + 5 - 1) = +1

2 -1 4 sign (-1 + 4 - 1) = +1

3 0 7 sign (0 + 7 - 1) = +1

4 -9 0 sign (-9 + 0 - 1) = -1

5 2 -2 sign (2 - 2 - 1) = -1

Contoh SVM Non Linier pada dataset berikut :

x1 x2 Kelas Support Vector


(y) (SP)

1 1 -1 1

1 -1 1 1

-1 1 1 1

-1 -1 -1 1

9
Bentuk Visualisasi data :

1.5
1
0.5
0
-1.5 -1 -0.5 -0.5 0 0.5 1 1.5
-1
-1.5

Karena ada dua fitur (x1 dan x2), dan kelompok datanya tidak linear, maka
digunakan fungsi kernel. Misal menggunakan fungsi kernel polynomial ordo 2,
yaitu :
K(x,y) = (x.y + c)d dengan c = 1 dan d = 2.
Fungsi kernel dituliskan kembali menjadi berikut :
K(x,xi) = (xT.xi + 1)2 dengan
Menghitung matrik kernel K :
K(x,xi) = (x).(xi)
Fungsi kernel dituliskan kembali menjadi berikut :
K(x,xi) = (xT.xi + 1)2 dengan
Menghitung matrik kernel K(x,xi) = (x).(xi)
Misal, Menghitung K(u,z) : dengan u=(1,1) dan z=(1,-1)
k(U=(1,1),Z=(1,-1)) = (((U1.Z1)+(U2.Z2))+1)2 =
((U1.Z1)+(U2.Z2))2+2((U1.Z1)+(U2.Z2)).1 + 12
= (U1.Z1)2 + 2(U1.Z1)(U2.Z2) + (U2.Z2)2 + 2(U1.Z1) + 2(U2.Z2) + 1
u12 z12

2u u 2z z
1 2
1 2

u 2 z22
2

.
2u1 2z1

2u 2 2z 2
1 1

(u ). ( z )
u1 z1 2u1u 2 z1z 2 u 2 z 2 2u1z1 2u 2 z 2 1
2 2 2 2

u1z1 2u1z1 u 2 z 2 u 2 z 2 2u1z1 2u 2 z 2 1


2 2

Misal, Menghitung K(u,z) : dengan u=(1,1) dan z=(1,-1)


k(U=(1,1),Z=(1,-1)) = (((1.1)+(1.(-1)))+1)2 = ((1.1)+(1.(-1)))2+2((1.1)+(1.(-1))).1 + 12

10
= (1.1)2 + 2(1.1)(1.(-1)) + (1.(-1))2 + 2(1.1) + 2(1.(-1)) + 1
=1-2+1+2-2+1=1

u12 z12 12 12 1 1

2u u 2z z 2 .1.1 2 .1.(-1) 2 2
1 2
1 2

u 2 z 2 2 12 (-1)2
2
1 1
. . . 1 2 1 2 2 1 1
2u1 2z1 2 .1 2 .1 2 2

2 2
2u 2 2z 2 2 .1 2 .(-1)
1 1 1
1 1 1
(u ). ( z )
u1 z1 2u1u 2 z1z 2 u 2 z 2 2u1z1 2u 2 z 2 1
2 2 2 2

u1z1 2u1z1 u 2 z 2 u 2 z 2 2u1z1 2u 2 z 2 1


2 2

Menghitung matrik kernel K(x,xi) = (x).(xi)


x1 K(1,1) = (x1.x1 + 1)2 = (1.1 + 1.1 +1)2 = 32 = 9

x2 K(1,2) = (x1.x2 + 1)2 = (1.1 + 1.(-1) +1)2 = 12 = 1


x1
x3 K(1,3) = (x1.x3 + 1)2 = (1.(-1) + 1.1 +1)2 = 12 = 1

x4 K(1,4) = (x1.x4 + 1)2 = (1.(-1) + 1.(-1) +1)2 = (-1)2 = 1

x1 K(2,1) = (x2.x1 + 1)2 = (1.1 + (-1).1 +1)2 = 12 = 1

x2 K(2,2) = (x2.x2 + 1)2 = (1.1 + (-1).(-1) +1)2 = 32 = 9


x2
x3 K(2,3) = (x2.x3 + 1)2 = (1.(-1) + (-1).1 +1)2 = 12 = 1

x4 K(2,4) = (x2.x4 + 1)2 = (1.(-1) + (-1).(-1) +1)2 = 12 = 1

x1 K(3,1) = (x3.x1 + 1)2 = ((-1).1 + 1.1 +1)2 = 12 = 1

x2 K(3,2) = (x3.x2 + 1)2 = ((-1).1 + 1.(-1) +1)2 = 12 = 1


X3
x3 K(3,3) = (x3.x3 + 1)2 = ((-1).(-1) + 1.1 +1)2 = 32 = 9

x4 K(3,4) = (x3.x4 + 1)2 = ((-1).(-1) + 1.(-1) +1)2 = 12 = 1

11
x1 K(4,1) = (x4.x1 + 1)2 = ((-1).1 + (-1).1 +1)2 = 12 = 1

x2 K(4,2) = (x4.x2 + 1)2 = ((-1).1 + (-1).(-1) +1)2 = 12 = 1


x4
x3 K(4,3) = (x4.x3 + 1)2 = ((-1).(-1) + (-1).1 +1)2 = 12 = 1

X4 K(4,4) = (x4.x4 + 1)2 = ((-1).(-1) + (-1).(-1) +1)2 = 32 = 9

Didapatkan matrik kernel dengan ukuran N x N :

N
Syarat : 0 i C dan y
i 1
i i 0

12
N
w y X
i 1
i i i

N 4
w i yi X i i yi X i 1 y1 X 1 2 y2 X 2 3 y3 X 3 4 y4 X 4
i 1 i 1

2
x11 12 1 1 1 1 0

2 x x 2 11 2
1 1
2 2 2 - 0.71
1 2
12
1 1 1 0
x2 1 1
w 0.125 0.125
2
0.125 0.125
2 x 1
2 1 2 2 2 2 0
1 2 2 2 0
2 x 2 2 1 2
1

1 1 1 0
1

Misalkan didapatkan nilai Max Ld dengan 1 = 2 = 3 = 4 = 0.125. Sehingga


nilai Ld = 0.25.
Hitung nilai w dan b :

0

- 0.71
N 0
w i yi X i
i 1 0
0

0

Pilih salah satu Support Vector dari Kelas +1 dan -1 untuk menghitung
nilai b.

13
0 1 0 1

- 0.71 2 - 0.71 2

1 0 1 0 1
b
1
2

w.x w.x .
2 0 2 0 2
.

0 2 0 2
0 1 0 1

b
1
2

0.71 2 0.71 2 1 0.71 2 0.71 2 0
2

Setelah didapatkan nilai w dan b :

0

- 0.71
0
w
0
0

0

b0
Maka model SVM siap digunakan untuk proses klasifikasi.

N
f x sign w. x b sign i yi xi . x b
i 1
Misalkan data uji/ data test xt = (1,5) maka K(xi,xt) = (xi).(xt)

f xt sign w. 1,5 b sign 6.125 1.125 3.125 3.125 0 sign 5 1


Jadi data xt = (1,5) tersebut masuk ke kelas negatif.

14
15

Anda mungkin juga menyukai