7.2 PCA-机器学习笔记-斯坦福吴恩达教授
PCA(主成分分析)
PCA,Principle Component Analysis,即主成分分析法,是特征降維的最常用手段。顧名思義,PCA 能從冗余特征中提取主要成分,在不太損失模型質(zhì)量的情況下,提升了模型訓練速度。
如上圖所示,我們將樣本到紅色向量的距離稱作是投影誤差(Projection Error)。以二維投影到一維為例,PCA 就是要找尋一條直線,使得各個特征的投影誤差足夠小,這樣才能盡可能的保留原特征具有的信息。
假設我們要將特征從 nnn 維度降到 kkk 維:PCA 首先找尋 kkk 個 nnn 維向量,然后將特征投影到這些向量構成的 kkk 維空間,并保證投影誤差足夠小。下圖中中,為了將特征維度從三維降低到二位,PCA 就會先找尋兩個三維向量 u(1)u^{(1)}u(1),u(2)u^{(2)}u(2) ,二者構成了一個二維平面,然后將原來的三維特征投影到該二維平面上:
算法流程
假定我們需要將特征維度從 nnn 維降到 kkk 維。則 PCA 的執(zhí)行流程如下:
特征標準化,平衡各個特征尺度:
xj(i)=xj(i)?μjsj,μj為特征j的均值,sj為特征j的標準差。x^{(i)}_j=\frac{x^{(i)}_j?μ_j}{sj},\ μ_j 為特征\ j\ 的均值,s_j\ 為特征\ j\ 的標準差。xj(i)?=sjxj(i)??μj??,?μj?為特征?j?的均值,sj??為特征?j?的標準差。
計算協(xié)方差矩陣 ΣΣΣ :
Σ=1m∑i=1m(x(i))(x(i))T=1m?XTX\Sigma = \frac 1m \sum_{i=1}^m(x^{(i)})(x^{(i)})^T =\frac1m\cdot X^TX Σ=m1?i=1∑m?(x(i))(x(i))T=m1??XTX
通過奇異值分解(SVD),求取 ΣΣΣ 的特征向量(eigenvectors):
(U,S,VT)=SVD(Σ)(U,S,V^T)=SVD(\Sigma)(U,S,VT)=SVD(Σ)
從 UUU 中取出前 kkk 個左奇異向量,構成一個約減矩陣 UreduceUreduceUreduce :
Ureduce=(u(1),u(2),?,u(k))U_{reduce}=(u^{(1)},u^{(2)},?,u^{(k)})Ureduce?=(u(1),u(2),?,u(k))
計算新的特征向量: z(i)z^{(i)}z(i)
z(i)=UreduceT?x(i)z^{(i)}=U^T_{reduce}?x^{(i)}z(i)=UreduceT??x(i)
特征還原
因為PCA僅保留了特征的主成分,所以PCA是一種有損的壓縮方式,假定我們獲得新特征向量為:
z=UreduceTxz=U^T_{reduce}xz=UreduceT?x
那么,還原后的特征 xapproxx_{approx}xapprox? 為:
xapprox=Ureducezx_{approx}=U_{reduce}zxapprox?=Ureduce?z
降到多少維才合適?
從 PCA 的執(zhí)行流程中,我們知道,需要為 PCA 指定目的維度 kkk 。如果降維不多,則性能提升不大;如果目標維度太小,則又丟失了許多信息。通常,使用如下的流程的來評估 kkk 值選取優(yōu)異:
求各樣本的投影均方誤差:
min?1m∑j=1m∣∣x(i)?xapprox(i)∣∣2\min \frac 1m \sum_{j=1}^m||x^{(i)}-x^{(i)}_{approx}||^2minm1?j=1∑m?∣∣x(i)?xapprox(i)?∣∣2
求數(shù)據(jù)的總變差:
1m∑j=1m∣∣x(i)∣∣2\frac 1m \sum_{j=1}^m||x^{(i)}||^2m1?j=1∑m?∣∣x(i)∣∣2
評估下式是否成立:
min?1m∑j=1m∣∣x(i)?xapprox(i)∣∣21m∑j=1m∣∣x(i)∣∣2≤?\frac {\min \frac 1m \sum_{j=1}^m||x^{(i)}-x^{(i)}_{approx}||^2} {\frac 1m \sum_{j=1}^m||x^{(i)}||^2} ≤?m1?∑j=1m?∣∣x(i)∣∣2minm1?∑j=1m?∣∣x(i)?xapprox(i)?∣∣2?≤?
其中, ??? 的取值可以為 0.01,0.05,0.10,?0.01,0.05,0.10,?0.01,0.05,0.10,?0.01,0.05,0.10,?0.01,0.05,0.10,?0.01,0.05,0.10,? ,假設 ?=0.01=0.01?=0.01=0.01?=0.01=0.01 ,我們就說“特征間 99% 的差異性得到保留”。
不要提前優(yōu)化
由于 PCA 減小了特征維度,因而也有可能帶來過擬合的問題。PCA 不是必須的,在機器學習中,一定謹記不要提前優(yōu)化,只有當算法運行效率不盡如如人意時,再考慮使用 PCA 或者其他特征降維手段來提升訓練速度。
不只是加速學習
降低特征維度不只能加速模型的訓練速度,還能幫我們在低維空間分析數(shù)據(jù),例如,一個在三維空間完成的聚類問題,我們可以通過 PCA 將特征降低到二維平面進行可視化分析。
例如下表中,我們有將近幾十個特征來描述國家的經(jīng)濟水平,但是你仔細觀察發(fā)現(xiàn),我們很難直觀的看出各個國家的經(jīng)濟差異。
借助于 PCA,我們將特征降低到了二維,并在二維空間進行觀察,很清楚的就能發(fā)現(xiàn)美國和新加坡具有很高的經(jīng)濟水平:
參考資料
- 強大的矩陣奇異值分解(SVD)及其應用
總結
以上是生活随笔為你收集整理的7.2 PCA-机器学习笔记-斯坦福吴恩达教授的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7.1 概述-机器学习笔记-斯坦福吴恩达
- 下一篇: 7.3 程序示例--PCA 模型-机器学