天天看點

pca 矩陣 迹_PCA速記

PCA是主成分分析的縮寫,而主成分分析是将資料進行降維的一種方法。

我們以最簡單的二維資料為例:

> A <- matrix(c(3,-4,7,1,-4,-3,
+     7,-6,8,-1,-1,-7), nrow = 2, byrow=TRUE)
> A
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    3   -4    7    1   -4   -3
[2,]    7   -6    8   -1   -1   -7
           

A矩陣共有兩行,每行代表一種屬性(e.g. 身高、體重);A矩陣共有六列,每列代表一位個體(e.g. 小明、小紅、小張等)

我們首先觀察圖像:

> plot(A[1,],A[2,])
           
pca 矩陣 迹_PCA速記

圖1

可以看到,兩個屬性間具有比較強的相關性。是以,可以通過主成分分析的方法将他們降維到一個連續統之内。

換句話說,我們希望找到一個新的向量,使得圖1各點,向該向量投影。投影點之間的離散程度能夠最大化,這意味着原有資料的變異性得到了最大程度的保留。

首先,我們計算

pca 矩陣 迹_PCA速記

,來得到

pca 矩陣 迹_PCA速記

中兩個變量的協方差矩陣(

pca 矩陣 迹_PCA速記

中各變量已經用均值完成了對中):

> (Cov <- 1/5 * A %*% t(A))
     [,1] [,2]
[1,]   20   25
[2,]   25   40
           

然後,我們求該協方差矩陣

pca 矩陣 迹_PCA速記

的特征值和特征向量:

> (eigen_Cov <- eigen(Cov))
eigen() decomposition
$values
[1] 56.925824  3.074176

$vectors
          [,1]       [,2]
[1,] 0.5606288 -0.8280672
[2,] 0.8280672  0.5606288
           

由于特征值等于矩陣對角線元素之和(也叫“迹”),而

pca 矩陣 迹_PCA速記

矩陣對角線之和,其實就是A矩陣中兩變量總變異之和。

特征根

pca 矩陣 迹_PCA速記

較大,意味着該特征根對應的特征向量

pca 矩陣 迹_PCA速記

解釋了更多的變量變異,是以,它就是我們要找的可以用來降維的那個向量。

當然,不求協方差矩陣

pca 矩陣 迹_PCA速記

,直接對

pca 矩陣 迹_PCA速記

進行奇異值分解,也是可以的:

pca 矩陣 迹_PCA速記
> (svd(A))
$d
[1] 16.870955  3.920571

$u
           [,1]       [,2]
[1,] -0.5606288 -0.8280672
[2,] -0.8280672  0.5606288

$v
           [,1]        [,2]
[1,] -0.4432682  0.36734441
[2,]  0.4274162 -0.01313684
[3,] -0.6252722 -0.33450230
[4,]  0.0158520 -0.35420757
[5,]  0.1820041  0.70184671
[6,]  0.4432682 -0.36734441
           

可以看到,最大的奇異值

pca 矩陣 迹_PCA速記

,其對應的

pca 矩陣 迹_PCA速記

向量是

pca 矩陣 迹_PCA速記

,和之前我們求的

pca 矩陣 迹_PCA速記

矩陣的特征向量共線。

為什麼會出現這種情況?

因為在對

pca 矩陣 迹_PCA速記

進行奇異值分解時,

pca 矩陣 迹_PCA速記

最大奇異值

pca 矩陣 迹_PCA速記

,其平方

pca 矩陣 迹_PCA速記

等于

pca 矩陣 迹_PCA速記

中對應的特征根,而奇異值分解中得到的向量

pca 矩陣 迹_PCA速記

,正是

pca 矩陣 迹_PCA速記

對應的特征向量。

又因為

pca 矩陣 迹_PCA速記

,是以

pca 矩陣 迹_PCA速記

特征根等于

pca 矩陣 迹_PCA速記

pca 矩陣 迹_PCA速記

特征根,也就是

pca 矩陣 迹_PCA速記

奇異值

pca 矩陣 迹_PCA速記

平方的1/5 :

> 16.870955^2/5
[1] 56.92582
           

而特征向量方向不變。