rangkuman principal component analysis

9
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 rupa sehingga 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 Principal Component 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 pemrograman Matlab 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).

Upload: icha-hidayah

Post on 14-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Rangkuman Principal Component Analysis

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).

Page 2: Rangkuman Principal Component Analysis

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.

Page 3: Rangkuman Principal Component Analysis

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 =

Page 4: Rangkuman Principal Component Analysis

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,:)

Page 5: Rangkuman Principal Component Analysis

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.

Page 6: Rangkuman Principal Component Analysis

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

Page 7: Rangkuman Principal Component Analysis

7/30/2019 Rangkuman Principal Component Analysis

http://slidepdf.com/reader/full/rangkuman-principal-component-analysis 7/9

Page 8: Rangkuman Principal Component Analysis

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'})