PHÂN TÍCH PCA GIẢM CHIỀU DỮ LIỆU TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP.HCM NHÓM 04 - L14... Giới thiệu về PCAPrincipal component analysis PCA • Phép phân tích thành phần chính Pr
Trang 1PHÂN TÍCH PCA GIẢM CHIỀU
DỮ LIỆU
TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA TP.HCM
NHÓM 04 - L14
Trang 2Thành viên tham gia
Trang 3Tóm tắt nội dung
• Giới thiệu về PCA
• Các bước phân tích PCA
• Matlab
• Kết luận
Trang 4I Giới thiệu về PCA
Principal component analysis (PCA)
• Phép phân tích thành phần chính (Principal component analysis-PCA) là một thuật toán thống kê sử dụng biến đổi trực giao để biến đổi một tập hợp dữ liệu từ một không gian nhiều chiều sang một không gian mới ít chiều hơn (2 hoặc 3 chiều) nhằm tối ưu hóa việc thể hiện sự biến thiên của dữ liệu.
Trang 5Một số khái niệm toán học sử dụng trong PCA:
01: Kì vọng
02: Độ lệch chuẩn
03: Phương sai
04: Hiệp phương sai
05: Ma trận hiệp phương sai 06: Phương sai lớn nhất
07: Trị riêng 08: Vector riêng
Trang 6x y z
1 0.6999 0.5309 0.9686
2 0.3685 0.6544 0.5313
3 0.0336 0.4076 0.3251
4 0.0688 0.8200 0.1056
5 0.3196 0.7184 0.6110
II Các bước phân tích PCA
Cho bảng số liệu có dữ liệu 3 chiều như sau:
Trang 7Bước 1: Tính giá trị trung bình (tìm kỳ vọng mean)
´
𝑦= 1
𝑖=1
𝑁
𝑦𝑖= 0.5309+0.6544 +0.4076 +0.8200 +0.7184
´
𝑧= 1
𝑖=1
𝑁
𝑧𝑖= 0.9686+0.5313+0.3251+0.1056+0.6110
Trang 8
Bước 2: Tính vecto
Tính ma trận hiệp phương sai (covariance)
A 0.4018 -0.0954 0.4603
C -0.2645 -0.2187 -0.1832
D -0.2293 0.1937 -0.4027
A 0.4018 -0.0954 0.4603
C -0.2645 -0.2187 -0.1832
D -0.2293 0.1937 -0.4027
Ma trận hiệp phương sai:
𝑆= 1
𝑁 −1 ^ 𝑋
𝑇 ^ 𝑋 = ( − 0.0052 0.0724 − 0.0052 0.0259 − 0.0179 0.0824
0.0824 − 0.0179 0.1047 )
Trang 9
Bước 3+4: Tìm trị riêng của S và sắp xếp theo giá trị giảm và chọn k trị riêng ban đầu và k vecto riêng đơn vị ứng với các trị riêng này
Tac ó c á c tr ịri ê ng 𝜆1=0.1745 ; 𝜆2= 0.0264 ; 𝜆3= 0.0021
Þ Vector riêng của U1=
Þ Đưa về vectơ đơn vị
=>Làm tương tự với λ2 ta có
, Làm tương tự với λ3 ta có
Chọn 2 trị riêng ban đầu và 2 vecto riêng đơn vị ứng với các trị riêng này Lập ma trận A có các cột là các vector riêng đơn vị ứng với các trị riêng này Ma trận A là phép biến đổi cần tìm
𝐴=(− 0.11510.6273 0.31530.9419
0.7702 − 0.1160)
Trang 10
Bước 5: Tính ảnh của vecto Dữ liệu X ban đầu được xấp xỉ bởi
Mỗi cột của chứa tọa độ của các hàng của ma trận trong cơ sở từ các cột của ma trận P.
𝐴 𝑇 ^𝑋 𝑇 =( −0.11510.6273 0.31530.9419
0.7702 − 0.1160)𝑇 ( ¿ 0.4018 − 0.0954 0.4603
0.0704 0.0281 0.0230
¿
− 0.2645 −0.2187 − 0.1832
− 0.2293 0.1937 − 0.4027
0.0215 0.0921 0.1027 )
𝑇
¿(−0.01650.6176 0.05860.0460 − 0.2819 − 0.4763 − 0.2681 0.1569 0.08200.0817)
Vậy ta được bảng dữ liệu sau khi giảm chiều là PC1 PC2
A 0.6176 -0.0165
B 0.0586 0.0460
C -0.2819 -0.2681
D -0.4763 0.1569
E 0.0820 0.0817
Trang 11 Đánh giá sai số:
Tính tổng các trị riêng của S ta được:
Khi ta giảm chiều dữ liệu từ 3 chiều về 2 chiều thì phương sai đã giảm còn và chiếm tỉ lệ: so với phương sai ban đầu
Trang 12
Code Matlab
NUM_DIMENSIONS = INPUT(’NHẬP SỐ CHIỀU CỦA MA
TRẬN: ’);
X = RAND(5, NUM_DIMENSIONS);
DISP(’MA TRẬN ĐẦU VÀO NGẪU NHIÊN:’);
DISP(X);
XM = MEAN(X);
C = COV(X);
[V, ] = EIG(C); ∼] = EIG(C);
K = INPUT (’ NHẬP SỐ CHIỀU CẦN GIẢM: ’);
IF K > NUM_DIMENSIONS
K= INPUT(’ NHẬP LẠI SỐ CHIỀU CẦN GIẢM: ’);
END
IF NUM_DIMENSIONS > 3
SELECTED_VECTORS = V(:, END:-1:END-K+1);
REDUCED_DATA = (X - XM) * SELECTED_VECTORS;
FIGURE;
SUBPLOT(1, 2, 2);
SCATTER(REDUCED_DATA(:, 1), REDUCED_DATA(:, 2), ’R’,
’FILLED’);
TITLE(’MA TRẬN SAU KHI ĐƯỢC GIẢM CHIỀU’);
DISP(’MA TRẬN ĐẦU RA SAU KHI GIẢM CHIỀU:’);
DISP(REDUCED_DATA);
ELSE SELECTED_VECTORS = V(:, END:-1:END-K+1);
REDUCED_DATA = (X - XM) * SELECTED_VECTORS;
FIGURE;
SUBPLOT(1, 3, 1);
SCATTER3(X(:, 1), X(:, 2), X(:, 3), ’B’, ’FILLED’);
TITLE(’MA TRẬN TRƯỚC KHI GIẢM CHIỀU ’);
SUBPLOT(1, 3, 2);
SCATTER(REDUCED_DATA(:, 1), REDUCED_DATA(:, 2), ’R’,
’FILLED’);
TITLE(’MA TRẬN SAU KHI ĐƯỢC GIẢM CHIỀU’);
SUBPLOT(1, 3, 3);
DISP(’MA TRẬN ĐẦU RA SAU KHI GIẢM CHIỀU:’);
DISP(REDUCED_DATA);
END
Trang 13Sơ đồ khối code
Trang 14• Qua đề tài về ứng dụng phân tích thành phần chính pca để giảm chiều dữ liệu, nhóm chúng
em đã có cái nhìn sâu sắc hơn về sự gắn kết giữa lý thuyết và thực tế ở bộ môn đại số tuyến tính nói riêng.
• PCA trở thành một trong những phương pháp quan trọng nhất trong hành trình khám phá vũ trụ số liệu không ngừng mở rộng.
• Nhóm em đã hiểu được cách phân tích thành phần chính PCA giảm số chiều dữ liệu ma trận bất kì và tạo code Matlab có khả năng giảm chiều của 1 file dữ liệu tuỳ ý.
KẾT QUẢ
Trang 15Cảm ơn thầy và các
bạn đã lắng nghe