1. 程式人生 > >主成分分析---PCA

主成分分析---PCA

一.PCA(Principal Component Analysis) is what ?
主成分分析是一種特徵提取技術,以某種特定的方式組合進行變數輸入,進一步保留價值量較大的部分,丟棄不重要的變數!
PCA上場的機會:
降低變數的數目,不需要識別可以完全移除的變數,變數之間相互獨立;小編在這裡想要重點強調一下PCA方法是一種線性變換,主要用於高維資料的降維。
既然面對的資料被抽象為一組向量,那麼下面小編覺著有必要研究一些向量的數學性質。
線性空間的性質:
1.零元素唯一,負元素唯一;
2.設輸入這裡寫圖片描述這裡寫圖片描述時,這裡寫圖片描述中的向量組這裡寫圖片描述線性相關的充要條件為該向量組中至少有一個向量可由組中其餘向量線性表示
3.向量的內積定義為:這裡寫圖片描述

,內積的值也代表線段的長度。即這裡寫圖片描述是向量的模。
4.二維降一維:在二維平面中選擇一個方向,將所有資料都投影到這個方向所在直線上。
5.方差:投影后儘可能的分散程度;尋找一維基使所有資料變換後,使得方差最大
6.協方差:相關性的兩個欄位不是完全獨立,必然存在重複表示的資訊這裡寫圖片描述,可以看到,在欄位均值為0的情況下,兩個欄位的協方差表示為其內積除以元素數m。當協方差為0時,表示兩個欄位完全獨立,因此為了讓協方差為0,我們在選擇變換基時應儘量與其正交。
因此降維的主要優化目標進一步轉變為了:將一組N維向量降為K維,就是選擇K個單位正交基,使得變換後的各欄位的協方差為0,方差儘量的最大化。
7.協方差矩陣:PCA的終極目標在某種程度上來說就是建立方差與協方差的關係,因為通過矩陣將兩者統一表示,經過觀察發現,兩者可以被表示成內積的形式。
這裡寫圖片描述

然後用X再乘以自身的轉置:
這裡寫圖片描述
此時會驚奇的發現!將矩陣的每個元素除以m,對角線上的兩個元素分別是方差和協方差。
9.協方差矩陣對角化:即將對角線以外的其他元素化為0,並在對角線上將元素按大小從上到下進行排序。設P為一組基按行組成的矩陣,設Y=PX,即將Y帶入7中的X,則可以求得最優變換基P。P是協方差矩陣的特徵向量正交化後按行排列出的矩陣,其中每一行都是一個特徵向量。如果設P按照特徵值的從大到小,將特徵向量從上到下排列,則用P的前K行組成的矩陣乘以原始資料矩陣X,就得到了我們需要的降維後的資料矩陣Y。
下面給出演算法:
設有m個n維的資料:
setp1:將原始資料按列組成n行m列矩陣X
step2:
將X的每一行進行零均值化,即減去這一行的均值
step3:求出協方差矩陣
step4:求出協方差矩陣的特徵值及對應的特徵向量
step5:將特徵向量按對應特徵值大小從上到下按行排列成矩陣
**step6:**Y=PX即為降維到k維後的資料