Phương pháp phân tích thành phần chính PCA là phương pháp biến đổi từ một không gian nhiều chiều thành một không gian mới ít chiều, cụ thể là giảm chiều dữ liệu từ D về K < D là chỉ giữ
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 3LỚP: L14
SINH VIÊN THỰC HIỆN
Trang 4MỤC LỤC
Trang
MỤC LỤC 2
LỜI MỞ ĐẦU 3
LỜI CẢM ƠN 3
NỘI DUNG 4
CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 4
1.1 Sơ lược về Dimensionality Reduction (giảm chiều dữ liệu) 4
1.2 Yêu cầu 5
1.3 Điều kiện 5
1.4 Nhiệm vụ 6
CHƯƠNG 2 PHƯƠNG PHÁP PCA VÀ CƠ SỞ LÝ THUYẾT 7
2.1 Phương pháp phân tích thành phần chính (PCA) là gì ? 7
2.2 Cơ sở toán học của PCA 7
2.3 Phân tích về PCA 10
2.4 Các bước phân tích tiến hành PCA 13
CHƯƠNG 3 ỨNG DỤNG THỰC TẾ 15
3.1 Một số ứng dụng trong thực tế 15
3.2 Code Matlab (Python) VD 16
CHƯƠNG 4 KẾT LUẬN 21
TÀI LIỆU THAM KHẢO 21
Trang 5LỜI MỞ ĐẦU
Ứng dụng Phân tích thành phần chính (PCA : Principal Component Analysis) trong giảm chiều dữ liệu (Dimensionality Reduction) là một đề tài hay và thú vị mang giá trị nghiên cứu và học tập cao Cùng với sự yêu thích bộ môn Đại số tuyến tính cũng như mong muốn tìm tòi học hỏi là lý do nhóm em quyết định thực hiện đề tài này
Đề tài được yêu cầu giải quyết các thông số dữ liệu và biểu diễn chúng 1 cách trực quan Để có thể thực hiện tốt các tiêu chí đề ra nhóm em cần tìm hiểu về những kiến thức nền tảng về PCA trong Machine Learning và liên hệ với những ứng dụng thực tế Song song với đó cũng cần vận dụng những kiến thức đã được các thầy cô giảng dạy để có thể hoàn thành đề tài một cách tốt nhất
Sau khi thực hiện đề tài, nhóm 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ế Cũng góp phần cũng cố kiến thức nền tảng về chuyên đề Phân tích thành phần chính Bên cạnh đó cũng giúp chúng em phát huy khả năng làm việc nhóm, xử
lí thông tin và dữ liệu, nâng cao hiểu biết về sử dụng công nghệ thông tin trong học tập và công việc sau này
LỜI CẢM ƠN
Trong suốt quá trình thực hiện bài tiểu luận, nhóm chúng tôi đã nhận được nhiều
sự quan tâm, ủng hộ, giúp đỡ tận tình của thầy cô và bạn bè Nhóm xin gửi lời cảm ơn đến tất cả mọi người Đặc biệt là thầy Nguyễn Hữu Hiệp, là giảng viên hướng dẫn cho đề tài lần này
Đồng thời do kiến thức còn hạn hẹp, kinh nghiệm thực tiễn vẫn còn nhiều thiếu sót mong thầy góp ý để nhóm có thể hoàn thiện đề tài tốt hơn cho lần sau
Trang 6NỘI DUNG
CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI
1.1 Sơ lược về Dimensionality Reduction (giảm chiều dữ liệu)
Dimensionality Reduction (giảm chiều dữ liệu), là một trong những kỹ thuật quan trọng trong Machine Learning Các feature vectors trong các bài toán thực tế có thể có số chiều rất lớn, tới vài nghìn Ngoài ra, số lượng các điểm dữ liệu cũng thường rất lớn Nếu thực hiện lưu trữ và tính toán trực tiếp trên dữ liệu có số chiều cao này thì sẽ gặp khó khăn cả về việc lưu trữ và tốc độ tính toán Vì vậy, giảm số chiều dữ liệu là một bước quan trọng trong nhiều bài toán Đây cũng được coi là một phương pháp nén dữ liệu Dimensionality Reduction, nói một cách đơn giản, là việc đi tìm một hàm số, hàm số này lấy đầu vào là một điểm dữ liệu ban đầu x ∈ RD với D rất lớn, và tạo ra 1 điểm dữ liệu mới z ∈ RK có số chiều K < D Tuy nhiên, giảm chiều dữ liệu gặp nhiều khó khăn vì chúng ta chưa biết xác định thành phần nào là quan trọng hơn Hoặc trong trường hợp xấu nhất, lượng thông tin mà mỗi thành phần mang là như nhau, bỏ đi thành phần nào cũng dẫn đến việc mất một lượng thông tin lớn
Để giải quyết vấn đề này, một trong những hương pháp đơn giản nhất trong các thuật toán Dimensionality Reduction dựa trên một mô hình tuyến tính, có tên là Principal Component Analysis (PCA), tức Phân tích thành phần chính Phương pháp này dựa trên quan sát rằng dữ liệu thường không phân bố ngẫu nhiên trong không gian mà thường phân bố gần các đường hoặc mặt đặc biệt nào đó
Trang 7Khi chuẩn hóa dữ liệu, mẫu dữ liệu được vector hóa và hãy thử tưởng tượng chúng
ta có 1 mẫu với 3 thông số, vậy là tương đương với 3 chiều Nếu chúng ta có thể nén nó lại thì việc trực quan hóa dữ liệu sẽ đơn giản hơn rất nhiều
Hình 1.1 Hình ảnh minh họa việc nén data từ 3 thông số thành 2 thông số
Dựa vào sự tuyến tính cùng nhau giữa các thông số Chúng ta có thể nén dữ liệu xuống để làm việc được tốt hơn Khi biết lợi ích từ việc nén dữ liệu, ta cần biết cách thực hiện nó.Sau đây chúng ta sẽ tìm hiểu một thuật toán để thực hiện nén dữ liệu Đó là PCA
1 Sinh viên cần có kiến thức về bộ môn Đại số tuyến tính nói chung và hiểu biết cơ bản
về phép phân tích thành phần chính trong Machine Learning nói riêng
2 Tìm hiểu các ứng dụng phân tích thành phần chính PCA thực tiễn
Trang 81.4 Nhiệm vụ
1 Tìm hiểu về cơ sở lý thuyết nền tảng của thuật toán PCA
2 Thực hành: Input là một file f tùy ý Số hóa file f Phân tích PCA Giảm chiều dữ liệu Đánh giá sai số
3 Sản phẩm: là một phần mềm (code Matlab, hoặc Python, ) có khả năng giảm chiều của một file dữ liệu tùy ý
Trang 9CHƯƠNG 2 PHƯƠNG PHÁP PCA VÀ CƠ SỞ LÝ
THUYẾT
2.1 Phương pháp phân tích thành phần chính (PCA) là gì ?
Phân tích thành phần chính PCA (Principal Components Analysis) là một trong những kỹ thuật quan trọng trong thống kê để xử lý dữ liệu nhiều chiều PCA được sử dụng rộng rãi trong nhiều lĩnh vực nghiên cứu như kinh tế, sinh học, hóa học, Đây là một phương pháp được sử dụng thường xuyên khi các nhà phân tích thống kê phải đối mặt với những bộ số liệu với số chiều lớn (big data)
Phương pháp phân tích thành phần chính PCA là phương pháp biến đổi từ một không gian nhiều chiều thành một không gian mới ít chiều, cụ thể là giảm chiều dữ liệu từ
D về K < D là chỉ giữ lại K là phần tử quan trọng nhất Đây là một phương pháp thống kê được sử dụng để giảm chiều dữ liệu trong các bộ dữ liệu có số lượng biến lớn, đồng thời giữ lại thông tin quan trọng nhất PCA hoạt động bằng cách chuyển đổi các biến ban đầu thành một tập hợp mới các biến (gọi là các thành phần chính) mà mỗi thành phần chính là một tổ hợp tuyến tính của các biến ban đầu Các thành phần chính được sắp xếp theo độ giảm dần của sự biến động, tức là thành phần đầu tiên giữ lại phần lớn biến động trong dữ liệu, thành phần thứ hai giữ lại phần biến động còn lại và tiếp tục như vậy PCA thường được sử dụng trong việc giảm chiều dữ liệu, phân tích các mối quan hệ giữa các biến, trực quan hóa dữ liệu và giảm nhiễu Từ đó chúng ta có thể triển khai các thuật toán nhanh hơn, giảm bớt dung lượng của dữ liệu và mô hình hóa dữ liệu, trực quan hóa để đánh giá cũng như lựa chọn thuật toán tương thích cho từng dữ liệu
Mục tiêu của chúng ta là tìm ra K chiều mà có thể đảm bảo rằng các dữ liệu khi được biểu diễn, không bị trùng lắp không bị mất mát thông tin (tách biệt nhau hoàn toàn)
2.2 Cơ sở toán học của PCA
• Kỳ vọng (mean)
Trang 10Là giá trị mong muốn, nó đơn giản là trung bình cộng của toàn bộ các giá trị khi cho n giá trị x1, x2,…, xn:
1
1 n
i i
n =
• Phương sai (variance)
Là trung bình cộng của bình phương khoảng cách từ mỗi điểm tới kỳ vọng, dùng
để đo độ biến thiên của một biến Phương sai càng nhỏ thì các điểm dữ liệu càng gần với
kỳ vọng, tức các điểm dữ liệu càng giống nhau, phương sai càng lớn thì ta nói dữ liệu càng có tính phân tán
2
1
11
n i i
X X n
=
• Hiệp phương sai (covariance)
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) Nếu 2 biến có xu hướng thay đổi cùng nhau (nghĩa là, khi một biến có giá trị cao hơn giá trị kỳ vọng thì biến kia có xu hướng cũng cao hơn giá trị kỳ vọng), thì hiệp phương sai giữa hai biến này có giá trị dương Mặt khác, nếu một biến nằm trên giá trị kỳ vọng còn biến kia có xu hướng nằm dưới giá trị kỳ vọng, thì hiệp phương sai của hai biến này có giá trị âm Nếu hai biến này độc lập với nhau thì giá trị bằng 0
1
1,
• Ma trận hiệp phương sai
Cho N điểm dữ liệu được biểu diễn bởi các vector cột x1, x2,…, xn, khi đó, vector
kỳ vọng và ma trận hiệp phương sai của toàn bộ dữ liệu được định nghĩa là:
1
1 n
i i
Trang 11Trong đó Xˆ được tạo bằng cách trừ mỗi cột của X đi X :
- Các phần tử ngoài đường chéo Sij (i≠j) thể hiện sự tương quan giữa thành phần thứ
i và thành phần thứ j của dữ liệu, còn được gọi là hiệp phương sai Giá trị này có thể dương, âm hoặc bằng 0 Khi nó bằng 0, ta nói rằng hai thành phần i, j trong dữ liệu là không tương quan (uncorrelated)
- Nếu ma trận hiệp phương sai là ma trận đường chéo, ta có dữ liệu hoàn toàn không tương quan giữa các chiều
- Minh hoạ ma trận hiệp phương sai:
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
• Trị riêng (eigenvalue), vector riêng (eigenvector) của ma trận hiệp phương sai:
- Cho một ma trận vuông AR m, nếu có vô số hướng và vector x 0 R n thoả
mãn Ax=x thì được gọi là một trị riêng của A và x được gọi là vector riêng tương ứng với trị riêng đó
- Trị riêng là nghiệm của phương trình đặc trưng: det(A−I)= 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
- Nếu x là một vector riêng của A ứng với thì kx k ( 0) cũng là vector riêng ứng với trị riêng đó
Trang 12- Mọi ma trận vuông bậc n đều có n trị riêng (kể cả lặp) và có thể là các số phức Với ma trận đối xứng, tất cả các trị riêng đều là các số thực
- Với ma trận xác định dương, tất cả các trị riêng của nó đều là các số thực dương Với ma trận nửa xác định dương, tất cả các trị riêng của nó đều là các số thực không âm
- Phương pháp giải tìm trị riêng, vector riêng:
• Giải phương trình đặc trưng det(A−I)=0 để tìm trị riêng
• Giải phương trình (A−I x) = tìm vector riêng tương ứng với mỗi trị riêng 0vừa tìm được
2.3 Phân tích về PCA
PCA 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
Ví dụ, chúng ta có 1000 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 PCA xoay chiều không gian cũ thành chiều không gian mới mà ở đó chỉ còn 10 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
Trang 13Hình 2.1 Hình ảnh minh họa cho PCA
Cùng là 1 chú lạc đà, tuy nhiên với các cách nhìn khác nhau (các trục thông tin khác nhau) thì ta lại có những cách thu nhận thông tin khác nhau từ đó cho ra những kết luận khác nhau
Hay nói cách khác, PCA chính là phương pháp đi tìm 1 hệ cơ sở mới sao cho thông tin dữ liệu chủ yếu tập trung ở 1 vài tọa độ 1 cách trực quan, phần còn lại chỉ mang một lượng nhỏ thông tin (để đơn giản trong tính toán, PCA sẽ tìm 1 hệ trực chuẩn làm cơ sở mới)
Hình bên dưới thể hiện sự chuyển đổi một dữ liệu 3 chiều sang 2 chiều khi sử dụng phương pháp PCA:
Hình 2.2 Sự chuyển đổi một dữ liệu 3 chiều sang 2 chiều khi sử dụng phương pháp PCA
Với dữ liệu cần phân tích ban đầu phụ thuộc nhiều biến, các biến này thường có tương quan với nhau nên sẽ bất lợi cho việc áp dụng các biến này để xây dựng các mô
Trang 14hình tính toán như hồi quy… và với số biến giải thích lớn chúng ta sẽ rất khó để có cái nhìn trực quan về dữ liệu Ví dụ, thị trường ta quan tâm có hàng ngàn mã cổ phiếu làm cách nào để khi quan sát dữ liệu từ hàng ngàn cổ phiếu này ta hình dung được xu hướng của toàn thị trường…
Phương pháp PCA sẽ biểu diễn dữ liệu đa chiều lên một không gian có cơ sở trực giao, tức nếu ta xem mỗi cơ sở trong không gian mới là một biến thì hình ảnh của dữ liệu gốc trong không gian mới này sẽ được biểu diễn thông qua các biến độc lập (tuyến tính) Vấn đề: nếu chuyển dữ liệu ban đầu sang không gian mới thì những thông tin đáng quan tâm của dữ liệu ban đầu liệu có bị mất? Để giải quyết vấn đề này phương pháp PCA sẽ tìm không gian mới với tiêu chí cố gắng phản ánh được càng nhiều thông tin gốc càng tốt,
và thước đo cho khái niệm “thông tin” ở đây là phương sai Một điểm hay nữa là: do các biến trong không gian mới độc lâp, nên ta có thể tính toán được tỷ lệ giải thích phương sai của từng biến mới đối với dữ liệu, điều này cho phép ta cân nhắc việc chỉ dùng số ít các biến để giải thích dữ liệu
Một số đặc tính của PCA:
• Giúp giảm số chiều dữ liệu - Giúp visualization 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 dựng 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 (Maximize the variability)
• Do PCA giúp tạo 1 hệ trục tọa độ mới nên về mặt ý nghĩa toán học, PCA giúp chúng
ta xây dựng những biến factor mới là tổ hợp tuyến tính của những biến ban đầu
• 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 (Điển hình cho ví dụ về chú lạc đà phía trên)
Một số hạn chế của PCA :
Trang 15• Chỉ làm việc với dữ liệu numeric
• Nhạy cảm với các điểm outlier (điểm dị biệt có thể làm méo mó tính chất chuẩn hóa chung của dữ liệu)
• Không phù hợp với mô hình phi tuyến, do PCA hoàn toàn dựa trên các biến đổi tuyến tính
2.4 Các bước phân tích tiến hành PCA
Phương pháp PCA sẽ "chiếu" (biểu diễn) dữ liệu đa chiều lên một không gian có
cơ sở trực giao thức, nếu ta xem mỗi cơ sở trong không gian mới là một biến thì hình ảnh của dữ liệu gốc trong không gian mới này sẽ được biểu diễn thông qua các biến độc lập tuyến tính Vấn đề là nếu chuyển dữ liệu ban đầu sang không gian mới thì những thông tin đáng quan tâm của dữ liệu ban đầu liệu có bị mất? Để giải quyết vấn đề này phương pháp PCA sẽ tìm không gian mới với tiêu chí cố gắng phản ánh được càng nhiều thông tin gốc càng tốt và thước đo cho khái niệm "thông tin" ở đây là phương sai Một điểm hay nữa là các biến trong không gian mới độc lập nên ta có thể tính toán được tỷ lệ giải thích phương sai của từng biến mới đối với dữ liệu điều này cho phép ta cân nhắc việc chỉ dùng
số ít các biến để giải thích dữ liệu Nói 1 cách ngắn gọn, mục tiêu của phương pháp PCA
là tìm 1 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 dữ liệu là lớn nhất có thể (maximize the variability)
Bước 1 Tính giá trị trung bình X của X
Bước 2 Tính véctơ: Xˆ = −X X
Tính ma trận hiệp phương sai: 1 ˆ ˆT
S XX n
=
Bước 3 Tìm trị riêng của S và sắp xếp theo giá trị giảm dần λ1 > λ2 > ⋯ > λm và tìm
các véctơ riêng đơn vị ứng với các trị riêng
Trang 16Bước 4 Chọn k trị riêng ban đầu và k véctơ 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 véctơ riêng đã chọn Ma trận A là phép biến đổi cần tìm
• Ma trận S là ma trận đối xứng thực và các trị riêng của S là các số thực không âm
• Ma trận S luôn chéo hóa trực giao được
• Trên đường chéo của S là phương sai của các véctơ x1; x2; ; xn
Phần tử sij là hiệp phương sai của xi và xj
Tổng các phần tử trên đường chéo của S là phương sai của bảng dữ liệu
Giả sử S = PDPT, Trên đường chéo của D là các giá trị riêng của S
Tổng các giá trị riêng của S bằng tổng các phần tử của S (bằng vết của S)
• Ma trận P là ma trận trực giao Mỗi ma trận trực giao tương ứng với một phép quay Các cột của ma trận P tạo nên hệ trực chuẩn Nếu ta chọn cơ sở trực chuẩn là họ véctơ cột của ma trận P, thì ta xây dựng được hệ trục tọa độ mới dựa trên các véctơ này và
có một phép quay từ hệ trục ban đầu sang hệ trục tọa độ mới
• Nếu dữ liệu mẫu (sample data), thì 1 ˆ ˆ
S XX n
=