Selasa, 08 Juli 2014

Tutorial Singkat Linear Discriminant Analyst

LDA menurut Wiki adalah
Linear discriminant analysis (LDA) and the related Fisher's linear discriminant are methods used in statistics, pattern recognition and machine learning to find a linear combination of features which characterizes or separates two or more classes of objects or events. The resulting combination may be used as a linear classifier, or, more commonly, for dimensionality reduction before later classification”
Mencari Diskriminan Linear dari suatu data yang diproyeksikan secara tegak lurus. Lebih mudahnya seperti berikut, penulis mempunyai kumpulan 2 data seperti berikut dengan feature 2 dimensi yaitu x dan y
 
Tugas LDA adalah melakukan proyeksi linear agar proyeksi tersebut bisa memisahkan 2 kelas tersebut. Oke agar lebih mudah, saya akan proyeksikan masing-masing kelas tersebut kedalam sumbu Y
 
Oop..apa yang terjadi?! Ternyata terjadi himpitan! Yaitu ditandai dengan lingkaran hijau. Coba kita proyeksikan terhadap sumbu X
 
Oops.. sama saja! Terjadi himpitan! Oke sekarang kita akan proyeksikan terhadap sumbu yang lain
 
Yup ternyata sempurna! Tidak terhadi himpitan! Tugas



Perhatikan berikut terdapat 3 class yang akan dicari proyeksi linearnya
 

Yaitu berikut
Dengan hijau [proyeksi ke 1] dan biru [proyeksi ke 2]
 
Perhatikan proyeksi tegak lurus dari masing-masing data terhadap garis hijau dan biru, kira-kira lebih bagus yang mana?
Agar lebih baik tidak menggunakan istilah kira-kira, tapi menggunakan konsep PDF (probabilty densitas function) sehingga menghasilkan berikut
Berikut bila diproyeksikan ke garis hijau (maka ada himpitan data yaitu hijau dan biru)
 
Bila diproyeksikan ke biru (tidak terjadi himpitan) 

Berikut cara menghitung nya
Misalkan kita mempunyai data berikut

 

 



 
Hijau adalah w1
Biru adalah w2
Bila kita mencari nilai w yang tertinggi yaitu
 
Yaitu w2 atau garis warna biru yang mempunyai nilai terbesar yaitu -0.8415 > -1.1463

Bila kita proyeksikan yaitu dengan cara berikut
%%untuk w1
y1_w1 = w1'*x1';
y2_w1 = w1'*x2';
y3_w1 = w1'*x3';
 dan
%%untuk w2
y1_w2 = w2'*x1';
y2_w2 = w2'*x2';
y3_w2 = w2'*x3';

menghasilkan


Perhatikan bahwa nilai std lebih besar w2 dari w1
semakin besar nilai std nya (standar deviasi) maka semakin banyak variasi/perbedaan alias sehinnga dapat dibedakan dengan mudah
Sehingga kita dapat menyimpulkan bahwa diskriminan nya yaitu
Class [1] = -3.94173
Class [2] = -22.9625
Class [3] = 12.31419
Sehingga jika ada data (baru) berikut
 
Jarak_class1 = -3.94173 – (-9.3036) = 5.361868392 *
Jarak_class1 = -22.9625 – (-9.3036) = -28.32438241   
Jarak_class1 = 12.31419 – (-9.3036) = 40.63857077

*nilai terkecil sehingga termasuk class 1

Pertanyaan:
1.    Bagaimana jika ada feature multidimensi misalnya 3Dimensi (XYZ)
Jawab: penulis belum pernah mencoba nya, silahkan untuk searching di google
2.    Bagaimana jika terdapat lebih dari 3 kelas
Jawab: silahkan untuk membuat sendiri dengan mengikuti panduan diatas
Posting Komentar