Đại số tuyến tính phía sau PCA

Đại số tuyến tính cho Khoa học dữ liệu với R

Eric Eager

Data Scientist at Pro Football Focus

Lý thuyết

Ma trận $A^T$, ma trận chuyển vị của $A$, được tạo bằng cách hoán đổi các hàng và cột của $A$.

Nếu dữ liệu ở ma trận $A$ và đã trừ trung bình của mỗi cột khỏi từng phần tử trong cột đó, thì phần tử $i,j$ của ma trận

$$\frac{A^TA}{n - 1},$$

với $n$ là số hàng của $A$, là hiệp phương sai giữa biến ở cột $i$ và $j$ của dữ liệu trong ma trận.

Do đó, phần tử thứ $i$ trên đường chéo của $\frac{A^TA}{n - 1}$ là phương sai của cột thứ $i$ của ma trận.

Đại số tuyến tính cho Khoa học dữ liệu với R

Lý thuyết

print(A)
     [,1] [,2]
[1,]    1    2
[2,]    2    4
[3,]    3    6
[4,]    4    8
[5,]    5   10
A[, 1] <- A[, 1] - mean(A[, 1])
A[, 2] <- A[, 2] - mean(A[, 2]) 
print(A)
     [,1] [,2]
[1,]   -2   -4
[2,]   -1   -2
[3,]    0    0
[4,]    1    2
[5,]    2    4
Đại số tuyến tính cho Khoa học dữ liệu với R

Lý thuyết

t(A)%*%A/(nrow(A) - 1)
     [,1] [,2]
[1,]  2.5    5
[2,]  5.0   10
cov(A[, 1], A[, 2])
5
var(A[, 1])
2.5
var(A[, 2])
10
Đại số tuyến tính cho Khoa học dữ liệu với R

PCA

  • Các trị riêng $\lambda_1, \lambda_2, ... \lambda_n$ của $\frac{A^TA}{n - 1}$ là số thực, và các vector riêng tương ứng trực giao, tức chỉ theo các hướng khác nhau.

  • Tổng phương sai của bộ dữ liệu là tổng các trị riêng của $\frac{A^TA}{n - 1}$.

  • Các vector riêng $v_1, v_2, ..., v_n$ được gọi là thành phần chính của dữ liệu trong ma trận $A$.

  • Hướng của $v_j$ giải thích $\lambda_j$ phương sai tổng. Nếu $\lambda_j$, hoặc một tập con của $\lambda_1, \lambda_2, ... \lambda_n$, giải thích phần lớn phương sai, ta có thể giảm chiều.

Đại số tuyến tính cho Khoa học dữ liệu với R

Ví dụ

eigen(t(A)%*%A/(nrow(A) - 1))
phân rã eigen()
$`values`
[1] 12.5  0.0

$vectors
          [,1]       [,2]
[1,] 0.4472136 -0.8944272
[2,] 0.8944272  0.4472136
Đại số tuyến tính cho Khoa học dữ liệu với R

Ayo berlatih!

Đại số tuyến tính cho Khoa học dữ liệu với R

Preparing Video For Download...