Pattern Recognition
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
2
w.x w.x
i 1
Fungsi keputusan klasifikasi sign(f(x)) :
m
f ( x) w.x b atau f ( x) i yi K ( x, xi ) b
i 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).
Model SVM (Cont.)
Beberapa Macam Fungsi Kernel Support Vector Machine (SVM) :
No Nama Kernel Definisi Fungsi
1 Linier K(x,y) = x.y
2 Polinomial of degree d K(x,y) = (x.y)d
3 Polinomial of degree up to d K(x,y) = (x.y + c)d
4 Gaussian RBF
7 Additive
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).
Visualisasi SVM
Linier Kernel :
2 2
(w.x) + b = +1 Margin
w w1 w2
2 2
(w.x) + b = -1
yi xi w b 1
d w, b, xi
w w
(w.x) + b = 0
Non-Linier Kernel : yi f xi 1
d w, b , xi
w w
Karakteristik SVM
Karakteristik SVM :
SVM memerlukan proses pelatihan dengan menyimpan hasil
support vektor yang didapatkan untuk digunakan kembali pada
saat proses prediksi/testing.
SVM selalu memberikan model yang sama dan solusi yang
sama dengan margin maksimal.
SVM dapat memisahkan data yang distribusi kelasnya bersifat
linier maupun non linier.
SVM tidak dipengaruhi oleh dimensi data yang tinggi, sehingga
tidak ada proses reduksi dimensi didalamnya.
Memori yang digunakan dalam SVM dipengaruhi oleh
banyaknya data, bukan besarnya dimensi data.
Contoh Studi Kasus
Contoh SVM Linier pada dataset berikut :
Tentukan Hyperplanenya !
x1 x2 Kelas (y) Support Vector (SV)
1 1 1 1
1 -1 -1 1
-1 1 -1 1
-1 -1 -1 0
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 :
Contoh Studi Kasus 1 (Cont.)
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 margin :
Syarat :
x2
x1 x2 = 1 x1
1
-2 3
0.5
-1 2 x1
Kelas -1
0
-1.5 -1 -0.5 0 0.5 1 1.5
0 1 Kelas +1
-0.5
1 0
-1
2 -1
-1.5
Contoh Studi Kasus 1 (Cont.)
Misalkan diketahui data uji/ data testing berikut :
Diketahui : f(x) = x1 + x2 1
Kelas = sign(f(x)) x2 = 1 - x1
1.5
x2
Data Uji Hasil Klasifikasi
1
No
x1 x2 Kelas = sign(x1 + x2 - 1) 0.5
x1
Kelas -1
0
1 1 5 sign (1 + 5 - 1) = +1 -1.5 -1 -0.5 0 0.5 1 1.5 Kelas +1
-0.5
2 -1 4 sign (-1 + 4 - 1) = +1
-1
3 0 7 sign (0 + 7 - 1) = +1
-1.5
4 -9 0 sign (-9 + 0 - 1) = -1
5 2 -2 sign (2 - 2 - 1) = -1
Contoh Studi Kasus 2
Contoh SVM Non Linier pada dataset berikut :
x1 x2 Kelas (y) Support Vector (SP)
1 1 -1 1
1 -1 1 1
-1 1 1 1
-1 -1 -1 1
0.5
0
-1.5 -1 -0.5 0 0.5 1 1.5
-0.5
-1
-1.5
Contoh Studi Kasus 2 (Cont.)
Contoh SVM Non Linier :
1.5
x1 x2 Kelas (y)
1
1 1 -1 0.5
1 -1 1 0
-1.5 -1 -0.5 0 0.5 1 1.5
-0.5
-1 1 1
-1
-1 -1 -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 w i yi xi
i 1.. N
Menghitung matrik kernel K :
K(x,xi) = (x).(xi)
Contoh Studi Kasus 2 (Cont.)
Fungsi kernel dituliskan kembali menjadi berikut :
K(x,xi) = (xT.xi + 1)2 dengan w i yi xi
i 1.. N
u 12 z1
2
12 12 1 1
2u u 2z1z 2 2 .1.1 2 .1.(-1) 2 2
1 2
u2 2
z2
2
12 (-1)2 1 1
. . 2 . 1 2 1 2 2 1 1
2
2u1 2z1 2 .1 2 .1
2 u 2 2z 2 2 .1 2 .(-1) 2 2
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
9 1 1 1
1 9 1 1
1 1 9 1
1 1 1 9
Contoh Studi Kasus 2 (Cont.)
N
Syarat : 0 i C dan y
i 1
i i 0
x1i
X i i , jika X 1 adalah data ke 1,
x
2
1
1
X 1 , X i x i1
2
i i
2x 1 x 2 x 2 i 2 i
2x 1 i
2x 2 1
T
N 4
w y X y X y X
i 1
i i i
i 1
i i i 1 1 1 2 y2 X 2 3 y3 X 3 4 y4 X 4
x 12
12
1 1 1 1 0
1
2 x1 x1 2 11 2 2 2 2 - 0.71
1 2
2 1 1 1 0
x12 12 1
w 0.125 0.125 0.125 0.125
2 x 1 2 1 2
1 2 2 2 0
2 2 2 0
2 x12 2 1 2
1 1 1 0
1
Contoh Studi Kasus 2 (Cont.)
Misalkan didapatkan nilai Max Ld dengan 1 = 2 = 3 = 4 = 0.125.
Sehingga nilai Ld = 0.25.
0
Hitung nilai w dan b :
- 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.
0 1 0 1
- 0.71 2 - 0.71 2
0 1 0 1
1
2
1
b w.x w.x .
2 0 2 0
.
2
2 0
0 2
0 1 0 1
Contoh Studi Kasus 2 (Cont.)
Misalkan didapatkan nilai Max Ld dengan 1 = 2 = 3 = 4 = 0.125.
Sehingga nilai Ld = 0.25.
Hitung nilai w dan b :
Pilih salah satu Support Vector dari Kelas +1 dan -1 untuk menghitung nilai b.
0 1 0 1
- 0.71 2 - 0.71 2
0 1 0 1
1
2
1
b w.x w.x .
2 0 2 0
.
2
2 0
0 2
0 1 0 1
b 0.71 2 0.71 2 0.71 2 0.71 2 0
1
2
1
2
Contoh Studi Kasus 2 (Cont.)
Setelah didapatkan nilai w dan b :
0
- 0.71
w. xt b w. xt 0
b0
0
w N 4
0 i yi xi . xt i yi K xi , xt
0
i 1 i 1
0
Maka model SVM siap digunakan untuk proses klasifikasi.
N
f x signw. x b sign i yi xi . x b
i 1
Misalkan data uji/ data test xt = (1,5) maka K(xi,xt) = (xi).(xt)
x1 K(1,t) = (x1.xt + 1)2 = (1.1 + 5.1 +1)2 = 72 = 49 (-0.125)(49)
x2 K(2,t) = (x2.xt + 1)2 = (1.1 + 5.(-1) +1)2 = 32 = 9 (0.125)(9)
xt=(1,5)
x3 K(3,t) = (x3.xt + 1)2 = (1.(-1) + 5.1 +1)2 = 52 = 25 (0.125)(25)
x4 K(4,t) = (x4.xt + 1)2 = (1.(-1) + 5.(-1) +1)2 = (-5)2 = 25 (-0.125)(25)
-5
+
f xt signw. 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.
Latihan Individu
1. Perhatikan dataset SVM Linier berikut :
x1 x2 Kelas (y) Support Vector (SV) x1 x2 Kelas (y) SV1 SV2
1 1 +1 1 2 3 -1 1 0
1 -1 -1 1 3 4 -1 1 1
0 2 -1 1 5 2 +1 1 1
-1 -1 -1 0 6 3 +1 0 0
dataset 1 dataset 2
Tentukan Visualisasi Hyperplane masing-masing dataset di atas !
2. Perhatikan dataset SVM non-Linier berikut :
x1 x2 Kelas (y) SV
0.5 0 -1 1
1 -1 +1 1
-1 1 +1 1
Tentukan persamaan Hyperplanenya,
-0.5 -0.5 -1 1 lalu uji kelas data xt = (1,1) !
Selesai