Contents
www.softcsients.com | “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”
Tugas LDA gampang koq, cuman mencari Diskriminan Linear dari suatu data yang diproyeksikan secara tegak lurus. Misalkan 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. Istilah proyeksi disini yaitu membutuhkan sebuah garis lurus sebagai ‘sandaran’
Proyeksi terhadap sumbu Y
Kalau kita lihat bila diproyeksikan pada sumbu, maka akan terjadi overlapping. Kalian bisa melihat area warna hijau terjadi himpitan.
Proyeksi terhadap sumbu X
Kalau diproyeksikan ke sumbu Y terjadi himpitan, kita coba ke sumbu X saja, namun hasilnya pun sama saja terjadi himpitan, maka kita butuh sebuah persamaan garis lurus
Proyeksi terhadap y=mx+c
Kita butuh sebuah persamaan garis lurus , seperti garis berikut
Yup ternyata sempurna! Tidak terhadi himpitan! Itulah tugasnya sebuah LDA untuk mencari pemisah linear berdasarkan proyeksi. Daripada membayangkan persamaan matematikanya yang rumit, saya kasih contoh yang mudah
LDA dengan 2 Cluster
Biar mudah penjelasan mengenai linear discriminant analyst, kita buat dataset yang terdiri dari 2 cluster saja, seperti berikut
Kalian bisa melihat, bila kita proyeksikan ke sumbu X dan Y, maka sedikit terjadi himpitan, namun ketika kita buat LDA berikut ada 2 opsi pilihan yaitu LDA 1 dan 2
Tentu kalau dilihat, kita akan pilih LDA 1 (warna merah), namun agar lebih yakin kita butuh PDF yaitu probabilty densitas function
probabilty densitas function
Berikut hasil perhitungan PDF yang ditampilkan dalam bentuk grafik yang sangat terlihat untuk LDA 1 tidak ada himpitan, sedangkan LDA 2 terjadi overlapping
Tahapan Menghitung LDA
Bagaimana menghitung LDA? Sebenarnya cukup mudah untuk menghitung LDA, yuk mari kita hitung LDA, kita siapkan sebuah data
clc;clear all;close all; x1 = [4,2; 2,4; 2,3; 3,6; 4,4]; x2 = [ 9,10; 6,8; 9,5; 8,7; 10,8 ];
Langkah selanjutnya menghitung mean, over all mean, covarian, dan within-class scatter matrix
%%hitung masing - masing mean nya mu1 = mean(x1)'; mu2 = mean(x2)'; %%hitung overall mean nya mu = (mu1+mu2)/2; %%hitung covarian matrix tiap class s1 = cov(x1); s2 = cov(x2); %%hitung within-class scatter matrix sw = s1+s2; %%jumlah sample tiap class n1 = size(x1,1); n2 = size(x2,1);
Langkah selanjutnya menghitung between-class scatter matrix serta sampai dengan eigen vector
%%between-class scatter matrix sb1 = n1.*(mu1-mu)*(mu1-mu)'; sb2 = n2.*(mu2-mu)*(mu2-mu)'; %%computing overall bw sb = sb1+sb2; %computing the LDA projection inv_sw = inv(sw); inv_sw_by_sb = inv_sw*sb; %%getting the projection vectors [v,d] = eig(inv_sw_by_sb); w1 = v(:,1); w2 = v(:,2);
Perhatikan variabel dan dengan nilai
>> w1 w1 = 0.9088 0.4173 >> w2 w2 = -0.5755 0.8178 >>
Maka untuk menentukan proyeksi terbaik, cukup grand total kan dan melalui cara berikut ini, didapatkan bahwa lebih tinggi dari
>> sum(w1) ans = 1.3260 >> sum(w2) ans = 0.2423 >>
Sehingga merupakan garis proyeksi terbaik!
Discriminant
Untuk menghitung discriminant nya yaitu
%%discriminant y1_w1 = w1'*x1'; y2_w1 = w1'*x2'; discriminant = mean([y1_w1;y2_w1]')
hasil
discriminant = 4.3120 10.8050
Kalian bisa melihat discriminant untuk dan
Data asing pada LDA
Bagaimana mengklasifikasi data asing setelah didapatkan LDA sebelumnya? Perhatikan objek C berikut
Sekilas akan masuk/lebih dekat dengan B, maka untuk menghitungnya cukup hitung jarak euclid nya
x3 = [8,10]; %%sebagai testing y_asing_w1 = w1'*x3' jarak_kelas_A = norm(discriminant(1)-y_asing_w1) jarak_kelas_B = norm(discriminant(2)-y_asing_w1)
hasil
y_asing_w1 = 11.4429 jarak_kelas_A = 7.1310 jarak_kelas_B = 0.6379
Kalian bisa lihat jarak_kelas_B mempunyai nilai terkecil sehingga X3 masuk sebagai data B
Visualisasi
Hem.. pasti kalian penasarankan dengan teknik visualisasi diatas? Kita coba dengan data yang lebih banyak lagi
Plot PDF nya
Menarik bukan pembahasan LDA nya, lebih mudah kalau dengan visulasasi, silahkan bertanya kesini saja cara dapatkan visualisasi diatas setidaknya kalian sudah tahu cara mencari LDA nya