主成分分析原理(PCA)

主成分分析原理(PCA)

兩個矩陣相乘的意義是將右邊矩陣中的每一列向量 a_{i}變換到左邊矩陣中以每一行行向量爲基所表示的空間中去。

選擇不同的基可以對同樣一組數據給出不同的表示,如果基的數量少於向量本身的維數,則可以達到降維的效果

有一組 N 維向量,現在要將其降到 K 維(K 小於 N),那麼我們應該如何選擇 K 個基才能最大程度保留原有的信息?(投影后的投影值儘可能分散,因爲如果重疊就會有樣本消失。從熵的角度進行理解,熵越大所含信息越多。)

變量內方差(一維):

我們知道數值的分散程度,可以用數學上的方差來表述。單變量的方差可以看做是每個元素與變量均值的差的平方和的均值,即: 

                                                          

爲了方便處理,我們將基組的均值都化爲 0 ,因此方差可以直接用每個元素的平方和除以元素個數表示:

                                                             

於是上面的問題被形式化表述爲:尋找一個一維基,使得所有數據變換爲這個基上的座標表示後,方差值最大。

變量間協方差:

協方差可以表示兩個變量的相關性,當協方差爲 0 時,表示兩個變量完全獨立。爲了讓兩個變量儘可能表示更多的原始信息,我們希望它們之間不存在線性相關性,因爲相關性意味着兩個變量不是完全獨立,必然存在重複表示的信息。

協方差公式爲:

                                                        

爲了讓協方差爲 0,我們選擇第二個基時只能在與第一個基正交的方向上進行選擇,因此最終選擇的兩個方向一定是正交的。因此降維問題的優化目標:將一組 N 維向量降爲 K 維,其目標是選擇 K 個單位正交基,使得原始數據變換到這組基上後,各變量兩兩間協方差爲 0,而變量方差則儘可能大(在正交的約束下,取最大的 K 個方差)。

 

假設我們只有 a 和 b 兩個變量,那麼我們將它們按行組成矩陣 X:

                                                               

然後得到協方差矩陣:

                               

我們可以看到這個矩陣對角線上的分別是兩個變量的方差,而其它元素是 a 和 b 的協方差。兩者被統一到了一個矩陣裏。

我們很容易被推廣到一般情況:

設我們有 n 個 m 維數據記錄,將其排列成矩陣 X_{n,m},設,則 C 是一個對稱矩陣,其對角線分別對應各個變量的方差,而第 i 行 j 列和 j 行 i 列元素相同,表示 i 和 j 兩個變量的協方差

我們需要將除對角線外的其它元素化爲 0,並且在對角線上將元素按大小從上到下排列(變量方差儘可能大),優化目標變成了:尋找一個矩陣 P,滿足 PCP^{T}是一個對角矩陣,並且對角元素按從大到小(對應特徵值從大到小)依次排列,那麼 P 的前 K 行就是要尋找的基,用 P 的前 K 行組成的矩陣乘以 X 就使得 X 從 N 維降到了 K 維並滿足上述優化條件

PCA算法步驟(n個p維數據,降成k維):

1.所有數據排成n行p列矩陣X,並進行中心化(每一行減去該行均值)使得所有樣本之間的特徵值均值爲0,同時應用feature scaling,縮放到-0.5~0.5;

2. 計算樣本的協方差矩陣X\cdot X^{^{T}}
3.計算協方差矩陣的特徵值及對應的特徵向量;
4.取出最大的k個特徵值對應的特徵向量(w1,w2,...,wk), 將所有的特徵向量標準化後,組成特徵向量矩陣W;
5.對樣本集中的每一個樣本x轉化爲新的樣本z(i)=M^{^{T}}\cdot x(i)
6.得到輸出樣本集D=(z(1),z(2),...,z(k))。

PCA效果:

緩解維度災難:PCA 算法通過捨去一部分信息之後能使得樣本的採樣密度增大(因爲維數降低了),這是緩解維度災難的重要手段;

降噪:當數據受到噪聲影響時,最小特徵值對應的特徵向量往往與噪聲有關,將它們捨棄能在一定程度上起到降噪的效果;

過擬合:PCA 保留了主要信息,但這個主要信息只是針對訓練集的,而且這個主要信息未必是重要信息。有可能捨棄了一些看似無用的信息,但是這些看似無用的信息恰好是重要信息,只是在訓練集上沒有很大的表現,所以 PCA 也可能加劇了過擬合;

特徵獨立:PCA 不僅將數據壓縮到低維,它也使得降維之後的數據各特徵相互獨立(特徵向量相互垂直);

參考:https://blog.csdn.net/zouxiaolv/article/details/100590725

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章