Phân tích thành phần chính, hay PCA, biến nhiều biến số thành một tập nhỏ hơn gồm các biến mới nhưng vẫn giữ lại nhiều biến thiên nhất có thể. Nếu bạn tìm "PCA là gì", câu trả lời ngắn gọn là: nó xoay dữ liệu sang một hệ trục mới, rồi giữ lại các trục giải thích độ phân tán lớn nhất.

Các trục mới đó được gọi là các thành phần chính. Trong PCA chuẩn, thành phần thứ nhất nắm bắt phương sai lớn nhất có thể, thành phần thứ hai nắm bắt phần phương sai còn lại lớn nhất nhưng vẫn trực giao với thành phần thứ nhất, và các thành phần sau tiếp tục theo đúng quy luật đó.

PCA Đang Cố Tìm Điều Gì

Hãy tưởng tượng một đám mây điểm trong không gian nhiều chiều. PCA tìm các hướng mà theo đó đám mây điểm này trải rộng nhiều nhất.

Nếu phần lớn độ phân tán xảy ra theo một hoặc hai hướng, dữ liệu có thể được tóm tắt tốt chỉ bằng một hoặc hai thành phần chính thay vì toàn bộ tập biến ban đầu. Đó là lý do PCA được dùng để giảm chiều, trực quan hóa, nén dữ liệu và tiền xử lý.

Với dữ liệu đã được chuẩn hóa tâm, thành phần chính thứ nhất giải bài toán

maximize Var(Xw)subject to w=1,\text{maximize } \mathrm{Var}(Xw) \quad \text{subject to } \|w\| = 1,

trong đó XX là ma trận dữ liệu đã được chuẩn hóa tâm và ww là một vectơ hướng.

Điều kiện chuẩn hóa tâm rất quan trọng. Nếu không chuẩn hóa tâm, các hướng được chọn có thể bị chi phối bởi mức trung bình của các biến thay vì bởi cách dữ liệu biến thiên quanh mức trung bình đó.

Cách Tính PCA

Quy trình chuẩn khá ngắn:

  1. Đặt các quan sát theo hàng và các biến theo cột.
  2. Chuẩn hóa tâm từng biến bằng cách trừ đi giá trị trung bình của nó.
  3. Nếu các biến dùng đơn vị rất khác nhau và không muốn thang đo chi phối kết quả, hãy chuẩn hóa chúng thêm.
  4. Tính ma trận hiệp phương sai của dữ liệu đã được chuẩn hóa tâm.
  5. Tìm các vectơ riêng và giá trị riêng của ma trận đó.

Các vectơ riêng cho ta các hướng chính. Các giá trị riêng cho biết mỗi hướng giải thích bao nhiêu phương sai.

Bạn cũng sẽ thấy PCA được tính bằng phân rã giá trị kỳ dị, hay SVD. Với dữ liệu đã được chuẩn hóa tâm, cách này cho cùng các không gian con chính và thường là phương pháp số được ưu tiên trong thực tế.

Ví Dụ PCA Trong 2D

Xét ba quan sát 2D:

(1,1),(2,2),(3,3).(1,1), \quad (2,2), \quad (3,3).

Các điểm này nằm đúng trên đường thẳng y=xy=x, nên ta đã có thể dự đoán sẽ có một hướng trội.

Trước hết, chuẩn hóa tâm dữ liệu bằng cách trừ đi trung bình (2,2)(2,2):

(1,1),(0,0),(1,1).(-1,-1), \quad (0,0), \quad (1,1).

Với bộ dữ liệu đã được chuẩn hóa tâm này, ma trận hiệp phương sai tỉ lệ với

(1111).\begin{pmatrix} 1 & 1 \\ 1 & 1 \end{pmatrix}.

Hai hướng vectơ riêng trực giao của nó là

12(1,1)and12(1,1).\frac{1}{\sqrt{2}}(1,1) \quad \text{and} \quad \frac{1}{\sqrt{2}}(1,-1).

Hướng thứ nhất nằm dọc theo đường mà dữ liệu thực sự biến thiên. Hướng thứ hai vuông góc cắt qua đường đó.

Chiếu các điểm đã được chuẩn hóa tâm lên hướng thứ nhất:

(1,1)2,(0,0)0,(1,1)2.(-1,-1) \mapsto -\sqrt{2}, \quad (0,0) \mapsto 0, \quad (1,1) \mapsto \sqrt{2}.

Chiếu chúng lên hướng thứ hai:

(1,1)0,(0,0)0,(1,1)0.(-1,-1) \mapsto 0, \quad (0,0) \mapsto 0, \quad (1,1) \mapsto 0.

Vì vậy, toàn bộ biến thiên nằm dọc theo 12(1,1)\frac{1}{\sqrt{2}}(1,1), và không có biến thiên nào dọc theo 12(1,1)\frac{1}{\sqrt{2}}(1,-1). Trong trường hợp đặc biệt này, một thành phần chính là đủ để giữ lại toàn bộ mẫu biến thiên chỉ với một con số cho mỗi điểm.

Đó là PCA ở dạng đơn giản nhất. Nó xoay hệ tọa độ để khớp với dữ liệu, rồi hỏi xem nên giữ lại những tọa độ đã xoay nào.

Thành Phần Chính Có Ý Nghĩa Gì

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.

Nếu thành phần thứ nhất có dạng

z1=0.7x1+0.7x2,z_1 = 0.7x_1 + 0.7x_2,

thì điều đó có nghĩa là hướng biến thiên chính gần như là sự kết hợp với trọng số bằng nhau của hai biến đầu tiên. Cách diễn giải chính xác còn phụ thuộc vào các biến và vào việc dữ liệu chỉ được chuẩn hóa tâm hay còn được chuẩn hóa thang đo.

Các score là tọa độ của từng quan sát sau khi được chiếu lên các hướng chính. Các loading mô tả mức độ đóng góp của từng biến gốc vào một thành phần.

Những Sai Lầm Thường Gặp Khi Dùng PCA

Bỏ Qua Bước Chuẩn Hóa Tâm

PCA chuẩn thường được áp dụng cho dữ liệu đã được chuẩn hóa tâm. Nếu bạn bỏ qua bước này, kết quả có thể phản ánh mức trung bình của các biến nhiều hơn là phần biến thiên mà bạn thực sự quan tâm.

Bỏ Qua Thang Đo

Nếu một biến được đo bằng đô la còn biến khác được đo bằng milimét, biến có thang đo lớn hơn có thể chi phối phép tính phương sai. Việc chuẩn hóa thường là hợp lý khi đơn vị khác nhau và thang đo tương đối không nên quyết định kết quả.

Nghĩ Rằng PCA Tìm Ra Đặc Trưng Có Ý Nghĩa Nhất

PCA tìm các hướng có phương sai lớn, chứ không nhất thiết là các hướng có ý nghĩa nhân quả tốt nhất hay tách lớp tốt nhất. Phương sai lớn và mức độ hữu ích cao không phải lúc nào cũng là một.

Coi Phép Chiếu Xuống Không Gian Thấp Chiều Là Không Mất Mát

Chỉ giữ lại vài thành phần đầu là một phép xấp xỉ. Nó có thể rất tốt, nhưng vẫn loại bỏ một phần thông tin trừ khi các thành phần còn lại có phương sai đúng bằng 0.

Khi Nào PCA Hữu Ích

PCA thường được dùng khi các biến có tương quan và bạn muốn một cách biểu diễn dữ liệu đơn giản hơn.

Các ứng dụng điển hình gồm:

  • giảm số lượng đặc trưng đầu vào trước khi xây dựng mô hình
  • trực quan hóa dữ liệu nhiều chiều trong hai hoặc ba chiều
  • nén các phép đo nhưng vẫn giữ lại phần lớn phương sai
  • nhận diện các mẫu trội trong tài chính, sinh học, phân tích ảnh và xử lý tín hiệu

Phương pháp này hữu ích nhất khi cấu trúc dựa trên phương sai là một cách tóm tắt hợp lý cho bài toán.

Thử Một Bài Tương Tự

Hãy vẽ các điểm (1,2)(1,2), (2,3)(2,3), (3,4)(3,4), và (4,5)(4,5). Chuẩn hóa tâm chúng, rồi so sánh độ phân tán theo các hướng (1,1)(1,1)(1,1)(1,-1). Bài tập nhỏ này sẽ cho thấy rõ vì sao PCA chọn một hướng là quan trọng và xem hướng kia là phần lớn dư thừa.

Nếu muốn đi thêm một bước, hãy tự thử với các điểm không nằm hoàn toàn trên một đường thẳng và so sánh lượng phương sai mà thành phần thứ nhất giải thích với lượng mà thành phần thứ hai giải thích.

Cần trợ giúp giải bài?

Tải câu hỏi lên và nhận lời giải từng bước đã được xác minh trong vài giây.

Mở GPAI Solver →