直觀解釋PCA

是干什么的?

首先有一組數(shù)據(jù)藍(lán)色點(diǎn),PCA所謂的降維操作就是找到一個新的坐標(biāo)系(旋轉(zhuǎn)的兩條直線式垂直的,我們可以用一組標(biāo)準(zhǔn)正交基來指示),然后減掉其中一些維度,使誤差足夠小。

image.png

基本思路

假設(shè)我們有一個數(shù)據(jù)X_{n*m},其中n代表了特征的個數(shù),m代表了樣本數(shù)。首先對X的特征進(jìn)行零均值化。

協(xié)方差矩陣C_{n*n} = XX^T(這里應(yīng)該除以m,不妨礙推導(dǎo)),C的對角線代表了特征自身的方差,而其他位置比如C_{i,j}代表了特征i和特征j之間的協(xié)方差。

我們想要對原來的數(shù)據(jù)X做一個行變換A_{n*n},把原來的特征組合成新的特征,而新的特征之間沒有關(guān)聯(lián),也就是新的矩陣Y_{n*m}的協(xié)方差矩陣?yán)镏挥袑蔷€元素,其他位置都是0.

Want: YY^T=\Lambda\Lambda是一個對角陣

帶入Y=AX得到(AX)(AX)^T=\Lambda,展開得到AXX^TA^T=\Lambda,同志們這不就是對XX^T進(jìn)行對角化嗎?因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=XX%5ET" alt="XX^T" mathimg="1">是實(shí)對稱矩陣,一定可以對角化XX^T=Q{\Lambda}Q^T,原式中的A就是對角化后的特征向量矩陣Q^T

其中特征值\Lambda大小代表了Y里面特征的方差大小,特征值越大,特征的方差越大,信息量越多。我們挑選主成分的話,只要挑選前面比較大的特征值對應(yīng)的特征就可以了。

計(jì)算PCA的步驟

總結(jié)一下PCA的步驟:

1. 將原始數(shù)據(jù)按列組成n行m列矩陣X

2. 將X的每一行(代表一個屬性字段)進(jìn)行零均值化,即減去這一行的均值

3. 求出協(xié)方差矩陣C=1/m * XX^T

4. 求出協(xié)方差矩陣的特征值\Lambda及對應(yīng)的特征向量Q

5. 將特征向量按對應(yīng)特征值大小從左到右按列排列成矩陣,取前k行組成矩陣Q

6. Y=Q^TX即為降維到k維后的數(shù)據(jù)

與SVD的關(guān)系

以上就是先求協(xié)方差矩陣然后特征值分解的方法,那么可以不求協(xié)方差矩陣嗎?可以,直接用SVD。

SVD可以分解任意矩陣:X = U \Sigma V ^ T

上面通過XX^T特征值分解其實(shí)得到的就是這里的U矩陣,通過成熟的SVD方法很容易求得這些矩陣。

參考:

Machine Learning — Singular Value Decomposition (SVD) & Principal Component Analysis (PCA)

從PCA和SVD的關(guān)系拾遺

PCA的數(shù)學(xué)原理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容