歡迎批評指正!
主成分分析(principal component analysis,PCA)
一。幾何的角度理解PCA -- 舉例:將原來的三維空間投影到方差最大且線性無關的兩個方向(二維空間)。
二。數學推導的角度為 -- 將原矩陣進行單位正交基變換。
且聽我慢慢展開。
關於第一句話,給個圖直觀理解,請問,下面的三維空間中的一條魚,在二維平面時怎么能更直觀的看出,這是一條魚?



很明顯,第一種情況更直觀,為什么呢?
這就是將原矩陣(三維空間)投影到了信息量最大的兩個維度上(二維平面),這就是PCA所做的事情,降維
參考https://www.bilibili.com/medialist/play/ml304203591
https://www.matongxue.com/madocs/228/
關於第二句話,從數學的角度解釋,一句話,原矩陣進行單位正交基變化。
首先。什么是基變化
舉例

三維空間中的四個點(矩陣B),左乘一個矩陣A,沒有發生任何變化,因為該矩陣就是B的基,如果A發生變化,對應的乘積也發生變化。
第二,為什么要正交單位基,單位基很好理解了,就是為了計算的方便,正交的目的是為了PCA降維之后,我們希望能對各個主成分進行合理解釋,如果非正交的話,各主成分之間相關性很高,結果難已解釋。
下面到了最重要的一點,如何找雞?不對不對,找基!
當我們遇到這樣的(左面)的數據時,我們很難去選擇將數據投影到X1或者X2,因為兩個基上的數據信息量差別不大,我們希望找到像Y1,Y2這樣的基,這時的取舍就很明確了。

首先,我們將數據中心化

疑問(問什么要中心化)
因為標准化之后X的相關矩陣等於協方差陣,證明(忽視角標0_0),注意此處的Y與下文的Y無關

因為在之前X坐標系下,X1與X2存在很大的相關性,所義無法很好的選擇一個維度來投影,但是在Y坐標系下,Y1,Y2之間相關性很小,投影方向很明確。
問題轉化為Y = PX,

那么我們希望得到的是一個除去對角線上元素為1之外的其他元素均為零的矩陣。

第三步為譜分解,她有很好的性質,如,Q為X的特征向量組,為單位正交矩陣,D為對角線元素為X特征值的對角線矩陣
對於第④步的解釋:我們希望得到的是Y的協方差矩陣為對角線矩陣,而D為對角線矩陣,PQ = 單位矩陣即可,
又Q為正交陣,所以inverse Q = transpose Q,所以![]()
我們可以選擇特征值較大的eigenvectors 乘以 X,實現降維
偽代碼

實例及R語言實現

a <- c(-1,-1,0,2,0) b <- c(-2,0,0,1,1) x <- as.matrix(cbind(a,b)) # already normalization x cor <- cor(x) eig <- eigen(cor) plot(eig$values) p <- eig$vectors y <- t(p) %*% t(x) plot(t(y))
參考https://www.bilibili.com/video/av29441413/?p=3
