AI

Principal Component Analysis - PCA

PCA Algorithm

Giả sử dữ liệu ban đầu là ma trận

\[X \in \mathbb{R}^{n \times p}\]

với n là số mẫu và p là số biến.

Bước 1. Chuẩn hoá dữ liệu

Tính trung bình của từng biến:

\[\mu_j = \frac{1}{n}\sum_{i=1}^{n} x_{ij}, \quad j = 1,\dots,p\]

Chuẩn hoá (center) dữ liệu:

\[\tilde{x}_{ij} = x_{ij} - \mu_j\]

Viết dưới dạng ma trận:

\[\tilde{X} = X - \mathbf{1}\mu^{T}\]

(Nếu cần chuẩn hoá phương sai thì chia thêm cho độ lệch chuẩn.)

Bước 2. Tính ma trận hiệp phương sai

\[S = \frac{1}{n-1}\tilde{X}^{T}\tilde{X}\]

trong đó

\[S \in \mathbb{R}^{p \times p}.\]

Bước 3. Phân rã trị riêng

Giải bài toán trị riêng:

\[S v_k = \lambda_k v_k\]

với:

\[\lambda_1 \ge \lambda_2 \ge \cdots \ge \lambda_p \ge 0.\]

Bước 4. Chọn số thành phần chính

Chọn K vector riêng đầu tiên:

\[V_K = [v_1, v_2, \dots, v_K]\]

với

\[V_K \in \mathbb{R}^{p \times K}.\]

Bước 5. Chiếu dữ liệu sang không gian PCA

\[Z = \tilde{X} V_K\]

trong đó:

\[Z \in \mathbb{R}^{n \times K}\]

là dữ liệu sau khi giảm chiều.

Bước 6. Tỉ lệ phương sai giải thích

\[\text{Explained Variance Ratio}_k=\frac{\lambda_k}{\sum_{j=1}^{p} \lambda_j}.\]

Tổng phương sai giải thích của K thành phần:

\[\sum_{k=1}^{K}\frac{\lambda_k}{\sum_{j=1}^{p} \lambda_j}.\]