參考url:
https://jakevdp.github.io/PythonDataScienceHandbook/05.09-principal-component-analysis.html
主成分分析(principal component analysis,PCA),無監督算法之一,PCA是一種非常基礎的降維算法,適用於數據可視化、噪音過濾、特征抽取和特征工程等領域。
1、主成分分析簡介
主成分分析是一個快速靈活的數據降維無監督方法。
這些向量表示數據主軸,箭頭長度表示輸入數據中各個軸的‘重要程度’ ,即它衡量了數據投影到主軸上的方差的大小。每個數據點在主軸上的投影就是數據的‘主成分’。
將原始數據和這些主成分都畫出來,將得到‘數據主軸的變換’圖所示的結果。
這種從數據的坐標軸變換到主軸的變換是一個仿射變換,仿射變換包含平移(translation)、旋轉(rotation)和均勻縮放(uniform scaling)三個步驟。
1、用PCA降維
用PCA降維意味着去除一個或多個最小主成分,從而得到一個更低維度且保留最大數據方差的數據投影。
淺色的點是原始數據,深色的點是投影的版本。
PCA降維的含義:沿着最不重要的主軸的信息都被去除了,僅留下了含有最高方差值的數據成分,被去除的那一小部分方差值基本可以看成是數據在降維后損失的‘信息’量。
這種降維后的數據集在某種程度上足以體現出數據中最主要的關系:雖然有50%的數據維度被削減,但數據的總體關系仍然被大致保留了下來。
2、用PCA作數據可視化:手寫數字
降維的有用之處在數據僅有兩個維度時可能不是很明顯,但是當數據維度很高時,它的價值就有所體現了。
整個數據是一個64維的點雲,而且這些點還是每個數據點沿着最大方差方向的投影。
3、成分的含義
從基向量的組合角度來理解這個問題。
4、選擇成分的數量
在實際使用PCA的過程中,正確估計用於描述數據的成分的數量是非常重要的環節,可以將累計方差貢獻率看作是關於成分數量的函數,從而確定所需成分的數量。
2、用PCA作噪音過濾
PCA也可以被用作噪聲數據的過濾方法——任何成分的方差都遠大於噪音的方差,所以相比於噪音,成分應該相對不受影響,因此如果僅用主成分的最大子集重構該數據,那么應該可以實現選擇性保留信號並丟棄噪聲。