You are on page 1of 60

PHÂN TÍCH

THÀNH PHẦN CƠ BẢN

(PCA - Principal Component Analysis)


Nguyễn Văn Đoàn
Trần Thái Hà
Đồng Văn Hảo
Mai Văn Tá
Hà Tiến Thành
Nguyễn Thị Thủy
Vũ Mạnh Tuấn
(Cao học KTĐT 28A)
Lý thuyết xử lý tín hiệu vô tuyến điện
www.themegallery.com
1/14
NỘI DUNG BÁO CÁO

1. Vai trò PCA trong xử lý tín hiệu nhiều chiều

2. Cơ sở toán học
2.1. Một số khái niệm toán học sử dụng trong PCA

2.2. Thuật toán PCA

3. Ví dụ minh họa thuật toán PCA

4. Ứng dụng

5. Mô phỏng trên Matlab

2/14
Principal component analysis
1. VAI TRÒ PCA TRONG XỬ LÝ TÍN HIỆU NHIỀU CHIỀU

Dữ liệu nhiều chiều


Đặt vấn đề
- Dữ liệu nhiều chiều: dữ liệu hình ảnh (image data), dữ liệu video,
dữ liệu audio, dữ liệu văn bản (document data), dữ liệu viết tay
(handwritten data)… Các dữ liệu này được biểu diễn bởi các thuộc
tính không gian, thời gian...

-> Khái niệm: dữ liệu k - chiều là dữ liệu được hoàn toàn xác định bởi
vectơ các giá trị thuộc tính (x1, …, xk) trong không gian k - chiều.

3
Principal component analysis
Tín hiệu nhiều chiều
• Tín hiệu nhiều chiều là tín hiệu biến thiên theo nhiều hơn 1
biến độc lập.
• Ví dụ:
+ tín hiệu hình ảnh: ~(x,y);
+ tín hiệu tivi đen trắng:~(x,y,t)….
• Xử lý tín hiệu nhiều chiều là việc thực hiện phép toán trên tín
hiệu nhiều chiều, nhằm biến đổi tín hiệu, rút trích thông tin...

4
Principal component analysis
Vai trò PCA trong xử lý tín hiệu nhiều chiều
Dữ liệu có số chiều lớn, do đó cần phải tìm cách đưa dữ liệu về
không gian có số chiều nhỏ hơn ->PCA là một trong những phương pháp
như thế, nhưng hơn thế, PCA còn có nhiều đặc tính tốt:
1) Giúp giảm số chiều của dữ liệu;
2) Thay vì giữ lại các trục tọa độ của không gian cũ, PCA xây dựng một
không gian mới ít chiều hơn, nhưng lại có khả năng biểu diễn dữ
liệu tốt tương đương không gian cũ;
3) Các trục tọa độ trong không gian mới là tổ hợp tuyến tính của
không gian cũ;
4) Trong không gian mới, các liên kết tiềm ẩn của dữ liệu có thể được
khám phá, mà nếu đặt trong không gian cũ thì khó phát hiện hơn.

5
Principal component analysis
Vai trò PCA trong xử lý tín hiệu nhiều chiều

(Minh họa đặc tính 4)


Khám phá liên kết tiềm ẩn nhờ đổi hệ trục tọa độ,
cách nhìn khác nhau về cùng một dữ liệu.

6
Principal component analysis
Vai trò PCA trong xử lý tín hiệu nhiều chiều
Ý tưởng chung: PCA là tìm một không gian mới (với số chiều nhỏ hơn
không gian cũ). Các trục tọa độ trong không gian mới được xây dựng
sao cho trên mỗi trục, độ biến thiên của dữ liệu trên đó là lớn nhất có
thể.
• Ví dụ minh họa

7
Principal component analysis
2. CƠ SỞ TOÁN HỌC

2.1. Một số khái niệm toán học sử dụng trong PCA


2.1.1. Các đặc trưng số của vector ngẫu nhiên
a) Kỳ vọng (mean, expected value)
* Ý nghĩa: giá trị “mong muốn”, biểu diễn giá trị trung bình của
một biến.
* Biểu diễn toán học
Với X biến ngẫu nhiên rời rạc:
  mx  E  X    pi xi (1)
i

8/14
Principal component analysis
2.1.1. Các đặc trưng số của vector ngẫu nhiên

b) Độ lệch chuẩn (Standard Deviation)


* Ý nghĩa: đo tính biến động của giá trị mang tính thống kê.
Nó cho thấy sự chênh lệch về giá trị của từng thời điểm đánh giá so
với giá trị trung bình.
* Biểu diễn toán học
  s  E  X (t)  m x (t) (2)

9/14
Principal component analysis
2.1.1. Các đặc trưng số của vector ngẫu nhiên

c) Phương sai (variance)


* Ý nghĩa: phương sai của một biến ngẫu nhiên là thước đo
sự phân tán thống kê của biến đó, nó hàm ý các giá trị của biến đó
thường ở cách giá trị kỳ vọng bao xa.
* Biểu diễn toán học
var( X )    s  E
2 2
 X (t )  m (t )  
x
2
(3)

10/14
Principal component analysis
2.1.1. Các đặc trưng số của vector ngẫu nhiên

d) Hiệp phương sai (covariance)


* Ý nghĩa: hiệp phương sai là độ đo sự biến thiên cùng nhau
của hai biến ngẫu nhiên (phân biệt với phương sai - đo mức độ biến
thiên của một biến).
* Biểu thức toán học

 
cov( X , Y )  E  X (t )  mx (t )   Y(t )  my (t )  (4)

11/14
Principal component analysis
2.1.1. Các đặc trưng số của vector ngẫu nhiên

1
Trường hợp đặc biệt: p1  p2  ...  pn  , khi đó:
n
1 n
  g  X   xi
n i 1
n

 x  X 
2
i
s   i 1
(5)
n 1
n

 x  X 
2
i
 
2 i 1
n 1

 x    y   
n

i x i y
cov(X, Y)  i 1
n 1
12/14
Principal component analysis
2.1.1. Các đặc trưng số của vector ngẫu nhiên

Bảng tổng hợp một số tính chất đặc trưng số của vector ngẫu nhiên

13/14
Principal component analysis
2.1.2. Trị riêng, vector riêng của ma trận hiệp phương sai

a) Ma trận hiệp phương sai (covariance matrix)


X là vector cột, mỗi thành phần Xi là biến ngẫu ngẫu nhiên có
phương sai xác định và E{ Xi }= μi.
=> xây dựng ma trận hiệp phương sai (matrix covariance) với các
thành phần si,j là hiệp phương sai:
si , j  cov( X i , X j )  E ( X i  i )( X j   j )

 cov(X1 , X1 ) cov(X1 , X 2 ) ... cov(X1 , X n ) 


 cov(X , X ) cov(X , X ) ... cov(X 2 , X n ) 
SX   2 1 2 2  (6)
 ... ... ... ... 
 
cov(X n , X1 ) cov(X n , X 2 ) ... cov(X n , X n ) 
14/14
Principal component analysis
2.1.2. Trị riêng, vector riêng của ma trận hiệp phương sai

b) Trị riêng, vector riêng


* Khái niệm
Cho 𝑨 ∈ 𝑪𝑚x𝑚 là ma trận vuông.
Vector 𝒖 ∈ 𝑪𝑚 gọi là vector riêng ứng với trị riêng λ ∈ 𝑪 nếu:
Au  u (7)

15/14
Principal component analysis
2.1.2. Trị riêng, vector riêng của ma trận hiệp phương sai

b) Trị riêng, vector riêng


* Khái niệm
* Tính chất
- Trị riêng là nghiệm của phương trình đặc trưng
det 𝐀 − λ𝑰 = 0
- Một trị riêng có thể có nhiều vector riêng.
- Mỗi vector riêng chỉ ứng với một trị riêng duy nhất
- Mọi trị riêng của A đều khác không thì A khả nghịch
- Nếu λ là trị riêng của A thì λk là trị riêng của Ak

16/14
Principal component analysis
2.1.2. Trị riêng, vector riêng của ma trận hiệp phương sai

b) Trị riêng, vector riêng


* Khái niệm
* Tính chất
* Phương pháp giải tìm trị riêng, vector riêng
- Bước 1: giải phương trình đặc trưng tìm trị riêng
det 𝐀 − λ𝑰 = 0
- Bước 2: giải hệ phương trình thuần nhất tìm vector riêng ui
ứng với trị riêng λi.
det 𝐀 − λ𝑰 𝒖 = 𝟎

17/14
Principal component analysis
2.2. THUẬT TOÁN PCA

Cho ma trận

. Các bước của PCA lần lượt như sau:

Bước 1: Tiền xử lí

Bước 2: Xây dựng không gian mới

Bước 3: Chuyển dữ liệu từ không gian ban đầu


vào không gian mới

18
Principal component analysis
2.2.THUẬT TOÁN PCA

I. TIỀN XỬ LÍ

- Dữ liệu ban đầu có thể có giá trị thay đổi bất thường, do
vậy cần phải có một bước tiền xử lí để chuẩn hóa giá trị trên
các cột của ma trận X.

- Có 2 cách tiền xử lí thường được dùng cho PCA

1. Centered PCA

2. Normed PCA

19
Principal component analysis
2.2. THUẬT TOÁN PCA

I. TIỀN XỬ LÍ
1. Centered PCA

Mang tất cả các feature (của các cột của X) về cùng một gốc tọa độ:

𝑋 = 𝑥𝑖𝑗
𝑥𝑖𝑗 − 𝑔𝑗
𝑥𝑖𝑗 = (8)
𝑛
𝑛
𝑖=1 𝑥𝑖𝑗
𝑔𝑗 =
𝑛
20
Principal component analysis
2.2. THUẬT TOÁN PCA

I. TIỀN XỬ LÍ

2. Normed PCA
Mang tất cả các feature về cùng một gốc tọa độ, đồng thời chuẩn
hóa về cùng một quãng độ lệch chuẩn bằng 1:

𝑋 = 𝑥𝑖𝑗
𝑥𝑖𝑗 − 𝑔𝑗
𝑥𝑖𝑗 = (9)
𝑛σ𝑗

21
Principal component analysis
2.2. THUẬT TOÁN PCA

𝑥11 … 𝑥1𝑝
Xét trận X có kích thước n x p, 𝑋= … … …
Ma trận hiệp phương sai của X: 𝑥𝑛1 … 𝑥𝑛𝑝
1
𝑆𝑋 = 𝑋𝑋 𝑇
𝑛−1
Tính chất:
- Các thành phần nằm trên đường chéo của SX là phương sai của một
kiểu đo riêng biệt nào đó;
- Các thành phần không nằm trên đường chéo là hiệp phương sai giữa
hai kiểu đo nào đó. (tức là nói lên tính tương quan giữa hai kiểu đo, như
vậy trường hợp tốt nhất là các kiểu đo là không tương quan tức là hiệp
phương sai giữa chúng bằng 0)
22
Principal component analysis
2.2. THUẬT TOÁN PCA

Sau khi nhận được ma trận ta cần biến đổi nó về ma trận Y sao cho:

1
𝑆𝑌 = 𝑌𝑌 𝑇 là ma trận đường chéo
𝑛−1
Thực chất là tìm phép biến đổi P:

Sử dụng tính chất:

23
Principal component analysis
2.2. THUẬT TOÁN PCA

Đặt:

Người ta chứng minh được: A là ma trận đối xứng và có thể phân tích
dưới dạng

Trong đó E là ma trận gồm các vector riêng của A xếp theo cột, và

Chọn:

Do đó: Thỏa mãn là


ma trận
đường chéo
24
Principal component analysis
2.2. THUẬT TOÁN PCA

II. XÂY DỰNG KHÔNG GIAN MỚI

Tính ma trận hiệp phương sai

Tìm trị riêng của V theo thứ tự giảm dần

Và véc tơ riêng tương ứng:

25
Principal component analysis
2.2. THUẬT TOÁN PCA

III. CHUYỂN DỮ LIỆU


(TỪ KHÔNG GIAN BAN ĐẦU VÀO KHÔNG GIAN MỚI)

Xây dựng không gian mới từ k véc tơ đầu tiên (từ


lớn đến nhỏ) trong m véc tơ riêng của V , (k < m)

Khi đó tọa độ các điểm trong hệ tọa độ mới là

26
Principal component analysis
3. MINH HỌA THUẬT TOÁN PCA

GĐ 1: Tiền xử lí
Bước 1: thu thập dữ liệu
Bước 2: chuẩn hóa dữ liệu
GĐ 2: Xây dựng không gian mới
Bước 3: xây dựng ma trận hiệp phương sai
Bước 4: xác định trị riêng, vector riêng
Bước 5: lựa chọn các thành phần xây dựng vector đặc trưng
GĐ 3: Chuyển dữ liệu từ không gian ban đầu
vào không gian mới
Bước 6: chuyển dữ liệu và không gian mới
27
Principal component analysis
3. MINH HỌA THUẬT TOÁN PCA

Step 1: Thu thập dữ liệu


x0 y0
2.5 2.4
0.5 0.7
2.2 2.9
1.9 2.2
X 3.1 3.0
2.3 2.7
2 1.6
1 1.1
1.5 1.6
1.1 0.9

28
Principal component analysis
3. MINH HỌA THUẬT TOÁN PCA

Step 2: Chuẩn hóa dữ liệu


Original PCA data Norm PCA data
x0 y0 x1 y1
2.5 2.4 0.2779 0.1831
0.5 0.7 -0.5276 -0.4520
2.2 2.9 0.1571 0.3698
1.9 2.2 0.0362 0.1083
X 3.1 3.0 Xnorm 0.5195 0.4072
2.3 2.7 0.1973 0.2951
2 1.6 0.0765 -0.1158
1 1.1 -0.3262 -0.3026
1.5 1.6 -0.1248 -0.1158
1.1 0.9 -0.2859 -0.3773
mean 1.8100 1.9100 mean 0 0
std 0.7852 0.8465 std 0.3162 0.3162
var
Principal component analysis
0.6166 0.7166 var 0.1 0.1 29
0.1000
0.0074 0 
0.7071 0.0926
0.7071
eivec 
covar
eival 
0.7071
0.0926
0 0.1926
0.1000
0.7071
3. MINH HỌA THUẬT TOÁN PCA


Step 3: Xây dựng ma trận hiệp phương sai

0.1000 0.0926 
covar   
0.0926 0.1000 

Step 4: Xác định trị riêng, vector riêng

0.0074 0 
eival   
 0 0.1926 

0.7071 0.7071
eivec   
 0.7071 0.7071
30
Principal component analysis
3. MINH HỌA THUẬT TOÁN PCA

31
Principal component analysis
3. MINH HỌA THUẬT TOÁN PCA

32
Principal component analysis
3. MINH HỌA THUẬT TOÁN PCA

33
Principal component analysis
3. MINH HỌA THUẬT TOÁN PCA

34
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

 Nhận diện khuôn mặt


 Công nghệ thông tin
 Sinh học
 Tài chính
 Giảm kích thước của các dữ liệu

35
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

 Nhận diện khuôn mặt


 Ý tưởng chính
• Mục tiêu của phương pháp PCA là “giảm số chiều”
của 1 tập vector sao cho vẫn đảm bảo được “tối đa
thông tin quan trọng nhất” . Tức Feature extraction
(giữ k thuộc tính “mới”) chứ không phải Feature
selection (giữ lại k thuộc tính nguyên gốc ban đầu).

36
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

37
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

• Hệ thống nhận dạng tổng quát

Hình 1: Cấu trúc tổng quát của hệ thống nhận dạng mặt

38
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

• - Tiền xử lý: Chuẩn hóa kích cỡ giữa ảnh trong


CSDL
- Tách khuôn mặt: khuôn mặt trên ảnh chụp
được tách ra phần mặt, nó sẽ là các khuôn mặt
cần tìm và chức năng trích chọn đặc trưng sẽ
sử dụng các ảnh được tách ra này.

39
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

- Trích chọn đặc trưng: Tìm ra các đặc trưng chính của
ảnh mặt, từ các đặc trưng này hình thành các vector
đặc trưng, các vector này sẽ được sử dụng để đối
sánh sự giống nhau giữa ảnh mặt cần tìm và ảnh mặt
trong CSDL.
- Đối sánh: Thực hiện việc so sánh giữa các vector đặc
trưng để chọn ra độ tương tự giữa ảnh cần tìm và ảnh
trong CSDL.

40
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

• Nhận các khuôn mặt từ cơ sở dữ liệu


• Giả sử có M ảnh, khi đó i=1,2...M.

Hình 2: Các ảnh cùng kích thước và mặt ở tâm ảnh


41
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

• Đầu tiên chúng ta sẽ đọc cơ sở dữ liệu và nhận


vào các ảnh luyện Ii. Các ảnh luyện ở đây đều là
ảnh mặt, chúng có mặt ở tâm ảnh và có cùng
kích thước.
• Sau đó ta tương ứng mỗi ảnh Ii với một vector
Γi
• Ii (ảnh N×N) → Γi (vector N2×1)

42
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

• Bước 1: Tính toán giá trị trung bình


Giá trị vector trung bình:
(4.1)

• Γi là vector 1 chiều (N2×1) đại diện cho mỗi ảnh.


Ψ là vector trung bình (kích thước N2×1) của
tập tất cả các Γi trên; Ψ còn được gọi là vector
trung bình mặt của tập luyện.

43
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

• Bước 2: Trừ đi giá trị trung bình


Sai số của các ảnh so với giá trị vector mặt
trung bình
Φi = Γ i – Ψ (4.2)
Φi là vector sai số ứng với mỗi ảnh,

44
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

• Bước 3: Tính ma trận hiệp phương sai


Ma trận hiệp phương sai được tính theo công
thức sau:
(4.3)

Trong đó C là ma trận hiệp phương sai (kích thước


N2×N2):
(4.4)

• A là ma trận N2×M, 𝚽n là giá trị sai số được tính ở


công thức (4.2).
45
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

Bước 4: Tính các trị riêng và vector đặc trưng của ma trận hiệp
phương sai
Ma trận AAT và ATA luôn có chung trị riêng và vector đặc
trưng thì có liên hệ với nhau bởi biểu thức ui = Avi mà ma trận ATA
lại có số chiều ít hơn hẳn (ma trận M×M) nên ta sẽ chuyển đổi về
ma trận ATA. Sau khi tính toán ta được M vector đặc trưng của
AAT (ui = Avi) tương ứng với M giá trị riêng.
Chuẩn hóa các vector đặc trưng ui về vector đơn vị:
||ui|| =1 (4.5)

46
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

Bước 5: Lựa chọn các thành phần và xây dựng


vector đặc trưng.
Mỗi khuôn mặt trong tập huấn luyện có thể được
biểu diễn lại là 1 tổ hợp tuyến tính của K vector riêng lớn
nhất:
• (4.6)
ui vector riêng của K vector đặc trưng lớn nhất
wi là các trọng số tương ứng với các vector đặc trưng

47
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

• Trong đó 𝑤ji (j=1..K) là các trọng số tương ứng với K


vector đặc trưng,
• 𝛺i là vector đại diện cho khuôn mặt thứ i trong tập
48
luyện.
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

49
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

• Hình ảnh cho thấy, hình ảnh ban đầu sẽ bằng ảnh
trung bình cộng với tổng tất cả các đặc trưng mặt
nhân với trọng số tương ứng.
50
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

• Chỉ giữ lại K vector riêng trong số M vector nói trên


(ứng với K trị riêng lớn nhất), tất nhiên K<<N2.
• Xác định K.
- Sắp xếp theo thứ tự dãy giảm dần các
eigenvalues tìm được.
- Theo dõi sự biến thiên của dãy trên, khi không
còn biến thiên (hoặc xấp xỉ bằng không) thì lúc đó ta đã
chọn đủ K.

51
Principal component analysis
4. ỨNG DỤNG PCA TRONG NHẬN DIỆN KHUÔN MẶT

• Nhược điểm PCA Eigenfaces


• Trong những trường hợp sau, PCA Eigenfaces
sẽ nhận dạng sai:
• Khác nhau về điều kiện ánh sáng
• Khác nhau về điệu bộ (nghiêng đầu chẳng
hạn…)
• Cảm xúc (cười to, há miệng…)

52
Principal component analysis
5. MÔ PHỎNG TRÊN MATLAB

%% PCAexam.m
%% Principal Components Analysis
%% Step 1: Get some data
display('%% Step 1: Get some data');
x0 = ([2.5 0.5 2.2 1.9 3.1 2.3 2 1 1.5 1.1])';
y0 = ([2.4 0.7 2.9 2.2 3.0 2.7 1.6 1.1 1.6 0.9])';
X = ([x0, y0])
% plot data
subplot(2,2,1)
plot(x0,y0,'k+');
title('Original PCA data');
line([0 0],[-1 4],'Color','r','LineStyle',':');
line([-1 4],[0 0],'Color','r','LineStyle',':');
grid on;
axis([-1 4 -1 4]);

53
Principal component analysis
5. MÔ PHỎNG TRÊN MATLAB

%% Step 2: Normal PCA


display('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
display('%% Step 2: Normal PCA');
mu_x0 = mean(x0) % mean of the x0 values
mu_y0 = mean(y0) % mean of the y0 values
std_x0 = std(x0) % std of the x0 values
std_y0 = std(y0) % std of the y0 values
n = size(x0) % n(1) number of sample
x1 = (x0 - mu_x0)/(std_x0*sqrt(n(1))); %
normal PCA
y1 = (y0 - mu_y0)/(std_y0*sqrt(n(1)));
Xnorm = ([x1, y1])

54
Principal component analysis
5. MÔ PHỎNG TRÊN MATLAB

%% Step3: Calculate the covariance matrix


display('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
display('%% Step3: Calculate the covariance matrix');
covar = cov(x1,y1)

55
Principal component analysis
5. MÔ PHỎNG TRÊN MATLAB

%% Step 4: Calc. the eigenvectors and eigenvalues


display('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
display('%% Step4: Calculate the eigenvec and eigenval');
[eivec, eival]=eig(covar)
% Plot data
subplot(2,2,2)
% new coordinates
t = -1:1
tval1 = eivec(1,2)/eivec(1,1)*t;
tval2 = eivec(2,2)/eivec(2,1)*t;
plot(t,tval1, t, tval2)
legend('eivec1','eivec2');
hold on;
% normal PCA data
plot(x,y,'k+');
title('Normal PCA data');
line([0 0],[-1 1],'Color','r','LineStyle',':');
line([-1 1],[0 0],'Color','r','LineStyle',':');
grid on
hold off
axis([-1 1 -1 1]);
56
Principal component analysis
5. MÔ PHỎNG TRÊN MATLAB
%% Step 5: Choosing components and forming a feature vector
display('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
display('%% Step 5: Choosing components and forming a fea_vector');
respone = input('Number of new coordinates (1 or 2): ');
dim = respone(1);
if (dim == 1)
eivalmax = max(diag(eival))
if eivalmax == eival(1,1)
fea_vector = eivec(:,1)
else
fea_vector = eivec(:,2)
end
end
if (dim == 2)
eivalmax = max(diag(eival))
if eivalmax == eival(1,1)
fea_vector = [eivec(:,1),eivec(:,1)]
else
fea_vector = [eivec(:,2),eivec(:,1)]
end
end
57
Principal component analysis
5. MÔ PHỎNG TRÊN MATLAB

%% Step 6: Deriving the new data set


display('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
display('%% Step 6: Deriving the new data set');
Xfinal = ((fea_vector).')*((Xnorm).')
x2 = Xfinal(1,:);
if (dim == 1)
y2 = 0;
else
y2 = Xfinal(2,:);
End
%% (continue...)

58
Principal component analysis
5. MÔ PHỎNG TRÊN MATLAB

% Plot data when chosing one eigvalue


subplot(2,2,3)
plot(x1,0,'k+');
title('Final data when chosing one eigvalue ');
line([0 0],[-1 1],'Color','r','LineStyle',':');
line([-1 1],[0 0],'Color','r','LineStyle',':');
grid on;
axis([-1 1 -1 1]);

% Plot data when chosing two eigvalues


subplot(2,2,4)
plot(x2,y2,'k+');
title('Final data when chosing two eigvalues ');
line([0 0],[-1 1],'Color','r','LineStyle',':');
line([-1 1],[0 0],'Color','r','LineStyle',':');
grid on;
axis([-1 1 -1 1]);

59
Principal component analysis
5. MÔ PHỎNG TRÊN MATLAB

60
Principal component analysis

You might also like