rangkuman principal component analysis
TRANSCRIPT
7/30/2019 Rangkuman Principal Component Analysis
http://slidepdf.com/reader/full/rangkuman-principal-component-analysis 1/9
PRINCIPAL COMPONENT ANALYSIS (#1)
Principal Component Analysis atau yang lebih populer dikenal dengan singkatannya ‗PCA‘,
adalah sebuah metode statistik yang banyak digunakan dalam sistem pengenalan pola (wajah,
karakter, dll) serta kompresi citra.
PCA pada dasarnya bekerja pada sekelompok data observasi yang pada awalnya memiliki
kemungkinan saling berelasi, kemudian proses PCA mengkonversi data tersebut sedemikian rupasehingga yang tersisa adalah data yang tidak saling berelasi satu sama lain yang disebut dengan
Principal Component.
Jumlah Principal Component yang dihasilkan adalah kurang dari atau sama dengan jumlah data
aslinya.
Principal Component akan diurutkan dari data yang dianggap paling penting sampai data yang
kurang penting. Sederhananya, data pada baris pertama hasil konversi adalah PrincipalComponent pertama dan yang paling berpengaruh terhadap variasi data asli.
Proses PCA dapat dilakukan dengan 2 cara:
1. Menggunakan eigen function dari covarian-nya.
2. Menggunakan SVD (Singular Value Decomposition).
Yang akan dibahas di sini adalah cara 1, yang diimplementasikan pada bahasa pemrogramanMatlab dengan menggunakan komponen standar dan komponen dari Statistics Toolbox.
IMPLEMENTASI
1. Siapkan data sumber (di sini saya gunakan 3 buah citra wajah dengan objek yang sama).Citra diset dengan ukuran yang sama yaitu 47×53 pixel.
Kemudian masing-masing matriks citra diubah ke dalam matriks berukuran Mx1 yaitu 2491×1(dimana 2491 didapatkan dari hasil perkalian dari 47×53).
Jadi akan terdapat 3 buah matriks berukurab 2491×1 yang menyimpan ketiga buah gambar di
atas. Langkah selanjutnya adalah menyimpan semua matriks gambar ke dalam sebuah matriks,sebut saja namanya ‗All‘ yang berukuran MxN yaitu 2491×3. Dimana M adalah ukuran gambar
dan N adalah jumlah variabel input (dalam hal ini jumlah gambar).
7/30/2019 Rangkuman Principal Component Analysis
http://slidepdf.com/reader/full/rangkuman-principal-component-analysis 2/9
>>All
65 74 129
70 78 134
75 87 142
79 97 149
………….
………….
134 91 49
125 100 44
122 116 44 (sampai baris ke 2491)
>> [M N] = size(All)
M =
2491
N =
3
2. Standarisasi Data
Sebelum masuk ke proses PCA, data sampel pada matriks ‗All‘ distandarisasi terlebih dahulu
dengan cara mengatur nilai mean menjadi ‘0′ (nol) dan menyeragamkan deviasi standar nya.
Tentukan mean (rata-rata) data dengan:
>> mAll = mean(All);
mAll =
67.2328 116.9591 136.3420
Sebelum menghitung deviasi standarnya, pastikan bahwa tipe data dalam matriks ‗All‘ bertipe
single atau double, sebab perintah std pada Matlab hanya akan memproses kedua tipe data
tersebut.
7/30/2019 Rangkuman Principal Component Analysis
http://slidepdf.com/reader/full/rangkuman-principal-component-analysis 3/9
>> All = double (All);
Tentukan deviasi standar dengan:
>> stdAll = std(All);
>> stdAll
stdAll =
23.2694 32.8415 30.3147
dan Standarisasi dapat dilakukan dengan mengurangi setiap data pada matriks ‗All‘ dengan
meannya, kemudian membagi hasilnya dengan deviasi standar-nya. Dengan menggunakan
perintah zscore pada statistics toolbox, standarisasi dapat dilakukan dengan mudah:
>> All2 = zscore(All)
All2 =
-0.0960 -1.3081 -0.2422
0.1189 -1.1863 -0.0773
0.3338 -0.9122 0.18660.5057 -0.6077 0.4176
…….
……
2.8693 -0.7904 -2.8812
2.4825 -0.5164 -3.0461
2.3536 -0.0292 -3.0461 (sampai baris ke 2491)
Hasil standarisasi yang disimpan pada matriks ‗All2′ kemudian diinputkan ke dalam proses PCA.
3. Proses PCA
Cara mudah untuk mendapatkan principal component pada matriks ‗All2′ adalah dengan
menggunakan fungsi princomp yang telah disiapkan pada statistics toolbox. Fungsi ini akan
menghitung eigen function dari covarians-nya dan menghasilkan tiga buah variabel yakni:COEFF, SCORE dan LATENT.
>> [COEFF SCORE LATENT] = princomp(All2)
COEFF =
7/30/2019 Rangkuman Principal Component Analysis
http://slidepdf.com/reader/full/rangkuman-principal-component-analysis 4/9
0.5780 -0.5738 0.5802
0.6234 -0.1484 -0.7677
0.5266 0.8054 0.2720SCORE =
-0.9985 0.0540 0.8827-0.7115 0.0455 0.9587
-0.2775 0.0941 0.9448
0.1333 0.1363 0.87350.4920 0.0987 0.7754
0.6903 0.0755 0.7030
0.6711 0.1670 0.5904
…….
…….
-0.9765 -3.9263 1.5904-0.7617 -3.8017 2.0183
-0.3516 -3.8498 1.4880
-0.4912 -3.8014 1.0084-0.2620 -3.7997 0.5596 (sampai baris ke 2491)
LATENT =
2.1631
0.58850.2484
Dimana,
COEFF: menyimpan nilai koefisien dari principal component-nya.
LATENT : menyimpan varians dari principal component-nya.
SCORE: data principal componen dari matriks asal ‗All‘ yang telah diurutkan dari baris pertama
sampai baris terakhir, dimana baris pertama mengandung informasi data (principal component)
yang paling penting pertama, kemudian paling penting nomor 2 berada di baris kedua..dandemikian seterusnya hingga baris terakhir yang merupakan data yang kurang berarti.
Untuk tahap selanjutnya, principal component dalam variabel SCORE dapat dipilih jumlahnya
(baris) sesuai dengan kebutuhan. Misalkan bila diinginkan jumlah principal component yang
disisakan adalah 100 data saja, maka dapat dilakukan dengan:
>> PC = SCORE(1:100,:)
7/30/2019 Rangkuman Principal Component Analysis
http://slidepdf.com/reader/full/rangkuman-principal-component-analysis 5/9
PC =
-0.9985 0.0540 0.8827-0.7115 0.0455 0.9587
-0.2775 0.0941 0.9448
0.1333 0.1363 0.87350.4920 0.0987 0.7754
0.6903 0.0755 0.7030
…….
…….
-0.1074 0.2447 0.7761
0.2347 0.3407 0.67840.4314 0.3485 0.6383
0.5728 0.3387 0.6360 (sebanyak 100 baris)
Ini berarti: 100 buah data principal component pertama didapatkan dan disimpan dalam variabel
PC.
Dengan menggunakan PCA, data berdimensi 2491×3 telah direduksi menjadi 100×3, dimana
angka 3 adalah jumlah variabel (objek) yang dijadikan sebagai data sampel (dalam hal ini jumlahcitra yang dijadikan sampel).
PRINCIPAL COMPONENT ANALYSIS (#2)
Berapa jumlah Principal Component yang akan dipakai?
Ini adalah pertanyaan yang banyak dihadapi ketika harus mengumpankan hasil dari proses PCA
ke tahapan berikutnya (misal: clustering).
Pemilihan jumlah PC sangatlah subjektif dan sebagian banyak yang memilih cara ‗brute force‘
atau dengan perkiraan dan dengan mencoba kemungkinan terbaik dari beberapa kali percobaanmengurangi dan menambahkan jumlah komponen yang digunakan.
Selain cara brute force di atas, banyak pula metode pemilihan yang sudah dipublikasikan dan
diimplementasikan. Salah satu dari yang paling popular adalah ―The Kaiser criterion‖ yangdiperkenalkan pada tahun 1960.
Kriteria Kaiser bekerja menggunakan eigenvalue dari hasil standarisasi matriks.
Di bahasan sebelumnya, proses PCA dilakukan menggunakan fungsi princomp tanpa
memperlihatkan proses detail pada penentuan Principal Component-nya.
7/30/2019 Rangkuman Principal Component Analysis
http://slidepdf.com/reader/full/rangkuman-principal-component-analysis 6/9
– >Proses PCA didapatkan dengan cara menentukan nilai “eigenvalue” dari “matriks
covariance“-nya < –
**Perlu dijelaskan bahwa Matriks hasil penggabungan semua variable disebut dengan nama
‗All‘ pada bahasan sebelumnya, yang kemudian matriks ‗All‘ distandarisasi menggunakan fungsi
zscore dan disimpan dalam variable dengan nama ‗All2‘.
Setelah distandarisasi, maka matriks ‗All2‘ akan memiliki covariance yang seragam yakni 1,
yang artinya masing-masing variable mempengaruhi variasi data sebanyak 1. Jadi totalcovariance adalah sama dengan jumlah variabel. Misal, variabel yang digunakan dalam
percobaan adalah 3 (dari 3 foto), maka jumlah covariance-nya adalah 3.
Untuk melihat nilai covariance:
>> C= cov(All2)
C =
1.0000 0.7189 0.4256
0.7189 1.0000 0.5879
0.4256 0.5879 1.0000
Nilai covariance dapat dilihat dari diagonal C, yaitu 1. Untuk melihatnya dapat dicoba perintah:
>> diag(C)
ans =
1.0000
1.0000
1.0000
Jadi jumlah covariance-nya seperti yang dijelaskan di atas adalah sama dengan jumlah
variabelnya yaitu 3.
Kemudian eigenvalue ditentukan dengan cara:
>> E = eig(C)
E =
0.2484
7/30/2019 Rangkuman Principal Component Analysis
http://slidepdf.com/reader/full/rangkuman-principal-component-analysis 7/9
7/30/2019 Rangkuman Principal Component Analysis
http://slidepdf.com/reader/full/rangkuman-principal-component-analysis 8/9
Jadi dari contoh di atas, sesuai dengan Kriteria Kaiser data yang akan digunakan adalah hanya
1 data saja yang eigenvaluenya >=1 (2.1631) yaitu baris pertama pada matriks SCORE, dimana
data-data pada baris tersebut berkontribusi sebesar 72.1033% terhadap variasi data.
Tambahan
Examples
Compute principal components for the ingredients data in the Hald data set, and the varianceaccounted for by each component.
load hald;
[pc,score,latent,tsquare] = princomp(ingredients);
pc,latent
pc =
0.0678 -0.6460 0.5673 -0.5062
0.6785 -0.0200 -0.5440 -0.4933-0.0290 0.7553 0.4036 -0.5156
-0.7309 -0.1085 -0.4684 -0.4844
latent =
517.7969
67.4964
12.4054
0.2372
The following command and plot show that two components account for 98% of the variance:
cumsum(latent)./sum(latent)
ans =
0.86597
0.97886
0.9996
1
biplot(pc(:,1:2),'Scores',score(:,1:2),'VarLabels',...
{'X1' 'X2' 'X3' 'X4'})
7/30/2019 Rangkuman Principal Component Analysis
http://slidepdf.com/reader/full/rangkuman-principal-component-analysis 9/9
For a more detailed example and explanation of this analysis method, see Principal Component
Analysis (PCA).