7 November 2016
Analitik Data Tingkat Lanjut
(Klasifikasi)
Pokok Bahasan
1. Konsep Klasifikasi
2. Linear dan Non-Linear Classifier 3. Algoritma Klasifikasi:
o Extreme Learning Machine (ELM) Untuk Regresi
Vs ELM Untuk Klasifikasi
o Support Vector Machine (SVM) Linear dan
Non-Linear
2 Kelas (Binary SVM)
> 2 Kelas (OAA-SVM, OAO-SVM, BDT-SVM, DAG-SVM)
Konsep Klasifikasi (Just Review)
• Prediksi berbeda dengan klasifikasi (dalam machine learning, klasifikasi dianggap sebagai salah satu jenis dari prediksi).
• Klasifikasi digunakan untuk memprediksi label
kelas/kategori.
• Klasifikasi dapat dibagi lagi menjadi dua macam, yaitu:
– supervised classification (Klasifikasi) dan
– unsupervised classification (Clustering sudah
dibahas pada pertemuan sebelumya)
• Prediksi versus Peramalan (Jangka waktu merupakan
Konsep Klasifikasi (Just Review)
• Supervised Learning (Pembelajaran yang terawasi,
yaitu terdapat proses training dan testing):
o Regresi: untuk memprediksi nilai yang sifatnya kontinu.
o Klasifikasi: untuk memprediksi kelas atau label data dan
bersifatnya diskrit.
Property
Supervised Classification
(Klasifikasi)
Regresi
Keluaran berupa
Diskrit (label kelas)
Kontinu (angka)
Target Pencarian
Decision Boundary
“best fit line”
Nilai Evaluasi
Akurasi MSE, MAE,
Konsep Klasifikasi (Just Review)
• Contoh Regresi:
Linear dan Non-Linear Classifier
Linear dan Non-Linear Classifier
ELM Untuk Regresi (Just Review)
Misalkan diketahui, data training (terdapat 3 fitur dansingle target) sebagai berikut (Lihat Materi Pert. 6):
1 1 1 1
1 0 1 1
1 1 0 1
1 1 0 2
X = 0 1 0 2
0 0 0 2
0 1 0 3
1 1 0 3
0 0 0 3
Input Layer
Hidden Layer
Output Layer fitur ke-1
fitur ke-2
fitur ke-k
i j
k
Hasil Prediksi
6. Menghitung Y prediksi
7. Hitung MAPE
Pada proses training, didapatkan hasil testing menggunakan data training sendiri masih memiliki error MAPE sebesar 30.11
Penyelesaian:
Y =
ˆ
.
ˆ H Y
1.48 0.91 1.90 1.90 2.75 2.17 2.75 1.90 2.17
Yˆ
9
1
| 100
ˆ
| 9
1 N
i i
i i
y y y
N MAPE
11 . 30
ELM Untuk Klasifikasi
Misalkan diketahui, data training (terdapat 3 fitur dansingle target) sebagai berikut:
1 1 1 1
1 0 1 1
1 1 0 1
1 1 0 2
X = 0 1 0 2
0 0 0 2
0 1 0 3
1 1 0 3
0 0 0 3
6. Menghitung Y prediksi
7. Hitung Akurasi
Pada proses training, didapatkan hasil testing menggunakan data training sendiri masih memiliki nilai akurasi sebesar 55.56%
Penyelesaian:
Y =
ˆ
.
ˆ H Y
1.48 0.91 1.90 1.90 2.75 2.17 2.75 1.90 2.17
Yˆ
Y sebagai kelas aktual, yaitu terdapat kelas 1, 2, dan 3
Kelas Aktual
Kelas Prediksi 1.48 1 0.48 0.52 1.52 1 0.91 1 0.09 1.09 2.09 1 1.90 1 0.90 0.10 1.10 2 1.90 2 0.90 0.10 1.10 2 2.75 2 1.75 0.75 0.25 3 2.17 2 1.17 0.17 0.83 2 2.75 3 1.75 0.75 0.25 3 1.90 3 0.90 0.10 1.10 2 2.17 3 1.17 0.17 0.83 2
Yˆ Yˆ1 Yˆ2 Yˆ3
% 56 . 55 % 100 x 9
5
train
ELM Untuk Regresi (Just Review)
Misalkan diketahui, data testing sebagai berikut (LihatMateri Pert. 6):
1 1 1 1
1 0 1 1
1 1 0 1
1 1 0 2
X = 0 1 0 2
0 0 0 2
0 1 0 3
1 1 0 3
0 0 0 3
Y =
1 0 1
Xtest = 1 1 0
0 1 0
Ytest =
Data training:
Data testing:
1 1 3
2. Htung matrik output hiddenH = 1/(1+exp(-Hinit))
3. Menghitung Y prediksi
, diketahui , maka
4. Hitung MAPE
Pada proses testing, didapatkan hasil prediksi dengan error MAPE sebesar 36.0048
Penyelesaian:
0.43 0.55 0.40 0.45 0.45 0.50 0.55 0.50 0.57
H =
ˆ
.
ˆ H
Y ˆ
13.06 -7.74 -0.98
Yˆ
0.91 1.90 2.75
0048 . 36 | 100
ˆ
| 3
1 3
1
N
i i
i i
y y y N
ELM Untuk Klasifikasi
Misalkan diketahui, data testing sebagai berikut:1 1 1 1
1 0 1 1
1 1 0 1
1 1 0 2
X = 0 1 0 2
0 0 0 2
0 1 0 3
1 1 0 3
0 0 0 3
Y =
1 0 1
Xtest = 1 1 0
0 1 0
Ytest =
Data training:
Data testing:
1 1 3
3. Menghitung Y prediksi
, diketahui , maka
4. Hitung Akurasi
Pada proses testing, didapatkan nilai akurasi sebesar 66.67%
Penyelesaian:
ˆ
.
ˆ H
Y ˆ
13.06 -7.74 -0.98
Yˆ
0.91 1.90 2.75
Kelas Aktual
Kelas Prediksi 0.91 1 0.09 1.09 2.09 1 1.90 1 0.90 0.10 1.10 2 2.75 3 1.75 0.75 0.25 3
Yˆ Yˆ1 Yˆ3
% 67 . 66 % 100 x 3
2
test
N Akurasi
Y sebagai kelas aktual, yaitu terdapat kelas 1, 2, dan 3
Ytest sebagai kelas aktual, yaitu terdapat kelas 1 dan 3
2
Support Vector Machine (SVM)
SVM Linear
SVM Non-LinearSupport Vector kelas -1 Support Vector kelas +1 (w.x) + b = -1
(w.x) + b = +1
(w.x) + b = 0 w
y = +1
y = -1
2 2 2
1
2 w
2 Margin
w w
Jarak titik (xi) ke Hyperplane :
w 1 w
b y
,
,b x i x w
w
d i
i
w 1 w
y ,
, i i i
x f x
b w d
Input Space x High-dimensional Feature Space Φ(x)
Support Vector Machine (SVM)
SVM Non-Linear(terdapat data
noise, outliers, atau
memang sebaran
datanya secara
alami non-linear).
Slack variables ξidapat ditambahkan untuk mentoleransi
adanya
mis-classification yang
sulit dipecahkan
karena misal, ada data noise.
x1 x2
Kelas +1
Kelas -1
1
Support Vector Machine (SVM)
Langkah-langkah dalam SVM:1. Data dan kelas dimana
2. Melakukan proses training untuk mendapatkan nilai 𝛼i dengan menggunakan algoritma Sequential Training SVM
3. Hitung w dan b dan Hasil klasifikasi sign(f(x))
1,1
i
y
i n
i
i
iy x
w
1 m i i i i m i i i i m i i i i m i i i i m i i i i m i i i i x x K y x x K y b x x y x x y b x x y x x y b x w x w b 1 1 1 1 1 1 ) , ( ) , ( 2 1 ) ( ) ( ) ( ) ( 2 1 2 1 ] . [ 2 1 b x x K y x f b x x y x f b x x y x f b x w x f m i i i i m i i i i m i i i i
1 1 1 ) , ( ) ( ) ( ) ( ) ( ) ( ) (
ni i i y
x , 1
Support Vector Machine (SVM)
Algoritma Sequential Training SVM:1. Inisialisasi nilai 𝛼i = 0, λ, γ (learning rate), C, ε (epsilon), IterMax,
parameter kernel (jika ada) dan hitung matrik Dij untuk i, j = 1, ..., n. Dimana n adalah banyaknya data training.
2. Melakukan iterasi untuk perhitungan:
a.
b.
c.
3. Cek kondisi berhenti ketika memenuhi kondisi,
atau telah mencapai IterMax, jika tidak, maka kembali pada langkah ke-2
Note: Jika anda sudah paham SVR, maka anda akan mudah paham SVM di atas.
) )
, (
( 2
i j i j
ij y y K x x
D
n
j
ij j
i D
E
1
} ],
), 1
(
min{max[ i i i
i E C
|)
max(| i
i i
i
Support Vector Machine (SVM)
Algoritma Sequential Training SVM untuk data dengan 2kelas (Binary SVM atau SVM Biner):
Kelas jual = +1, dan beli = -1
1. Inisialisasi nilai 𝛼i = 0, λ = 4.32, γ (learning rate) = 0.00406,
C = 100, ε (epsilon) = 0.0004, IterMax=1, σ = 0.7 dan hitung
matrik Dij
No Tgl/Bln/Thn F1 F2 F3 F4 Kelas
1 9 Juli 2015 13338 13356 13332 13331 Jual
2 10 Juli 2015 13356 13332 13331 13337 Jual
3 11 Juli 2015 13332 13331 13337 13316 Beli
4 12 Juli 2015 13331 13337 13316 13316 Beli
5 13 Juli 2015 13337 13316 13316 13316 Beli
6 14 Juli 2015 13313 13346 13347 13304 Beli
7 15 Juli 2015 13346 13347 13304 13304 Beli
8 16 Juli 2015 13347 13304 13304 13304 Beli
Diketahui data training dan testing:
Data Latih
Data Uji
𝛼i
Support Vector Machine (SVM)
Algoritma Sequential Training SVM untuk data dengan 2kelas (Binary SVM):
Kelas jual = +1, dan beli = -1
Diketahui data training dan testing (hasil normalisasi dengan Xmin= 9634 Xmax= 14728):
No Tgl/Bln/Thn F1 F2 F3 F4 Kelas 1 9 Juli 2015 0.727129957 0.730663526 0.725952101 0.725755791 1
2 10 Juli 2015 0.730663526 0.725952101 0.725755791 0.726933647 1
3 11 Juli 2015 0.725952101 0.725755791 0.726933647 0.72281115 -1
4 12 Juli 2015 0.725755791 0.726933647 0.72281115 0.72281115 -1
5 13 Juli 2015 0.726933647 0.72281115 0.72281115 0.72281115 -1
No Tgl/Bln/Thn F1 F2 F3 F4 Kelas 1 14 Juli 2015 0.72281115 0.72281115 0.72281115 0.730074598 -1
2 15 Juli 2015 0.72281115 0.72281115 0.730074598 0.722222222 -1
3 16 Juli 2015 0.72281115 0.730074598 0.722222222 0.728700432 -1
0.727129 9634
14728
) 9634 13338
(
'
x min
max
min
)
(
'
x
x
x
x
x
Support Vector Machine (SVM)
Algoritma Sequential Training SVM untuk data dengan 2kelas (Binary SVM):
1. Inisialisasi 𝛼i = 0, λ = 4.32, γ (learning rate) = 0.00406, C = 100, ε
(epsilon) = 0.0004, IterMax=2, σ = 0.7 dan matrik Dij
) )
, (
( 2
i j i j
ij y y K x x
D
Dij 1 2 3 4 5
1 19.6624000000 19.6623631542 -19.6623641766 -19.6623649631 -19.6623181311
2 19.6623631542 19.6624000000 -19.6623585535 -19.6623482512 -19.6623495488
3 -19.6623641766 -19.6623585535 19.6624000000 19.6623812034 19.6623728276
4 -19.6623649631 -19.6623482512 19.6623812034 19.6624000000 19.6623812427
5 -19.6623181311 -19.6623495488 19.6623728276 19.6623812427 19.6624000000
1 1 -1 -1 -1 1 1 1 -1 -1 -1
1 1 1 -1 -1 -1
-1 -1 -1 1 1 1
-1 -1 -1 1 1 1
-1 -1 -1 1 1 1
542 19.6623631
32 . 4 )
7 . 0 ( 2
10 3.61095
exp 1
x
1 2 2
-5 2
, 1
Support Vector Machine (SVM)
Algoritma Sequential Training SVM untuk data dengan 2kelas (Binary SVM):
2. Melakukan iterasi untuk perhitungan (iterasi =1):
a. b. c. 0 15 5 14 4 13 3 12 2 11 1 1 1
D D D D D E D E n j ij j i 00406 . 0 } 0 100 ], 0 ), 0 1 ( 00406 . 0 min{max[ } 100 ], ), 1 ( 00406 . 0 min{max[ } ], ), 1 ( min{max[ 1 1 1 1 1 E CEi i i
i 00406 . 0 00406 . 0 0 1 1
1
i i i
i Ei
Support Vector Machine (SVM)
Algoritma Sequential Training SVM untuk data dengan 2kelas (Binary SVM):
3. Cek kondisi berhenti ketika memenuhi kondisi,
Karena iterasi = IterMax (Stop), misalkan jika , dan iterasi < IterMax, maka iterasi = iterasi + 1, lalu kembali pada langkah ke-2
Hitung bi
1 0.00406
2 0.00406
3 0.00406
4 0.00406
5 0.00406
|)
max(| i
m
i
i i
i m
i
i i
i
y
K
x
x
y
K
x
x
b
1 1
)
,
(
)
,
(
2
Support Vector Machine (SVM)
Hitung bSet nilai x+ dan x- dari masing kelas yang memiliki nilai
𝛼i tertinggi, yaitu dan karena semua
nilai 𝛼i > 0, maka banyaknya support vector (m) =
banyak data training, yaitu 5
m i i i i m i i ii
y
K
x
x
y
K
x
x
b
1 1)
,
(
)
,
(
2
1
3 1 x x x
x
Support Vector Machine (SVM)
Hitung b (dengan fungsi Kernel, w langsung bisa di by pass)
5 1 3 5 1 1 1 1 ) , ( ) , ( 2 1 ) , ( ) , ( 2 1 i i i i i i i i m i i i i m i i i i x x K y x x K y b x x K y x x K y b
95 0.00405952 ) , ( .. ) , ( ) ,( 1 1 1 1 5 5 5 1
5
1
1
x x K y x x K y x x K y i i ii
71 0.00406012 ) , ( .. ) , ( ) ,
( 1 1 1 3 5 5 5 3
5
1
3
x x K y x x K y x x K y i i ii
Support Vector Machine (SVM)
Hasil klasifikasi sign(f(x))
Misal menghitung hasil klasfikasi dari uji ke-1, makatentukan sign(f(xtest1))
b x
x K y x
f
m
i
i i
i
1) , ( )
(
829752499 0.00405982
) ,
( )
(
5
1
1
1
i
i i
iy K x xtest
xtest
f
No Tgl/Bln/Thn F1 F2 F3 F4 Kelas 1 14 Juli 2015 0.72281115 0.72281115 0.72281115 0.730074598 -1
2 15 Juli 2015 0.72281115 0.72281115 0.730074598 0.722222222 -1
3 16 Juli 2015 0.72281115 0.730074598 0.722222222 0.728700432 -1
K(xi,xtest1) xtest1
x1 0.999888955584422
x2 0.999908104359568
x3 0.999909913096674
x4 0.999919979151857
x5 0.999928826350961
38896 1603661634
-0.0000000
829752499 0.00405982
4433414133 -0.0040598
) ( 1
xtest f
Hasil kelas prediksi xtest1
sign(f(xtest1)) = -1
Support Vector Machine (SVM)
Algoritma Sequential Training SVM untuk data dengan >2 kelas, berikut beberapa strategi yang bisa digunakan:
o One Against All (OAA) oleh (Cortes and Vapnik, 1995)
o One-Against-One (OAO)
o Binary Decision Tree (BDTSVM)
o Directed Acrilyc Graph SVM (DAGSVM)
𝑦𝑖= 1 𝑦𝑖= −1 Hipotesis
Kelas 1 Bukan kelas 1 𝑓1 𝑥 = 𝑤1 𝑥 + 𝑏1
Kelas 2 Bukan kelas 2 𝑓2 𝑥 = 𝑤2 𝑥 + 𝑏2
Kelas 3 Bukan kelas 3 𝑓3 𝑥 = 𝑤3 𝑥 + 𝑏3
SVM Biner dengan Metode One-Against-All
Jika anda sudah menguasai
Binary SVM (SVM Biner), maka kemungkinan besar
anda akan sangat mudah menguasai 4 strategi
Support Vector Machine (SVM)
Algoritma Sequential Training SVM untuk data dengan >2 kelas, berikut beberapa strategi yang bisa digunakan:
o One Against All (OAA)
o One-Against-One (OAO) oleh (Fridman, 1996)
o Binary Decision Tree (BDTSVM)
o Directed Acrilyc Graph SVM (DAGSVM)
Pair-wise
Misal
Hasil Voting
Pair-wise. k(k-1)/2
Support Vector Machine (SVM)
o One-Against-One (OAO) oleh (Fridman, 1996)
𝑦𝑖 = 1 𝑦𝑖 = −1 Hipotesis
Kelas 1 Kelas 2 𝑓12 𝑥 = (𝑤12)𝑥 + 𝑏12 Kelas 1 Kelas 3 𝑓13 𝑥 = (𝑤13)𝑥 + 𝑏13 Kelas 1 Kelas 4 𝑓14 𝑥 = (𝑤13)𝑥 + 𝑏14 Kelas 2 Kelas 3 𝑓23 𝑥 = (𝑤23)𝑥 + 𝑏23 Kelas 2 Kelas 4 𝑓24 𝑥 = (𝑤24)𝑥 + 𝑏24 Kelas 3 Kelas 4 𝑓34 𝑥 = (𝑤34)𝑥 + 𝑏34
Support Vector Machine (SVM)
o Binary Decision Tree (BDTSVM) oleh (Gjorgji M., dkk, 2008)
SVM
SVM
SVM
SVM
SVM SVM
6
2 3 4 7 1 5 1,2,3,4,5,6,7
2,3,4,7 1,5,6
1,5 2,3 4,7
Langkah membuat Tree untuk BDTSVM :
1. Tentukan titik pusat data (center data) tiap kelas.
2. Buat Matrik Jarak (Euclidean) antar titik pusat data.
3. Cari Jarak Terjauh
untuk pemisahan kelas
(y = +1 dan y = -1)
4. Tetapkan kelas dari center data dengan jarak terdekat, pada kelas (y = +1) atau kelas (y = -1) dari hasil pemisahan pada langkah (3).
Support Vector Machine (SVM)
o Binary Decision Tree (BDTSVM) oleh (Gjorgji M., dkk, 2008)
𝑦𝑖 = 1 𝑦𝑖 = −1 Hipotesis
Support Vector Machine (SVM)
o Directed Acrilyc Graph SVM (DAGSVM) oleh (C. W. Hsu and
C. J. Lin, 2002)
1 vs 4
2 vs 4 1 vs 3
3 vs 4 2 vs 3 1 vs 2
1 2 3 4
2 3 4
1 2 3
3
4 23 12
Node 1
Node 2 Node 3
Node 4 Node 5 Node 6
Tugas Kelompok
1. Jelaskan perbedaan antara regresi dengan klasifikasi!
2. Jelaskan perbedaan antara Underfitting, Just right, dan Overfitting dalam sudut pandang regresi dan klasifikasi!
3. Jelaskan pengertian dari Support Vector, dan Lagrange Multipier pada SVM!
4. Berdasarkan pada slide sebelumnya yaitu tentang Algoritma Sequential Training SVM untuk data dengan 2 kelas (Binary SVM), jika fungsi kernel RBF digantikan dengan fungsi kernel polynomial (c=1 dan d=2). Tentukan besarnya nilai akurasi dari data testing!
5. Selesaikan kasus berikut menggunakan OAOSVM, atau OAASVM atau BDTSVM, atau DAGSVM (Pilih salah satu), dengan nilai parameter 𝛼i= 0, λ = 4.32, γ (learning rate) = 0.00406, C = 100, ε (epsilon) = 0.0004, IterMax=2, dengan kernel RBF (σ = 0.7). Tentukan besarnya nilai akurasi dari data testing!
10 1 1 True 5 2 1 True 2 2 3 True 1 1 1 False X = 3 2 3 Flase 4 6 9 False 0 14 1 None 1 10 0 None 7 8 0 None
Y =
3 0 2
Xtest = 1 1 5
0 1 4
Ytest =
Data training: Data testing:
True True None
Kelas Aktual
7 November 2016