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)
4. Studi Kasus 5. Tugas
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 kata kunci untuk membedakan antara prediksi dan peramalan)
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, MAPE, RMSE, ..
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 N Akurasi
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 hidden H = 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 MAPE
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 , ,b xi i f xi 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 ξi dapat ditambahkan untuk mentoleransi adanya mis-classification yang sulit dipecahkankarena misal, ada data noise. x1 x2 Kelas +1 Kelas -1 1
2Support 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 ) , ( ) ( ) ( ) ( ) ( ) ( ) (
n i i i y x , 1Support 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 0 0 0 0 0
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 DSupport 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 C Ei i i i 00406 . 0 00406 . 0 0 1 1 1 i i i i Ei 1 0 2 0 3 0 4 0 5 0 i 1 0.00406 2 0.00406 3 0.00406 4 0.00406 5 0.00406 i 1 0.00406 2 0.00406 3 0.00406 4 0.00406 5 0.00406Support 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 b i 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 iy
K
x
x
y
K
x
x
b
1 1)
,
(
)
,
(
2
1
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 i iy
K
x
x
y
K
x
x
b
1 1)
,
(
)
,
(
2
1
3 1 x x x x
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 ix
x
K
y
x
x
K
y
b
x
x
K
y
x
x
K
y
b
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 i i 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 i i
829752499 0.00405982 2708165399 -0.0040601 951339599 0.00405952 -2 1 bSupport 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 fHasil 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 disamping
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 SVM Biner dengan Metode One-Against-One
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 Kelas 2,3,4,7 Kelas 1, 5, 6 𝑓(2,3,4,7)(1,5,6) 𝑥 = (𝑤(2,3,4,7)(1,5,6))𝑥 + 𝑏(2,3,4,7)(1,5,6) Kelas 2,3 Kelas 4,7 𝑓(2,3)(4,7) 𝑥 = (𝑤(2,3)(4,7))𝑥 + 𝑏(2,3)(4,7) Kelas 1,5 Kelas 6 𝑓(1,5)(6) 𝑥 = (𝑤(1,5)(6))𝑥 + 𝑏(1,5)(6) Kelas 2 Kelas 3 𝑓23 𝑥 = (𝑤23)𝑥 + 𝑏23 Kelas 4 Kelas 7 𝑓47 𝑥 = (𝑤47)𝑥 + 𝑏47 Kelas 1 Kelas 5 𝑓15 𝑥 = (𝑤15)𝑥 + 𝑏15
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