PCA(主成分分析)方法淺析
降維、數據壓縮
找到數據中最重要的方向:方差最大的方向,也就是樣本間差距最顯著的方向
PCA算法主要用於降維,就是將樣本數據從高維空間投影到低維空間中,並盡可能的在低維空間中表示原始數據。PCA的幾何意義可簡單解釋為:
0維-PCA:將所有樣本信息都投影到一個點,因此無法反應樣本之間的差異;要想用一個點來盡可能的表示所有樣本數據,則這個點必定是樣本的均值。
1維-PCA:相當於將所有樣本信息向樣本均值的直線投影;
2維-PCA:將樣本的平面分布看作橢圓形分布,求出橢圓形的長短軸方向,然后將樣本信息投影到這兩條長短軸方向上,就是二維PCA。(投影方向就是平面上橢圓的長短軸方向);
3維-PCA:樣本的平面分布看作橢圓形分布,投影方法分別是橢圓球的赤道半徑a和b,以及是極半徑c(沿着z軸);
PCA簡而言之就是根據輸入數據的分布給輸入數據重新找到更能描述這組數據的正交的坐標軸,比如下面一幅圖,對於那個橢圓狀的分布,最方便表示這個分布的坐標軸肯定是橢圓的長軸短軸而不是原來的x ,y軸。
那么如何求出這個長軸和短軸呢?於是線性代數就來了:我們需要先求出這堆樣本數據的協方差矩陣,然后再求出這個協方差矩陣的特征值和特征向量,對應最大特征值的那個特征向量的方向就是長軸(也就是主元)的方向,次大特征值的就是第二主元的方向,以此類推。
原文鏈接:https://blog.csdn.net/guyuealian/article/details/68487833
在與第一個正交的超平面上找最合適的第二個方向
PCA算法流程
來源:https://zhuanlan.zhihu.com/p/37777074
輸入:數據集
,需要降到k維。
去平均值(即去中心化),即每一位特征減去各自的平均值。
計算協方差矩陣
,注:這里除或不除樣本數量n或n-1,其實對求出的特征向量沒有影響。
用特征值分解方法求協方差矩陣
的特征值與特征向量。
對特征值從大到小排序,選擇其中最大的k個。然后將其對應的k個特征向量分別作為行向量組成特征向量矩陣P。
將數據轉換到k個特征向量構建的新空間中,即Y=PX。
這個降維的過程就體現在了選取k這個過程中,選擇的k就是降維之后的維度數
PCA原理分析
這篇文章分析的不錯:http://jermmy.xyz/2017/12/14/2017-12-15-PCA-another-view/,大家自取吧。我放一點結論出來:
這個新的協方差矩陣有一個很重要的性質,除了對角線上的元素,其他元素通通是 0。要知道,協方差矩陣中,對角線上的元素表示方差,非對角線上的元素表示協方差。這說明,經過 PCA 處理后,我們把原本的數據 *xx,轉變成各個分量之間沒有任何關系(協方差為 0)的數據 y!我認為這正是 PCA 的精髓所在,也是我們使用 PCA 算法的根本目標。
要知道,這些特征值(或者說方差)都是按照從大到小排序的,也就是說,我們在降維時,舍棄掉了那些特征值比較小的分量。這么做是符合常理的,因為數據的方差越大,證明分布越廣,這樣,我們還原這些數據的難度是越大的,而方差越小,證明數據分布越集中,還原它們的難度就越小(方差為 0 的話,用一個數就可以代表所有樣本了)。所以,降維時,我們盡量保留那些方差大的數據,而忽略那些方差小的。本文開篇的圖中給出一個形象的解釋,我們把一個二維的數據映射到一維時,也是優先映射到方差大的那一維上,這樣,原數據的分布規律可以最大限度的保留下來,信息的保留也是最完整的。
主成分選擇
以下內容來自於《系統工程》課本,是上課的時候無意中發現原來這本書里也有提到PCA,而且寫得還不錯
另附書上一個計算的例子: