PCA 背後的線性代數

R 的資料科學線性代數

Eric Eager

Data Scientist at Pro Football Focus

理論

矩陣 $A^T$($A$ 的_轉置_)是把 $A$ 的列與行互換後得到的矩陣。

若你的資料集用矩陣 $A$ 表示,且已對每一欄做去平均(每欄元素減去該欄平均),則矩陣

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

的第 $i,j$ 個元素(其中 $n$ 是 $A$ 的列數)就是矩陣中第 $i$ 與第 $j$ 欄變數的共變異數

因此,$\frac{A^TA}{n - 1}$ 對角線上的第 $i$ 個元素,就是該矩陣第 $i$ 欄的變異數

R 的資料科學線性代數

理論

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
R 的資料科學線性代數

理論

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
R 的資料科學線性代數

PCA

  • $\frac{A^TA}{n - 1}$ 的特徵值 $\lambda_1, \lambda_2, ... \lambda_n$ 為實數,其對應特徵向量彼此_正交_,也就是方向互異。

  • 資料集的總變異為 $\frac{A^TA}{n - 1}$ 的特徵值總和。

  • 這些特徵向量 $v_1, v_2, ..., v_n$ 稱為矩陣 $A$ 中資料集的主成分

  • 向量 $v_j$ 的方向可解釋資料集中 $\lambda_j$ 的總變異。若 $\lambda_j$,或 $\lambda_1, \lambda_2, ... \lambda_n$ 的部分,能解釋大量總變異,就有降維的機會。

R 的資料科學線性代數

範例

eigen(t(A)%*%A/(nrow(A) - 1))
eigen() decomposition
$`values`
[1] 12.5  0.0

$vectors
          [,1]       [,2]
[1,] 0.4472136 -0.8944272
[2,] 0.8944272  0.4472136
R 的資料科學線性代數

一起來練習吧!

R 的資料科學線性代數

Preparing Video For Download...