Principal Component Analysis Là Gì?

Chatgpt Image Aug 24, 2026, 02_23_04 Pm

Series: Machine Learning Fundamentals – Bài 30

Ở hai bài trước, chúng ta đã tìm hiểu hai thuật toán phân nhóm dữ liệu tiêu biểu trong nhóm Học không giám sát (Unsupervised Learning) là K-Means và DBSCAN.

Tuy nhiên, trong các bài toán thực tế, bạn sẽ thường xuyên đối mặt với các bộ dữ liệu có hàng trăm, hàng nghìn đặc trưng (Features). Lượng chiều dữ liệu quá lớn không chỉ khiến mô hình chạy chậm mà còn gây ra hiện tượng “Lời nguyền số chiều” (Curse of Dimensionality).

Để giải quyết vấn đề này, thuật toán Principal Component Analysis (PCA) ra đời như một giải pháp giảm chiều dữ liệu hàng đầu.

Principal Component Analysis là gì?

Principal Component Analysis (PCA) – hay Phân tích thành phần chính – là một kỹ thuật học không giám sát dùng để giảm số lượng đặc trưng (Features) của bộ dữ liệu nhưng vẫn giữ lại tối đa lượng thông tin (Variance – Phương sai) ban đầu.

Bộ dữ liệu 100 Features (Nhiều nhiễu, trùng lặp)
↓
Principal Component Analysis (PCA)
↓
Bộ dữ liệu mới 5 Principal Components (Giữ 95% Variance)

Tài liệu chính thức mô tả PCA sử dụng phép biến đổi tuyến tính để chuyển đổi các đặc trưng ban đầu thành một tập hợp các trục mới hoàn toàn không tương quan với nhau, gọi là các Thành phần chính (Principal Components). Xem thêm tại Scikit-Learn PCA Documentation.

Các khái niệm cốt lõi trong Principal Component Analysis

  1. Variance (Phương sai): Đo lường mức độ phân tán của dữ liệu. Trong PCA, Variance đại diện cho Thông tin. Mục tiêu của PCA là tìm các trục chiếu sao cho Variance của dữ liệu trên trục đó là lớn nhất.

  2. Principal Components (Thành phần chính):

    • PC1 (Thành phần chính thứ nhất): Đường thẳng chứa phần lớn Variance của dữ liệu.

    • PC2 (Thành phần chính thứ hai): Đường thẳng vuông góc (Orthogonal) với PC1 và chứa lượng Variance lớn thứ hai.

  3. Explained Variance Ratio (Tỷ lệ phương sai giải thích): Chỉ số cho biết mỗi Principal Component giữ lại bao nhiêu % thông tin của bộ dữ liệu gốc.

Cách Principal Component Analysis hoạt động

Quy trình toán học đằng sau PCA bao gồm 5 bước cơ bản:

  1. Chuẩn hóa dữ liệu (Standardization): Đưa tất cả đặc trưng về cùng một vạch quy mô (Mean = 0, Std = 1).

  2. Tính Ma trận Hiệu phương sai (Covariance Matrix): Đo lường mối quan hệ tương quan giữa tất cả các cặp đặc trưng.

  3. Tính Eigenvalues và Eigenvectors:

    • Eigenvectors (Vectơ riêng): Xác định hướng của các trục mới (Principal Components).

    • Eigenvalues (Giá trị riêng): Xác định độ lớn/trọng số (lượng Variance) mà trục đó giữ lại.

  4. Sắp xếp và Chọn $k$ thành phần chính: Sắp xếp Eigenvalues theo thứ tự giảm dần và chọn ra $k$ Eigenvectors tương ứng với lượng Variance mong muốn (ví dụ: giữ lại $95\%$ thông tin).

  5. Chiếu dữ liệu lên không gian mới: Nhân dữ liệu ban đầu với $k$ Eigenvectors để thu được bộ dữ liệu đã giảm chiều.

So sánh Feature Selection và Principal Component Analysis

Tiêu chí Feature Selection (Chọn lọc) Principal Component Analysis (PCA)
Bản chất Giữ lại các đặc trưng gốc tốt nhất, xóa bỏ đặc trưng kém. Tạo ra các đặc trưng mới hoàn toàn bằng cách kết hợp tuyến tính các đặc trưng cũ.
Tính giải thích Cao (giữ nguyên tên gốc của biến). Thấp (các trục PC1, PC2… khó giải thích ý nghĩa thực tế).
Trùng lặp (Multicollinearity) Có thể vẫn còn nếu chọn nhầm. Triệt tiêu hoàn toàn (các trục vuông góc với nhau).

Dữ liệu có cần Feature Scaling không?

CỰC KỲ BẮT BUỘC.

PCA tìm các hướng có Variance lớn nhất. Nếu một đặc trưng có quy mô lớn (ví dụ: Thu nhập hàng triệu) và một đặc trưng có quy mô nhỏ (ví dụ: Tuổi từ 18-60), PCA sẽ bị lệch hoàn toàn theo hướng của đặc trưng có quy mô lớn.

Bắt buộc phải áp dụng StandardScaler trước khi đưa dữ liệu vào PCA.

Ưu điểm và Nhược điểm của Principal Component Analysis

Ưu điểm

  • Giảm chi phí tính toán: Tăng tốc độ huấn luyện cho các mô hình phía sau (KNN, SVM, Logistic Regression…).

  • Triệt tiêu Đa cộng tuyến (Multicollinearity): Các thành phần chính vuông góc và hoàn toàn độc lập với nhau.

  • Hỗ trợ Trực quan hóa dữ liệu: Giảm dữ liệu từ $100D$ xuống $2D$ hoặc $3D$ để vẽ biểu đồ quan sát.

Nhược điểm

  • Mất tính giải thích (Interpretability): Không thể biết chính xác PC1 hay PC2 đại diện cho biến kinh doanh cụ thể nào.

  • Mất mát thông tin: Việc giảm chiều luôn chấp nhận bỏ qua một lượng % nhỏ thông tin.

  • Chỉ học quan hệ tuyến tính: PCA không hiệu quả nếu cấu trúc dữ liệu có dạng phi tuyến tính phức tạp (khi đó nên dùng t-SNE hoặc UMAP).

Ứng dụng của Principal Component Analysis

  • Trực quan hóa dữ liệu cao chiều: Biến đổi các bộ dữ liệu phức tạp thành biểu đồ $2D/3D$ để tìm Insight.

  • Xử lý ảnh & Nén dữ liệu: Giảm kích thước ảnh mà vẫn giữ được các đường nét khung cốt lõi.

  • Tiền xử lý Machine Learning: Giảm chiều dữ liệu đầu vào trước khi huấn luyện các mô hình phức tạp.

Tóm tắt

  1. Principal Component Analysis giảm chiều dữ liệu bằng cách chiếu dữ liệu lên các trục mới (Principal Components) sao cho Variance là lớn nhất.

  2. Bắt buộc phải thực hiện Feature Scaling trước khi chạy PCA.

  3. Các thành phần chính hoàn toàn vuông góc và không tương quan với nhau.

  4. PCA là công cụ đắc lực để chống Lời nguyền số chiều và tăng tốc mô hình.

Tài liệu tham khảo

  1. Scikit-Learn Documentation: Principal Component Analysis in Scikit-Learn

  2. Jolliffe (2002): Principal Component Analysis – Cuốn sách kinh điển về PCA.

Khóa học tại MCNA Technology School

Nếu bạn muốn thực hành Machine Learning, Python và xây dựng các mô hình trên dữ liệu thực tế, có thể tham khảo:

Tác giả: Bùi Đình Tuyển – Data Analyst tại MCNA Technology School

📞 Hotline: 0939.866.825 (Mr. Khang)

🌐 Website: MCNA Technology School

📍 Hà Nội: 30 Trung Liệt, Đống Đa | Liền kề 44B TT2 Văn Quán, Hà Đông

📍 TP.HCM: 50B Phan Tây Hồ, Cầu Kiệu

Chỉ mục