數據梳理、降維--主成分分析、超易懂實例及R語言實現


 歡迎批評指正!

 

主成分分析(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

https://www.bilibili.com/medialist/play/ml304203591

https://blog.csdn.net/y521263/article/details/44925363


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM