Chuyên mục

0. DỰ ÁN (16)1. ỨNG DỤNG TOÁN HỌC (384)2. TÀI CHÍNH & KINH TẾ (744)3. PHẦN MỀM TOÁN HỌC (62)4. GIÁO DỤC & NCKH (191)5. TÀI LIỆU (59)

Bài & Trang được đáng chú ý

Bài viết mới

Phương pháp Phân tích thành phần chính (Principal Component Analysis – PCA)

“Principal component analysis (PCA) is a statistical procedure that uses an orthogonal transformation to convert a set of observations of possibly correlated variables into a set of values of linearly uncorrelated variables called principal components. The number of principal components is less than or equal to the number of original variables.”

Phân tích thành phần chính (Principal Component Analysis – PCA) là một trong những phương pháp phân tích dữ liệu nhiều biến đơn giản nhất. Phần 1 của bài này sẽ nói về động lực và ý tưởng chính của PCA, sau đó trình bày từng bước trong thuật toán PCA. Như thường lệ, để hiểu thuật toán thì cài đặt là cách tốt nhất, do đó một đoạn mã MATLAB minh họa từng bước trong PCA cũng được trình bày. Phần cuối cùng là chi tiết các khai triển Toán học trong PCA. Do mục tiêu ứng dụng nên các phương trình cụ thể được để dành đến phần này, người đọc nếu thật sự quan tâm nguyên lí của PCA, tại sao PCA lại sử dụng những công thức như thế v.v… thì có thể tham khảo phần này để biết thêm chi tiết.

Đang xem: Phân tích thành phần chính pca

1. Giới thiệu

Như đã nói trong bài trước, trong thống kê, thông thường cần phải “nghiên cứu” dữ liệu trước khi xây dựng các mô hình suy diễn dựa trên dữ liệu đó. Tuy nhiên đôi khi dữ liệu có số chiều lớn, không thể visualize (không biết dịch là gì) trong không gian 2 hay 3 chiều, 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 giống như một Swiss knife với nhiều đặc tính tốt:

Giúp giảm số chiều của dữ liệu,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ũ, do đó về mặt ngữ nghĩa, PCA xây dựng feature mới dựa trên các feature đã quan sát được. Điểm hay là những feature này vẫn biểu diễn tốt dữ liệu ban đầu.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, hoặc những liên kết như thế không thể hiện rõ.

Nói một cách ngắn gọn, mục tiêu của 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ể. Tiếng Việt thì dài dòng, nhưng tiếng Anh thì mục tiêu này gọi là maximize the variability. Ba chữ này gói gọn ý tưởng chính của PCA.

*

Minh họa PCA: phép chiếu lên các trục tọa độ khác nhau có thể cho cách nhìn rất khác nhau về cùng một dữ liệu.

Một ví dụ kinh điển là hình ảnh về con lạc đà. Cùng là một con lạc đà nhưng nếu nhìn từ bên hông thì ta có được đầy đủ thông tin nhất, trong khi nhìn từ phía trước thì thật khó để nói nó là lạc đà.

Một ví dụ thuyết phục hơn được minh họa trong hình sau

*

Minh họa PCA: tìm các trục tọa độ mới sao cho dữ liệu có độ biến thiên cao nhất

Giả sử tập dữ liệu ban đầu (tập điểm màu xanh) được quan sát trong không gian 3 chiều (trục màu đen) như hình bên trái. Rõ ràng 3 trục này không biểu diễn được tốt nhất mức độ biến thiên của dữ liệu. PCA do đó sẽ tìm hệ trục tọa độ mới (là hệ trục màu đỏ trong hình bên trái). Sau khi tìm được không gian mới, dữ liệu sẽ được chuyển sang không gian này để được biểu diễn như trong hình bên phải. Rõ ràng hình bên phải chỉ cần 2 trục tọa độ nhưng biểu diễn tốt hơn độ biến thiên của dữ liệu so với hệ trục 3 chiều ban đầu.

Một điểm rất đẹp nữa của PCA là các trục tọa độ trong không gian mới luôn đảm bảo 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.

Dài dòng như vậy là đủ, ta sẽ trình bày từng bước thuật toán PCA trong phần tới. Chi tiết về ý tưởng và khai triển toán học được dành lại để trình bày ở cuối bài.

Xem thêm:

2. Thuật toán PCA

Cho ma trận 

*

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

1. Tiền xử lí

Dữ liệu ban đầu có thể có giá trị thay đổi bất thường. Ví dụ trên feature 1 (cột 1 của

*

) giá trị thay đổi trong khoảng (0, 1), trên feature 2 lại biến thiên trong đoạn (-100, 100). Rõ ràng 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 là Centered PCA và Normed PCA.

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

*

,

*

, (1a)

*

.

Trong đó n là số dòng của X

*

 là mean của cột thứ j của X, được tính như trên.

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 standard-deviation bằng 1:

*

,

*

. (1b)

Trong đó 

*

 là độ lệch chuẩn (standard deviation) của cột thứ j trong X.

Thông thường Normed PCA hay được dùng. Sau bước tiền xử lí, ma trận 

*

 sẽ là đầu vào cho bước tiếp theo.

2. Xây dựng không gian mới

Tính ma trận hiệp phương sai (covariance) của các feature trong 

*

:

*

(2)

Do là tích của ma trận 

*

 với chuyển vị của nó nên 

*

 là ma trận positive semidefinite kích thước 

*

. Hơn nữa 

*

có p trị riêng 

*

.

Tiếp theo, PCA tìm trị riêng và vector riêng tương ứng của 

*

, sắp xếp theo thứ tự giảm dần của trị riêng. Giả sử p trị riêng của V là

*

, (3)

và p vector riêng tương ứng là

*

. (4)

Khi đó các trục của không gian mới chính là các vector riêng 

*

 ở trên, đương nhiên các vector riêng hoàn toàn độc lập tuyến tính (nghĩa là trực giao đôi một).

Có thể nói trong PCA, trị riêng và vector riêng có vị trí rất đẹp, thỏa mãn tất cả các yêu cầu của PCA. Bản thân tôi khi đọc đến phần này cũng thấy bất ngờ vì lời giải cho PCA không gì khác lại hoàn toàn trọn vẹn trong trị riêng và vector riêng. Tuy nhiên tại thời điềm này, ta sẽ chấp nhận như vậy. Phần cơ sở Toán học ở cuối bài sẽ giải thích tại sao trị riêng và vector riêng lại xuất hiện (có phần bất ngờ) trong PCA như vậy.

Xem thêm: Dẫn Chứng Về Cho Và Nhận (15 Mẫu), Nghị Luận Về Cho Và Nhận (15 Mẫu)

3. Chuyển dữ liệu từ không gian ban đầu vào không gian mới

Thông thường không gian mới không được xây dựng bằng tất cả p vector riêng trong (4), mà thông thường chỉ từ k vector riêng đầu tiên, với k here.

Leave a Reply

Your email address will not be published. Required fields are marked *