- Phân tích thành phần chính là thuật toán 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 th
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA
BÁO CÁO BÀI TẬP LỚN
ĐỀ TÀI 11: CƠ SỞ LÝ THUYẾT CỦA PCA ỨNG DỤNG PCA ĐỂ GIẢM CHIỀU DỮ LIỆU
LỚP: L05 – NHÓM 8
GVHD: NGUYỄN HỮU HIỆP
TP HCM, 04/2021
Trang 2TÓM TẮT BÀI BÁO CÁO
Báo cáo trình bày quá trình nghiên cứu, tìm kiếm thông tin và thực hiện đề tài của nhóm A cũng như sử dụng phần mềm Matlab với mục tiêu hoàn thành bài tập lớn môn Đại Số Tuyến Tính đã được giao
Cụ thể, báo cáo sẽ đi sâu vào những công việc nhóm A cần làm, áp dụng những kiến thức cơ bản về ma trận, trị riêng, vectơ riêng,… trong chương trình để thực hiện phân tích thành phần chính (PCA: Principle Component Analysis) và mô tả quá trình bằng phần mềm Matlab
i
Trang 3LỜI MỞ ĐẦU
Ngày nay, khi thực hiện phân tích một nhóm đối tượng, chúng ta khó tránh phải việc nhóm đối tượng này phục thuộc vào nhiều yếu tố, điều đó khiến cho việc tạo dựng hàm số để phân tích nhóm đối tượng này cần phụ thuộc vào một số lượng rất lớn các biến, có thể lên đến hàng nghìn, hàng trăm, hàng triệu,… đồng nghĩa với việc không gian mô tả cần thiết cũng như thế Điều này không chỉ gây khó khăn cho việc lưu trữ
dữ liệu mà còn khó khăn cho cả việc mô hình hóa và tính toán để có thể nhận xét, đưa
ra góc nhìn trực quan cũng như cho việc kết luận sự tương quan giữa các đối tượng Vì thế, việc giảm số lượng biến thực sự quan trọng trong các lĩnh vực có liên quan như trên Tuy nhiên, giảm số lượng biến của một tập dữ liệu phải đánh đổi bằng độ chính xác của tập dữ liệu đó, điều đó có nghĩa là chúng ta phải chấp nhận mất đi một phần
dữ liệu Cho nên: “Làm thế nào để giảm thiểu số chiều dữ liệu, mà vẫn đảm bảo số lượng thông tin cần thiết? Một đề xuất khá hay để giải quyết vấn đề đó là sử dụng phương pháp Phân tích thành phần chính (PCA: Principle Pomponent Analysis) Ở bài báo cáo này, chúng em sẽ sử dụng phương pháp Phân tích thành phần chính để giảm chiều dữ liệu
i
Trang 4LỜI CẢM ƠN
Trong suốt quá trình thực hiện bài tập lớn môn Đại Số Tuyến Tính, nhóm chúng
em đã nhận được rất nhiều sự quan tâm và ủng hộ, giúp đỡ tận tình của các thầy cô, anh chị và bạn bè
Ngoài ra, nhóm cũng xin gửi lời cảm ơn chân thành nhất đến Thầy Nguyễn Hữu Hiệp và Cô Nguyễn Xuân Mỹ, là giảng viên hướng dẫn cho đề tài này Nhờ có các thầy hết lòng chỉ bảo mà nhóm đã hoàn thành bài tập lớn đúng tiến độ và giải quyết tốt những vướng mắc gặp phải Sự hướng dẫn của các thầy đã là kim chỉ nam cho mọi hành động của nhóm và phát huy tối đa được mối quan hệ hỗ trợ giữa thầy và trò trong môi trường giáo dục
Bộ môn Đại Số Tuyến Tính là một môn học vô cùng hữu ích, có tính thực tế cao, đảm bảo cung cấp đầy đủ kiến thức thực tiễn cho sinh viên Tuy nhiên, do vốn kiến thức chúng em còn nhiều hạn chế, cũng như bỡ ngỡ nên mặc dù đã cố gắng hết sức nhưng chắc chắn bài tập lớn Đại Số Tuyến Tính lần này khó tránh khỏi những thiếu sót Kính mong các thầy xem xét, góp ý cho bài tập lớn của chúng em được hoàn thiện hơn
Lời cuối, xin một lần nữa gửi lời biết ơn sâu sắc đến các cá nhân, các thầy cô đã dành thời gian chỉ dẫn cho nhóm, xin cảm ơn đến các tác giả của các tài liệu mà nhóm
đã tham khảo Đây chính là niềm tin, là nguồn động lực to lớn để nhóm có thể đạt được kết quả này
i
Trang 5MỤC LỤC
TÓM TẮT BÀI BÁO CÁO
LỜI MỞ ĐẦU ii
LỜI CẢM ƠN iii
DANH MỤC HÌNH ẢNH v
CHƯƠNG 1 MỞ ĐẦU CHƯƠNG 2 ĐẶT VẤN ĐỀ CHƯƠNG 3 PHÂN TÍCH THÀNH PHẦN CHÍNH 3.1 CƠ SỞ LÝ THUYẾT 2
3.1.1 Giới thiệu về Phân tích thành phần chính 2
3.1.2 Khái niệm về Phân tích thành phần chính 2
3.1.3 Ưu điểm của phương pháp 3
3.1.4 Nhược điểm của phương pháp 4
3.1.5 Một số khái niệm cơ bản liên quan 4
3.1.6 Các bước phân tích thành phần chính 5
3.2 ỨNG DỤNG 6
CHƯƠNG 4: ỨNG DỤNG CỦA PHÂN TÍCH THÀNH PHẦN CHÍNH TRONG GIẢM CHIỀU DỮ LIỆU CHƯƠNG 5 GIẢI BÀI TOÁN PCA BẰNG MATLAB 5.1 ĐOẠN CODE MATLAB CHẠY CHƯƠNG TRÌNH 7
5.2 VÍ DỤ 7
CHƯƠNG 6 KẾT LUẬN 10 TÀI LIỆU THAM KHẢO
iv
Trang 6DANH MỤC HÌNH ẢNH
Hình 3.1: Ví dụ về phân tích PCA 2
Hình 3.2: Biểu đồ mô phỏng 2
Hình 5.1: Biểu diễn ma trận ban đầu 8
Hình 5.2: Biểu diễn ma trận đã giảm chiều 8
Hình 5.3: Kết quả sau khi giảm chiều 9
v
Trang 7CHƯƠNG 1 MỞ ĐẦU
1.1 YÊU CẦU ĐỀ TÀI
- Nêu cơ sở lý thuyết của phân tích thành phần chính (PCA: Principle Component Analysis)
- Ứng dụng của phân tích PCA để giảm chiều dữ liệu
1.2 YÊU CẦU THÊM
- Nhóm cần có kiến thức cơ bản về PCA
- Nhóm cần có kiến thức cơ bản về lập trình Matlab
CHƯƠNG 2 ĐẶT VẤN ĐỀ
- Mỗi bộ dữ liệu thu thập được khi tiến hành các nghiên cứu, thí nghiệm thường được thể hiện dưới dạng bảng các giá trị số của nhiều cá thể Chúng tạo thành “đám mây số liệu” khá phức tạp Các số liệu này cần được phân tích và xử lí để có thể rút ra được những nhận xét, đánh giá thích hợp
- Phân tích thành phần chính (Principle Component Analysis- PCA) là kĩ thuật biểu diễn số liệu dựa theo các tiêu chuẩn về đại số và hình học mà không đòi hỏi một giả thuyết thống kê hay mô hình đặc biệt nào
- Kết hợp với phương pháp phân tích thành phần chính sẽ giúp ta khái quát các số liệu thu được, đồng thời có thể đưa ra các ước lượng, dự đoán chính xác với các đại lượng sau này
Trang 8CHƯƠNG 3 PHÂN TÍCH THÀNH PHẦN CHÍNH
3.1 CƠ SỞ LÝ THUYẾT
3.1.1 Giới thiệu về Phân tích thành phần chính
- Cùng là 1 chú lạc đà, tuy nhiên với các góc
nhìn khác nhau (trục thông tin), chúng ta có
những cách thu nhận thông tin khác nhau và
cho ta những kết luận khác nhau
- Phân tích thành phần chính là thuật toán 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ể
3.1.2 Khái niệm về Phân tích thành phần chính
- Phân tích thành phần chính là phương pháp biến đổi giúp giảm số lượng lớn các biến
có tương quan với nhau thành tập ít các biến sao cho các biến mới tạo ra là tổ hợp tuyến tính của những biến cũ không có tương quan lần nhau
- Phân tích thành phần chính về cơ bản là một kỹ thuật giảm kích thước đơn giản, biến đổi các cột của bộ dữ liệu thành một tập các đặc trưng mới Nó thực hiện điều này bằng cách tìm một tập hợp các hướng mới (như trục X và Y) giải thích sự biến đổi tối
đa trong dữ liệu, tức là hướng đó ta tìm được giá trị lớn nhất của phương sai
Hình 3.1: Ví dụ về phân tích PCA
Hình 1: Bi u đồồ mồ ph ngHình 3.2: Biểu đồ mô phỏngể ỏ
Trang 9- Ví dụ, chúng ta có 100 biến ban đầu có tương quan tuyến tính với nhau, khi đó chúng
ta sử dụng phương pháp Phân tích thành phần chính xoay chiều không gian cũ thành chiều không gian mới mà ở đó chỉ còn 5 biến không có tương quan tuyến tính mà vẫn
dữ được nhiều nhất lượng thông tin từ nhóm biến ban đầu
- Nếu chúng ta có thể biểu diễn các vectơ dữ liệu ban đầu trong một hệ cơ sở mới mà trong hệ cơ sở mới đó, tầm quan trọng giữa các thành phần là khác nhau rõ rệt, thì chúng ta có thể bỏ qua những thành phần ít quan trọng nhất
- Ví dụ, có hai camera đặt dùng để chụp một con người, một camera đặt phía trước người và một camera đặt trên đầu Rõ ràng là hình ảnh thu được từ camera đặt phía trước người mang nhiều thông tin hơn so với hình ảnh nhìn từ phía trên đầu Vì vậy, bức ảnh chụp từ phía trên đầu có thể được bỏ qua mà không có quá nhiều thông tin về hình dáng của người đó bị mất
Phân tích thành phần chính là phương pháp đi tìm một hệ cơ sở mới sao cho thông tin của dữ liệu chủ yếu tập trung ở một vài toạ độ, phần còn lại chỉ mang một lượng nhỏ thông tin Và để cho đơn giản trong tính toán, PCA sẽ tìm một hệ trực chuẩn để làm cơ
sở mới
Phương pháp phân tích thành phần chính (Principal Component Analysis) là công cụ toán thống kê vạn năng được áp dụng rất hiệuquả khi xử lý thông tin từ các ma trận số liệu quan trắc
3.1.3 Ưu điểm của phương pháp Phân tích thành phần chính
- Giảm số chiều của không gian chứa dữ liệu khi nó có số chiều lớn
- Xây dựng những trục tọa độ mới, thay vì giữ lại các trục của không gian cũ, nhưng lại có khả năng biểu diễn dữ liệu tốt tương đương, và đảm bảo độ biến thiên của dữ liệu trên mỗi chiều mới
- Tạo điều kiện để các liên kết tiềm ẩn của dữ liệu có thể được khám phá trong không gian mới, mà nếu đặt trong không gian cũ thì khó phát hiện vì những liên kết này không thể hiện rõ
Trang 10- Đảm bảo các trục tọa độ trong không gian mới luôn trực giao đôi một với nhau, mặc
dù trong không gian ban đầu các trục có thể không trực giao
3.1.4 Nhược điểm của phương pháp Phân tích thành phần chính
- Khiến các biến độc lập trở nên khó hiểu
- Phải chuẩn hóa dữ liệu trước khi thực hiện
- Có thể gây mất thông tin
- PCA rất nhạy cảm với nhiễu
- Không phù hợp với các tập dữ liệu nhỏ
3.1.5 Một số khái niệm cơ bản liên quan
- Độ lệch chuẩn (Standard Deviation) là một đại lượng thống kê dùng để đo mức độ phân tán của một tập dữ liệu 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 Nếu sự chênh lệch không đáng kể thì độ lệch chuẩn
và tính biến động ở mức thấp và ngược lại
- Giá trị kỳ vọng hay giá trị trung bình (mean) là trung bình có trọng số của tất cả các giá trị cụ thể của biến đó
- Phương sai (variance) là giá trị kỳ vọng của bình phương của độ lệch của X so với giá trị trung bình của nó Nói chung, phương sai là "trung bình của bình phươngkhoảng cách của mỗi điểm dữ liệu tới điểm trung bình"
- Ma trận hiệp phương sai của tập hợp m biến ngẫu nhiên là một ma trận vuông hạng (mm), trong đó các phần tử nằm trên đường chéo lần lượt là phương sai tương ứng của các biến này, trong khi các phần tử còn lại là các hiệp phương sai của đôi một hai biến ngẫu nhiên khác nhau trong tập hợp
- Trị riêng và vectơ riêng:
Cho Số được gọi là trị riêng của ma trận nếu tồn tại vectơ khác sao cho được gọi
là vectơ riêng của ma trận tương ứng với giá trị riêng
- Chéo hóa ma trận: Ma trận vuông gọi là chéo hoá được nếu tồn tại ma trận đường chéo và ma trận khả nghịch sao cho
Trang 113.1.6 Các bước phân tích thành phần chính
- Bước 1: Tính giá trị trung bình của
- Bước 2:
+ Tính vectơ
+ Tính ma trận hiệp phương sai:
- Bước 3: Tìm trị riêng của và sắp xếp theo giá trị giảm dần và tìm các vectơ riêng đơn vị ứng với các trị riêng
- Bước 4: Chọn trị riêng ban đầu và vectơ riêng đơn vị ứng với các trị riêng này Lập
ma trận có các cột là các vectơ riêng đã chọn Ma trận là phép biến đổi cần tìm
- Bước 5: Tính ảnh của vectơ
Dữ liệu 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
Lưu ý
- Ma trận là ma trận đối xứng thực và các trị riêng của là các số không âm
- Ma trận luôn chéo hóa trực giao được:
+ Trên đường chéo của là phương sai của các vectơ Phần tử là hiệp phương sai của và
+ Tổng các phần tử trên đường chéo của là phương sai của bảng dữ liệu Giả sử Trên đường chéo của là các trị riêng của
- Ma trận là ma trận trực giao Mỗi trực giao tương ứng với một phép quay
+ Các cột của ma trận tạo nên hệ trực chuẩn Nếu ta chọn cơ sở trực chuẩn là họ vectơ cột của ma trận thì ta xây dựng được hệ trục tọa độ mới dựa trên các vectơ này
và có một phép quay từ hệ trục tọa độ ban đầu sang hệ trục tọa độ mới
- Nếu dữ liệu mẫu (sample data) thì
- Nếu dữ liệu dân số (population data) thì
Trang 123.2 ỨNG DỤNG
Phân tích thành phần chính được ứng dụng rộng rãi trong nhiều lĩnh vực chuyên môn như: kinh tế, sinh học, kỹ thuật,…
- Kinh tế: Sử dụng trong tính toán, dự đoán vĩnh vực chứng khoán cổ phiếu,…
- Sinh học: Thống kế và phân loại các mã gen tế bào phức tạp,…
- Kỹ thuật: Sử dụng trong các thuật toán hiện đại như: nhận diện khuôn mặt,…
CHƯƠNG 4 ỨNG DỤNG CỦA PHÂN TÍCH THÀNH PHẦN CHÍNH TRONG GIẢM CHIỀU DỮ LIỆU
- Giảm chiều dữ liệu có thể được sử dụng cho giảm nhiễu (noise reduction), trực quan hóa dữ liệu (data visualization), phân tích cụm, hoặc là một bước trung gian để tạo điều kiện thuận lợi cho các phân tích khác
- Giảm chiều dữ liệu có ứng dụng phổ biến trong các lĩnh vực có số lượng quan sát lớn
và số lượng biến lớn, chẳng hạn như xử lí tín hiệu, nhận dạng tiếng nói, thông tin học thần kinh, và tin sinh học
- Ví dụ: Khi chúng ta có một tập dữ liệu lớn thành ma trận 3001000, tức là chúng ta có
1000 chiều (số cột) và khi chúng ta sử dụng phân tích thành phần chính thì sẽ thành
300800, 30010, Chọn các vectơ riêng ứng với các trị riêng lớn nhất
Trang 13CHƯƠNG 5 GIẢI BÀI TOÁN PCA BẰNG MATLAB 5.1 ĐOẠN CODE MATLAB CHẠY CHƯƠNG TRÌNH
function[]=PCAt(X)
disp('Ma tran Input:');
X = rand(5,3);
disp([X]);
Xm=mean(X);
C=cov(X);
[V,e]=eig(C);
for i=1:size(e,1)
for j=1:size(e,1)
if e(i,j)~=0
E(i)=e(i,j);
end
end
end
K=input('Chon gia tri K = ');
j=1;
for i=size(V,2):-1:K
A(:,j)=V(:,i);
j=j+1;
end
Y=(X-Xm)*A;
disp('Ma tran Output da giam chieu:');
disp([Y]);
5.2 VÍ DỤ
Ví dụ 1: Cho ma trận ban đầu (53)
0.4898 0.2760 0.4984
0.4456 0.6797 0.9597
0.6463 0.6551 0.3404
0.7094 0.1626 0.5853
0.7547 0.1190 0.2238
Trang 14Biểu diễn ma trận như hình sau:
Hình 5.1: Biểu diễn ma trận ban đầu
Dùng code để giảm xuống hai chiều ta được ma trận:
-0.0436 -0.0728
0.5522 -0.0660
0.0349 0.3301
-0.1229 -0.1972
-0.4206 0.0059
Biểu diễn ma trận như hình sau:
Hình 5.2: Biểu diễn ma trận đã giảm chiều
Trang 15Ví dụ 2: Cho ma trận 109
0.5557 0.1662 0.4024 0.8711 0.2992 0.1249 0.2405 0.2122 0.7027 0.1844 0.6225 0.9828 0.3508 0.4526 0.0244 0.7639 0.0985 0.1536 0.2120 0.9879 0.4022 0.6855 0.4226 0.2902 0.7593 0.8236 0.9535 0.0773 0.1704 0.6207 0.2941 0.3596 0.3175 0.7406 0.1750 0.5409 0.9138 0.2578 0.1544 0.5306 0.5583 0.6537 0.7437 0.1636 0.6797 0.7067 0.3968 0.3813 0.8324 0.7425 0.9569 0.1059 0.6660 0.0366 0.5578 0.0740 0.1611 0.5975 0.4243 0.9357 0.6816 0.8944 0.8092 0.3134 0.6841 0.7581 0.3353 0.4294 0.4579 0.4633 0.5166 0.7486
Dùng code để giảm xuống thành 3 chiều ta được:
0.0102 -0.2317 0.2995
-0.8658 -0.3372 -0.1780
-0.1856 0.7779 -0.2182
-0.4413 -0.1373 0.2830
0.3793 -0.1531 0.4154
0.6830 -0.4475 -0.5933
0.6853 0.3136 0.1817
-0.2652 0.2152 -0.1902
Kết quả:
Hình 5.3: Kết quả sau khi giảm chiều
Trang 16CHƯƠNG 6 KẾT LUẬN
- Mục đích của phân tích thành phần chính là rút ra thông tin chủ yếu chứa trong bảng
số liệu bằng cách xây dựng một biểu diễn đơn giản hơn sao cho đám mấy số liệu được thể hiện rõ nhất Cụ thể hơn, phân tích thành phần chính tức là đi tìm những trục hay mặt phẳng “phản ánh” tốt nhất, trung thực nhất đám mây điểm -biến, điểm - cá thể
- PCA giúp giảm số chiều dữ liệu khi dữ liệu có quá nhiều chiều thông tin Do dữ liệu ban đầu có số chiều lớn (nhiều biến) thì PCA giúp chúng ta xoay trục tọa độ xây một trục tọa độ mới đảm bảo độ biến thiên của dữ liệu và giữ lại được nhiều thông tin nhất
mà không ảnh hưởng tới chất lượng của các mô hình dự báo Trong không gian mới,
có thẻ giúp chúng ta khám phá thêm những thông tin quý giá mới khi mà tại chiều thông tin cũ những thông tin quý giá này bị che mất