Từ điển học thuật Khoa học tự nhiên

Phân tích thành phần chính là gì? Định nghĩa và ứng dụng

Tiếng Anhprincipal component analysis

Tên gọi khácPCAprincipal component analysisgiảm số chiều dữ liệuphân rã giá trị suy biếntrực giao hóa

Phân tích thành phần chính là một kỹ thuật biến đổi thống kê trực giao nhằm giảm số chiều của tập dữ liệu đa biến lớn bằng cách biến đổi các biến ban đầu có tương quan thành một tập hợp các biến mới không tương quan tuyến tính gọi là các thành phần chính.

205 lượt xem Cập nhật 4/9/2026

Phân tích thành phần chính (principal component analysis) là một kỹ thuật biến đổi thống kê trực giao nhằm giảm số chiều của tập dữ liệu đa biến lớn bằng cách biến đổi các biến ban đầu có tương quan thành một tập hợp các biến mới không tương quan tuyến tính gọi là các thành phần chính.

Giới thiệu về Phân tích thành phần chính (PCA)

Phân tích thành phần chính (Principal Component Analysis - PCA) là một phương pháp toán học dùng để biến đổi dữ liệu nhiều chiều thành dạng ít chiều hơn, đồng thời giữ lại phần lớn thông tin quan trọng. Đây là một trong những kỹ thuật giảm chiều phổ biến nhất trong lĩnh vực thống kê, khai phá dữ liệu (data mining) và học máy (machine learning).

Mục đích của PCA không phải là xóa bỏ thông tin mà là tái cấu trúc dữ liệu sao cho những chiều quan trọng nhất được giữ lại dưới dạng các biến mới – gọi là các thành phần chính. Những thành phần này là các tổ hợp tuyến tính của các biến gốc, được sắp xếp theo thứ tự giảm dần về độ biến thiên mà chúng giải thích trong dữ liệu.

Trong thực tế, PCA thường được áp dụng trong các tình huống như:

  • Phân tích dữ liệu biểu hiện gen trong nghiên cứu sinh học.
  • Phát hiện đặc trưng hình ảnh trong thị giác máy tính.
  • Rút gọn dữ liệu đầu vào để tăng hiệu suất của mô hình học máy.
  • Phát hiện bất thường trong dữ liệu tài chính hoặc y tế.

Nguyên lý hoạt động của PCA

Về mặt toán học, PCA dựa trên việc phân tích ma trận hiệp phương sai của tập dữ liệu để xác định hướng mà dữ liệu có phương sai lớn nhất. Những hướng này chính là các vectơ riêng (eigenvectors) của ma trận, và độ lớn của phương sai trên mỗi hướng được đo bởi giá trị riêng (eigenvalues) tương ứng. Các vectơ riêng được sắp xếp theo thứ tự giảm dần của giá trị riêng, và các vectơ đầu tiên được chọn làm thành phần chính.

Để minh họa, giả sử ta có một tập dữ liệu với các đặc trưng x1,x2,...,xpx_1, x_2, ..., x_p. Sau khi chuẩn hóa dữ liệu, ta tính ma trận hiệp phương sai C\mathbf{C} theo công thức:

C=1n1i=1n(xixˉ)(xixˉ)T\mathbf{C} = \frac{1}{n-1} \sum_{i=1}^n (\mathbf{x}_i - \bar{\mathbf{x}})(\mathbf{x}_i - \bar{\mathbf{x}})^T

Sau đó, ta giải bài toán giá trị riêng: Cv=λv\mathbf{C}\mathbf{v} = \lambda\mathbf{v}, trong đó v\mathbf{v} là vectơ riêng và λ\lambda là giá trị riêng. Mỗi vectơ riêng trở thành một trục mới trong không gian dữ liệu, còn giá trị riêng biểu thị lượng thông tin (phương sai) mà trục đó giữ lại.

Ví dụ dưới đây minh họa cách các thành phần chính được trích xuất:

Thành phần chínhHướng tuyến tínhPhương sai giải thích (%)
PC10.7*x1 + 0.7*x276%
PC2-0.7*x1 + 0.7*x221%
PC3......

Quy trình thực hiện PCA

PCA có thể được thực hiện qua một chuỗi các bước rõ ràng. Việc hiểu quy trình này không chỉ giúp triển khai đúng kỹ thuật mà còn giúp đánh giá được kết quả một cách chính xác.

Bước 1: Chuẩn hóa dữ liệu. Điều này đảm bảo rằng các biến có đơn vị đo khác nhau không gây ảnh hưởng không đồng đều đến kết quả PCA. Dữ liệu được đưa về trung bình bằng 0 và phương sai bằng 1 (z-score).

Bước 2: Tính ma trận hiệp phương sai của dữ liệu đã chuẩn hóa để xác định mối quan hệ tuyến tính giữa các biến.

Bước 3: Tính toán giá trị riêng và vectơ riêng từ ma trận hiệp phương sai. Đây là bước quan trọng để xác định hướng của các thành phần chính.

Bước 4: Chọn số lượng thành phần chính theo tiêu chí như: tổng phương sai giải thích đạt ngưỡng mong muốn (ví dụ 95%) hoặc số lượng thành phần có giá trị riêng lớn hơn 1 (theo tiêu chí Kaiser).

Bước 5: Biến đổi dữ liệu ban đầu theo các trục thành phần chính đã chọn, tạo ra tập dữ liệu mới có chiều thấp hơn nhưng giữ lại thông tin chính.

Bảng sau tóm tắt quy trình trên:

BướcMô tả
1Chuẩn hóa dữ liệu
2Tính ma trận hiệp phương sai
3Phân tích giá trị riêng và vectơ riêng
4Chọn thành phần chính
5Biến đổi dữ liệu

Tác dụng và lợi ích của PCA

PCA giúp giải quyết hiệu quả vấn đề dữ liệu có số chiều cao – điều thường gây khó khăn trong cả phân tích lẫn huấn luyện mô hình. Một trong những lợi ích lớn nhất là khả năng giảm chiều mà vẫn bảo toàn thông tin cốt lõi, từ đó cải thiện tốc độ và độ chính xác của các thuật toán học máy.

PCA cũng làm cho dữ liệu dễ trực quan hóa hơn. Ví dụ, dữ liệu 100 chiều có thể được giảm xuống còn 2 hoặc 3 chiều để biểu diễn trên mặt phẳng hoặc không gian ba chiều. Ngoài ra, PCA còn có vai trò lớn trong việc giảm nhiễu (noise) và loại bỏ các biến dư thừa (redundant features).

Các lợi ích cụ thể của PCA gồm:

  • Tăng tốc độ xử lý dữ liệu và huấn luyện mô hình.
  • Tránh hiện tượng đa cộng tuyến (multicollinearity) trong các mô hình hồi quy tuyến tính.
  • Hỗ trợ khám phá cấu trúc ẩn trong dữ liệu chưa gán nhãn.
  • Giảm rủi ro overfitting trong học máy do loại bỏ biến không cần thiết.

Tuy nhiên, việc giảm chiều cũng có thể làm mất đi một phần ý nghĩa ban đầu của dữ liệu. Do đó, PCA nên được sử dụng kết hợp với các kỹ thuật khác như lựa chọn đặc trưng có giám sát (feature selection) để đảm bảo mô hình vẫn phù hợp với mục tiêu phân tích.

Hạn chế và nhược điểm của PCA

Mặc dù PCA là một công cụ mạnh mẽ trong phân tích và xử lý dữ liệu, nhưng nó không phải là phương pháp hoàn hảo. Một trong những hạn chế lớn nhất của PCA là tính tuyến tính. Do bản chất hoạt động dựa trên biến đổi tuyến tính, PCA không thể phát hiện các cấu trúc phi tuyến phức tạp vốn phổ biến trong dữ liệu thực tế như ảnh, âm thanh, dữ liệu sinh học.

Một vấn đề khác là khó khăn trong việc giải thích các thành phần chính. Vì mỗi thành phần chính là tổ hợp tuyến tính của nhiều biến đầu vào, nên rất khó xác định chính xác ý nghĩa thực tế của chúng. Điều này đặc biệt bất tiện trong các lĩnh vực yêu cầu diễn giải mô hình, như y học hay kinh tế.

Các điểm hạn chế chính:

  • Không phù hợp với dữ liệu phi tuyến hoặc có phân bố phức tạp.
  • Không duy trì tỷ lệ hoặc khoảng cách ban đầu giữa các điểm dữ liệu.
  • Thành phần chính không tương ứng trực tiếp với các biến gốc nên khó giải thích.
  • Nhạy cảm với nhiễu và outlier nếu không xử lý trước.

Ứng dụng thực tiễn của PCA

PCA được ứng dụng rộng rãi trong cả nghiên cứu học thuật lẫn công nghiệp. Trong khoa học đời sống, PCA giúp rút gọn dữ liệu biểu hiện gen hoặc phân loại tế bào ung thư dựa trên hồ sơ RNA. Trong thị giác máy tính, PCA được sử dụng để trích xuất đặc trưng hình ảnh, giảm chiều dữ liệu đầu vào trước khi đưa vào mô hình học sâu.

Trong tài chính, PCA hỗ trợ phân tích các yếu tố ẩn sau biến động của cổ phiếu hoặc lãi suất. Dưới đây là một số ứng dụng tiêu biểu:

  • Y sinh học: Phân cụm bệnh nhân theo biểu hiện gen để xác định nhóm bệnh lý. Xem thêm: PubMed.
  • Xử lý ảnh: PCA được dùng để làm giảm chiều ảnh đầu vào, ví dụ trong nhận dạng khuôn mặt bằng thuật toán Eigenfaces.
  • Tài chính định lượng: Phân tích yếu tố chính ảnh hưởng đến biến động giá tài sản.
  • Học máy: Giảm chiều trước khi huấn luyện mô hình để giảm thời gian tính toán và tránh overfitting.

Ví dụ: Trong bài toán nhận diện chữ viết tay với dữ liệu MNIST, PCA có thể giúp giảm từ 784 chiều (28x28 pixel) xuống còn 40–100 chiều mà vẫn giữ được 95% phương sai, giúp tăng tốc đáng kể quá trình huấn luyện.

So sánh PCA với các kỹ thuật giảm chiều khác

Các kỹ thuật giảm chiều khác nhau có ưu và nhược điểm riêng. PCA nổi bật nhờ khả năng giữ lại phương sai lớn nhất, nhưng nó không phải là lựa chọn duy nhất. Những kỹ thuật sau đây thường được so sánh trực tiếp với PCA:

Kỹ thuậtĐặc điểm chínhTuyến tính/Phi tuyếnỨng dụng tiêu biểu
PCABiến đổi tuyến tính giữ phương saiTuyến tínhGiảm chiều cho mô hình ML
LDATối đa hóa phân tách giữa các lớpTuyến tínhPhân loại có giám sát
t-SNEBảo toàn khoảng cách cục bộPhi tuyếnTrực quan hóa dữ liệu
AutoencoderMạng nơ-ron học mã hóa phi tuyếnPhi tuyếnHọc biểu diễn trừu tượng

Các kỹ thuật như t-SNE hay UMAP thường cho kết quả trực quan hóa tốt hơn nhưng không phù hợp cho việc huấn luyện mô hình do thiếu khả năng khái quát hóa. Trong khi đó, Autoencoder có thể học được cả đặc trưng phi tuyến nhưng đòi hỏi nhiều tài nguyên tính toán.

Chọn số lượng thành phần chính

Việc chọn đúng số lượng thành phần chính là một bước then chốt trong quy trình PCA. Chọn quá nhiều thì không giảm được độ phức tạp mô hình, chọn quá ít thì mất đi thông tin quan trọng. Hai phương pháp phổ biến để lựa chọn số thành phần gồm biểu đồ "scree plot" và phân tích tỷ lệ phương sai tích lũy.

Tỷ lệ phương sai giải thích bởi mỗi thành phần chính được tính theo công thức:

Explained Variance Ratiok=λki=1pλi\text{Explained Variance Ratio}_k = \frac{\lambda_k}{\sum_{i=1}^{p} \lambda_i}

Trong đó, λk\lambda_k là giá trị riêng của thành phần thứ kkpp là tổng số biến gốc. Một quy tắc thường dùng là chọn số thành phần sao cho tổng tỷ lệ phương sai tích lũy đạt ít nhất 90–95%.

Bảng dưới minh họa một ví dụ lựa chọn thành phần dựa trên phương sai:

Thành phầnPhương sai giải thíchTỷ lệ tích lũy
PC155%55%
PC225%80%
PC310%90%
PC44%94%
PC52%96%

Các công cụ và thư viện hỗ trợ PCA

Nhiều thư viện mã nguồn mở và phần mềm thống kê đã tích hợp sẵn PCA, giúp các nhà phân tích và kỹ sư dễ dàng triển khai kỹ thuật này. Dưới đây là một số công cụ phổ biến:

  • Scikit-learn (Python): Cung cấp class PCA rất linh hoạt, cho phép lựa chọn số thành phần hoặc mức phương sai mong muốn.
  • NumPy: Có thể sử dụng linalg.eig để tự triển khai PCA thủ công.
  • Pandas: Kết hợp với NumPy để xử lý dữ liệu đầu vào.
  • R: Các hàm như prcomp() hoặc thư viện FactoMineR hỗ trợ PCA và trực quan hóa.
  • MATLAB: Cung cấp hàm pca() với nhiều tùy chọn nâng cao.

Các công cụ này thường tích hợp với pipeline học máy, giúp dễ dàng kết hợp PCA với các bước tiền xử lý khác như chuẩn hóa, chọn đặc trưng, và phân loại.

Câu hỏi thường gặp

Tiêu chí toán học để chọn thành phần chính thứ nhất (PC1) là gì?

PC1 là hướng đường thẳng trong không gian đa chiều mà khi chiếu dữ liệu lên đó thì phương sai giải thích đạt giá trị cực đại lớn nhất.

Tại sao cần phải chuẩn hóa (standardization) dữ liệu trước khi thực hiện PCA?

Vì nếu không chuẩn hóa, các biến có thang đo lớn hoặc phương sai ban đầu lớn sẽ áp đảo kết quả tính toán trị riêng dù không thực sự chứa nhiều thông tin cốt lõi.

Phân rã giá trị suy biến (SVD) liên hệ với thuật toán PCA như thế nào?

SVD áp dụng trực tiếp lên ma trận dữ liệu đã trừ trung bình cho phép tính toán các thành phần chính nhanh chóng và chính xác hơn về mặt tính toán số học mà không cần lập ma trận hiệp phương sai.

Tài liệu tham khảo

  1. Tripathy (2021). Principal Component Analysis (PCA). Unsupervised Learning Approaches for Dimensionality Reduction and Data Visualization. DOI: 10.1201/9781003190554-2
  2. Datta (2017). PCA, Kernel PCA and Dimensionality Reduction in Hyperspectral Images. Advances in Principal Component Analysis. DOI: 10.1007/978-981-10-6704-4_2
  3. Ghader (2025). Principal and independent component analysis methods. Dimensionality Reduction in Machine Learning. DOI: 10.1016/b978-0-44-332818-3.00012-5