9 Analitik Data Tingkat Lanjut Klasifikasi Big Data L1617 v7

  Analitik Data Tingkat Lanjut (Klasifikasi) Imam Cholissodin | imam.cholissodin@gmail.com

  

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). digunakan untuk memprediksi label

  • Klasifikasi 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:

  Klasifikasi:

  • Contoh

  Linear dan Non-Linear Classifier

  • Linear Classifier • Non-Linear Classifier

  Linear dan Non-Linear Classifier

  • Linear Classifier • Non-Linear Classifier

   Misalkan diketahui, data training (terdapat 3 fitur dan single target) sebagai berikut (Lihat Materi Pert. 6):

  2.75

  Penyelesaian:

  Y =

   ˆ . ˆ H Y

  1.48

  0.91

  1.90

  1.90

  2.75

  2.17

  1.90

  6. Menghitung Y prediksi

  2.17

   Yˆ 

     

   

  9

  1 | 100 ˆ

  |

  9

  1 N i i i i y y y

  N MAPE 11 .

  7. Hitung MAPE Pada proses training, didapatkan hasil testing menggunakan data training sendiri masih

  Hasil Prediksi

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  Hidden Output fitur ke-1 fitur ke-2 fitur ke-k i j k

  2 X =

  1

  2

  2

  1

  3

  1

  1

  3

  3 Input

  30 

   Misalkan diketahui, data training (terdapat 3 fitur dan single target) sebagai berikut:

6. Menghitung Y prediksi

  2

  0.75

  1.75

  2

  2.75

  2

  1.10

  0.10

  0.90

  1.90

  3

  2

  1.10

  0.10

  0.90

  1

  1.90

  1

  2.09

  0.25

  2

  2.17

  1.90

  N Akurasi

  5    train

  9

  Y 1 ˆ  Y 2 ˆ  Y 3 ˆ  % 56 . 100 55 % x

  1.10

  0.10

  0.90

  3

  3

  0.09

  0.25

  0.75

  1.75

  3

  2.75

  2

  0.83

  0.17

  1.17

  1.09

  1

  1

  1

  1

  1

  3

  1

  2

  2

  1

  2 X =

  1

  3

  1

  1

  1

  1

  1

  1

  1

  1

  1

  3

  7. Hitung Akurasi Pada proses training, didapatkan hasil testing menggunakan data training sendiri masih memiliki nilai akurasi sebesar 55.56%

  0.91

  2.17

  1

  1.52

  0.52

  0.48

  1

  1.48

  Kelas Prediksi

  Kelas Aktual

   Yˆ Y sebagai kelas aktual, yaitu terdapat kelas 1, 2, dan 3

  1.90

  Penyelesaian:

  2.75

  2.17

  2.75

  1.90

  1.90

  0.91

  1.48

   ˆ . ˆ H Y

  Y =

2 Yˆ

   Misalkan diketahui, data testing sebagai berikut (Lihat Materi Pert. 6):

  Penyelesaian: Data training:

  2. Htung matrik output hidden H = 1/(1+exp(-H )) init

  1

  1

  1

  1

  1

  1

  1

  0.43

  0.55

  0.40

  1

  1

  1

  0.45

  0.45

  0.50 H =

  1

  1

  2

  0.55

  0.50

  0.57 X =

  1

  2 Y =

  2

  3. Menghitung Y prediksi

  1

  3

  13.06

  1

  1

  3

  • 7.74

  ˆ

  3

  ˆ , diketahui   , maka

  Y ˆ H  . 

  • 0.98

  0.91 Data testing:

  

  1.90 Yˆ

  2.75

  1

  1 Xtest =

  1

  1

  1

  4. Hitung MAPE N

  

  3 yy

  1 ˆ i i

  | 100 | 36 . 0048 

  1 MAPE   

  Ytest =

  Ny

  1

  3 i

  1 i

  3 Pada proses testing, didapatkan hasil prediksi

  dengan error MAPE sebesar 36.0048

   Misalkan diketahui, data testing sebagai berikut: Y sebagai kelas aktual, yaitu terdapat kelas 1, 2, dan 3

  Data training: Penyelesaian:

3. Menghitung Y prediksi

  1

  1

  1

  1

  1

  1

  1

  13.06

  1

  1

  1

  • 7.74

  ˆ ˆ , diketahui , maka 

   Y ˆ H  . 

  1

  1

  2

  • 0.98 X =

  1

  2 Y =

  0.91

  2

  1.90

  1

3 Yˆ 

  2.75

  1

  1

  3

  3 Kelas Kelas

  Y ˆ 

  1 Y ˆ 

  2 Y ˆ 

  3 Yˆ Aktual Prediksi

  Data testing:

  1

  0.91

  0.09

  1.09

  2.09

  1

  1

  1.90

  0.90

  0.10

  1.10

  2

  1

  1

  3

  2.75

  1.75

  0.75

  0.25

  1

  1

  3 Xtest =

  1

4. Hitung Akurasi

  Y sebagai kelas test aktual, yaitu terdapat

  2 Akurasi   kelas 1 dan 3 x 100 % 66 . 67 %

  3 test

  1 N

  Ytest =

  1 Pada proses testing, didapatkan nilai akurasi

  3

   SVM Linear

  2

  2   (w.x) + b = +1

  Margin

  2

  2

  w  w w

  1

  2

  (w.x) + b = -1 y = +1 Support Vector kelas -1 Support Vector kelas +1 y = -1 w

  Jarak titik (x ) ke Hyperplane : i

   y x w  b

  1  

  i i

  , ,   d    w b xi w w

  (w.x) + b = 0

  1   i

  i

  SVM Non-Linear d w , b , x  

   y f x

      i w w

  Hyperplane

   Kelas +1 SVM Non-Linear (terdapat data

  Kelas -1 x

  2 noise, outliers, atau memang sebaran datanya secara alami non-linear).

   Slack variables ξ

   i

  2 dapat ditambahkan

  

  1 untuk mentoleransi adanya mis- classification yang sulit dipecahkan x

  1 karena misal, ada

   Langkah-langkah dalam SVM:

    K b x x 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

  2

  1 ) ( ) ( ) ( ) (

  2

  1

  2

  1 ] . [

  2

  1        

           

  1

    

    

  1

  1

  1

  ) , ( ) ( ) ( ) ( ) ( ) ( ) (

      

      n i i i y x

  1 ,

  1 ) , ( ) , (

  1

  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 i x y w

    

   

  1    

      

     

  

  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

  K x x 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

  

   Algoritma Sequential Training SVM:

1. Inisialisasi nilai = 0,

  λ, γ (learning rate), C, ε (epsilon), IterMax, i parameter kernel (jika ada) dan hitung matrik D untuk i, j = 1, ij ..., n. Dimana n adalah banyaknya data training.

2 D  y y K x x  

  ( ( , ) ) ij i j i j

  Melakukan iterasi untuk perhitungan: 2. n

  E   D a. i j ij

   j

  1     E   C   min{max[ ( 1 ), ], } b. i i i i

  c.      i i i

  Cek kondisi berhenti ketika memenuhi kondisi, 3.

    max(| |)  atau telah mencapai IterMax, jika tidak, maka i kembali pada langkah ke-2

  

Note: Jika anda sudah paham SVR, maka anda akan mudah paham SVM di atas

   Algoritma Sequential Training SVM untuk data dengan 2 kelas (Binary SVM atau SVM Biner): Kelas jual = +1, dan beli = -1 1.

  12 Juli 2015 13331 13337 13316 13316 Beli

  16 Juli 2015 13347 13304 13304 13304 Beli Diketahui data training dan testing:

  8

  15 Juli 2015 13346 13347 13304 13304 Beli

  7

  14 Juli 2015 13313 13346 13347 13304 Beli

  6

  13 Juli 2015 13337 13316 13316 13316 Beli

  5

  4

  Inisialisasi nilai i

  11 Juli 2015 13332 13331 13337 13316 Beli

  3

  10 Juli 2015 13356 13332 13331 13337 Jual

  2

  9 Juli 2015 13338 13356 13332 13331 Jual

  1

  No Tgl/Bln/Thn F1 F2 F3 F4 Kelas

  ε (epsilon) = 0.0004, IterMax=1, σ = 0.7 dan hitung matrik D ij

  = 0, λ = 4.32, γ (learning rate) = 0.00406, C = 100,

  Data Latih Data Uji i

   Algoritma Sequential Training SVM untuk data dengan 2 kelas (Binary SVM): Kelas jual = +1, dan beli = -1 Diketahui data training dan testing ( hasil normalisasi dengan Xmin= 9634 Xmax= 14728

  13 Juli 2015 0.726933647 0.72281115 0.72281115 0.72281115 -1 No Tgl/Bln/Thn F1 F2 F3 F4 Kelas

  ) ( ' x x x x x

  

x min max min

  ) 9634 13338 ( ' 

  16 Juli 2015 0.72281115 0.730074598 0.722222222 0.728700432 -1 0.727129

9634 14728

  3

  15 Juli 2015 0.72281115 0.72281115 0.730074598 0.722222222 -1

  2

  14 Juli 2015 0.72281115 0.72281115 0.72281115 0.730074598 -1

  1

  5

  ): No Tgl/Bln/Thn F1 F2 F3 F4 Kelas

  12 Juli 2015 0.725755791 0.726933647 0.72281115 0.72281115 -1

  4

  11 Juli 2015 0.725952101 0.725755791 0.726933647 0.72281115 -1

  3

  1

  10 Juli 2015 0.730663526 0.725952101 0.725755791 0.726933647

  2

  1

  9 Juli 2015 0.727129957 0.730663526 0.725952101 0.725755791

  1

    

   Algoritma Sequential Training SVM untuk data dengan 2 kelas (Binary SVM): = 0,

1. Inisialisasi

  λ = 4.32, γ (learning rate) = 0.00406, C = 100, ε i

  (epsilon) = 0.0004, IterMax=2, σ = 0.7 dan matrik D ij

2 D y y K x x 

   ( ( , )  ) ij i j i j

  1 1 -1 -1 -1

  • 5

  1

  1 1 -1 -1 -1

      3.61095

  

10

  2

  1

  1 1 -1 -1 -1 D   

  1 x 1 exp 4 .

  32  

  1 ,

  2

  

2

  

  

  • -1 -1 -1

  1

  1

  1  2 ( . 7 )  

   

  • -1 -1 -1

  1

  1

  1 -1 -1 -1

  1

  1

  1  19.6623631 542

  D

  1

  2

  3

  4

  5 ij 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

   Algoritma Sequential Training SVM untuk data dengan 2 kelas (Binary SVM):

2. Melakukan iterasi untuk perhitungan (iterasi =1): a.

  c.

  1       

  1     

         

     

      E

C E

i i i i . 00406 00406 .

  1

  1

        i i i i E i

  1

  1

  2

  3

  4

  5 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.00406

  1

  1

  15

  2

  5

  14

  4

  13

  3

  12

  11

  b.

  1

  1

  1       

   

  D D D D D E D E n j ij j i

        } 00406 . 100 ], ), . 00406 1 ( min{max[

  } 100 ], ), . 00406 1 ( min{max[ } ], ), 1 ( min{max[

  1

   Algoritma Sequential Training SVM untuk data dengan 2 kelas (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 i

  K x x y x x K y b

  1

  1 ) , ( ) , (

  2

  1  

   Hitung b m m

   

  1 

   b   y K x xy K x x

   ( , )  ( , ) i i i i i i

   

   

  2 ii

  1

  1 

   Set nilai x+ dan x- dari masing kelas yang memiliki nilai

    xx xx tertinggi, yaitu dan karena semua

  1

  3 i nilai > 0, maka banyaknya support vector (m) = i banyak data training, yaitu 5 m m

   

  1 

   b   y K x xy K x x

   ( , )  ( , ) i i i i i i

   

   

  2 

   i i

  1

  1 

  

  5

  5 

  

  1 b y K x x y K x x

    ( , )  ( , )   i i i i i i

  1

  3    

  ) m m

   dengan fungsi Kernel, w langsung bisa di by pass Hitung b (

  1  

    b    y K ( x , x )   y K ( x , x ) i i i i i i

     

  2 i  1 i

  1 

  

  5

  5 1 

   b    y K ( x , x )   y K ( x , x ) i i i 1 i i i

  3    

  2 i  1 i

  1 

  

  5  y K x x   y K x x    y K x x  

  ( , ) ( , ) .. ( , ) 0.00405952

  95 i i i

  1

  1

  1

  1

  1

  5

  5

  5

  1  i

  1

  5  y K x xy K x xy K x x

  ( , )  ( , )  ..  ( , )   0.00406012

  71 i i i

  3

  1

  1

  1

  3

  5

  5

  5

  3  i

  1

  1

    0.00405952 951339599  -0.0040601 2708165399 

  • b

  

  2  0.00405982 829752499

   Hasil klasifikasi sign(f(x)) m f x y K x x b

  ( )  ( , )   i i i

   i

  1

   Misal menghitung hasil klasfikasi dari uji ke-1, maka tentukan sign(f(xtest ))

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

  5

  f xtest   y K x xtest  ( ) ( , ) 0.00405982 829752499

  1 i i i

  1

   i

  1

  f ( xtest )  -0.0040598 4433414133  0.00405982 829752499 K(x ,xtest ) xtest

  1

  i

  1

  1

  0.999888955584422

  x

  1

  • 0.0000000 1603661634 38896

  x 0.999908104359568

  2 Hasil kelas prediksi xtest

  1 x 0.999909913096674

  3

sign(f(xtest )) = -1

  1 x 0.999919979151857

  4 Maka xtest masuk kelas beli (true).

  1 x 0.999928826350961

  5

  Binary SVM (SVM Biner), maka kemungkinan besar anda akan sangat mudah menguasai 4 strategi disamping

  Kelas 2 Bukan kelas 2

  SVM Biner dengan Metode One-Against-All Jika anda sudah menguasai

  3

  =

  3

  Kelas 3 Bukan kelas 3

  2

  =

  2

  1

  =

  1

  Kelas 1 Bukan kelas 1

  = 1 = −1 Hipotesis

  • 2

  Directed Acrilyc Graph SVM (DAGSVM)

  Binary Decision Tree (BDTSVM) o

  One-Against-One (OAO) o

  One Against All (OAA) oleh (Cortes and Vapnik, 1995) o

   Algoritma Sequential Training SVM untuk data dengan >

2 kelas, berikut beberapa strategi yang bisa digunakan:

o

  • 1
  • 3

   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

  Misal banyaknya kelas (k) = 4 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 SVM Biner dengan Metode One-Against-One o Binary Decision Tree (BDTSVM) oleh (Gjorgji M., dkk, 2008)

  Langkah membuat 1,2,3,4,5,6,7 

  Tree untuk BDTSVM : SVM

  1. Tentukan titik pusat data (center data) tiap kelas.

  2,3,4,7 1,5,6

  2. Buat Matrik Jarak SVM SVM

  (Euclidean) antar titik pusat data.

  1,5 2,3 4,7

  3. Cari Jarak Terjauh untuk pemisahan kelas

SVM SVM SVM

  6 (y = +1 dan y = -1)

4. Tetapkan kelas dari

  center data dengan

  5

  1 jarak terdekat, pada

  7

  4

  2

  

3

kelas (y = +1) atau kelas (y = -1) dari hasil

  Tree pada BDTSVM pemisahan pada langkah (3). o Binary Decision Tree (BDTSVM) oleh (Gjorgji M., dkk, 2008)

  = 1 = −1 Hipotesis Kelas 2,3,4,7 Kelas 1, 5, 6

  23 = (

  15 ) +

  15 = (

  47 Kelas 1 Kelas 5

  47 ) +

  47 = (

  23 Kelas 4 Kelas 7

  23 ) +

  (1,5)(6) Kelas 2 Kelas 3

  (2,3,4,7)(1,5,6) = (

  (1,5)(6) ) +

  (1,5)(6) = (

  (2,3)(4,7) Kelas 1,5 Kelas 6

  (2,3)(4,7) ) +

  (2,3)(4,7)

= (

  (2,3,4,7)(1,5,6) Kelas 2,3 Kelas 4,7

  (2,3,4,7)(1,5,6) ) +

  15 o Directed Acrilyc Graph SVM (DAGSVM) oleh (C. W. Hsu and

C. J. Lin, 2002)

  Node 1

  1

  2 1 vs 4

  3

4 Node 2

  Node 3

  2

  1 2 vs 4

  3

  2 1 vs 3

  4

  3 Node 4 Node 5 Node 6

  3 3 vs 4

  2

  1 2 vs 3 1 vs 2

  4

  3

  2 Kelas 4 Kelas 3 Kelas 2 Kelas 1

  

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 = 0, λ = 4.32, γ (learning rate) = 0.00406, i

  C = 100, ε (epsilon) = 0.0004, IterMax=2, dengan kernel RBF (σ = 0.7). Tentukan besarnya nilai akurasi dari data testing!

  Data training: Data testing: Kelas Aktual

  3

  2

  10

  1

  1 True Xtest =

  1

  1

  5

  5

  2

  1 True

  1

  4

  2

  2

  3 True

  1

  1

  1 False

  Kelas Aktual

  X =

  3

  2

  3 Flase Y =

  True

  4

  6

  9 False Ytest =

  14

  1 None True

  1

  10 None None

  7

  8 None

  Terimakasih Imam Cholissodin | imam.cholissodin@gmail.com