PCA最大方差理論+幾何意義
轉載請註明:雲南省高校數據化運營管理工程研究中心博客http://write.blog.csdn.net/mdeditor#!postId=78932615
主成份爲什麼可以
經過主成分在壓縮數據之後的數據(主成分得分數據),多個變量變爲更少的綜合變量,變量個數減少了,還能反映原有數據的信息嗎?爲什麼可以呢?解決以上疑問前我們需要了解PCA理論基礎:
1.PCA理論基礎:方差最大理論
我們以一個二維數據爲例:
圖1:尋找主成分的正交旋轉
將二維,降至一維
• a二維經過投影,變爲一維;
• b要儘可能保留原始信息。直觀的感受就是投影之後儘量分散,點分佈差異相對較大,沒有相關性(相反的極端情況是投影后聚成一團,變量間的差別小,蘊含的信息就少了);
• c如何體現差異呢,可量化的方差。這就需要找一個方向使得投影后它們在投影方向上的方差儘可能達到最大,即在此方向上所含的有關原始信息樣品間的差異信息是最多的;
• d降維在線性空間中就是基變換,換一種說法就是,找到一組的基向量,在此向量空間上進行投影。在圖中就是本來基是(0,1),(1,0)現在換成在橫貫1,3第一象限的那條,爲什麼不選橫貫2,4象限的呢,思考b條。
我們由二維空間向一維空間的轉換,如何才能儘可能的保留信息呢,這就需要找一個方向使得投影后它們在投影方向上的方差儘可能達到最大,即在此方向上所含的有關原始信息樣品間的差異信息是最多的。
(小夥伴會不會有爲什麼是方差最大的疑惑呢?從數據體現信息的多少出發。極端的情況是樣本數據都是相同的,那就沒有更多信息了。所以有樣本間有變化,纔有更多信息,變化就是差異,差異就用方差體現)
2.方差最大和協方差的關係
要解釋方差最大和主成分的關係需要從方差和協方差的關係入手:
設對原始數據標準化(減去對應變量的均值,再除以其方差),每個樣本對應p個變量,設
我們首先試圖用綜合變量
達到最大,就稱爲第一主成分。對稱矩陣協方差矩陣 。
爲對稱的,進行對稱矩陣的譜分解,(分解後的對角矩陣元素
都有着特殊的含義,即特徵值和對應的特徵向量)
譜分解:
3. 解釋方差最大和主成分的關係:
設
由於
(計算要知道,T爲正交矩陣。t爲特徵向量,T’T爲1;a’t是一個數,不是向量;a’a已經設定爲1,本人第一次看好多遍無果,想到前面一句後才順利的推導上面的式子)
直接驗證,當取
如果第一主成分信息不夠多,還不足以代表原始的p個變量,則需要再考慮第二主成y2,爲了使與y2所含的信息與y1不重疊,要求cov(y1,y2)=0.
第二主成分的推理於第一主成分類似,可得到
(推理點撥:考慮到不同特徵值的特徵向量正交,相乘爲0,推理亦是會暢通。)
(重疊是指線性關係上的,如果有重疊則說明還有進一步降維的空間)
4.貢獻率和累計貢獻率概念:
從上面的推導,我們也可以發現特徵值和主成分方差的關係,總方差中屬於第i主成分yi的比例爲
5. 主成分取多少個呢?
可人爲指定固定個數,但是往往取(相對於p)較小的m個,使得累計貢獻達到一個較高的百分比(80%——90%),此時y1,y2,y2……,ym可以來代替x1,x2,x3……xp,從而達到降爲的目的。而信息的損失卻不多。
6.幾何意義
通過第三部分的計算過程,假設我們得到所有的主成分:
幾何意義是將原有
四、如何實現
內部服務器博客,或者CSDN 雲南省高校數據化運營管理工程研究中心的博客.
1.我們可以按步編程(見程序《PCA算法 python實現(法一)一步一步實現》)
http://blog.csdn.net/m0_37788308/article/details/78115229
2.快速代碼實現(《PCA python實現(法2)scikit-learn 快速實現》)
http://blog.csdn.net/m0_37788308/article/details/78115229
sklearn官方文檔地址:http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html