內容摘要
本文深入剖析主成分分析(PCA)技術。介紹其通過正交變換簡化數據維度的核心原理,詳細推導基于最小投影距離和最大投影方差的算法過程,總結算法流程步驟。全面分析PCA的優缺點,并對比其與KPCA的差異。同時闡述降維的必要性和目的,助力讀者系統掌握PCA技術及其在數據處理中的應用。
關鍵詞:主成分分析;降維;協方差矩陣;特征值分解
一、引言
在機器學習和數據處理領域,數據的高維度常常帶來諸多挑戰,如計算復雜度增加、數據稀疏性問題以及過擬合風險提高等。主成分分析(Principal Component Analysis,PCA)作為一種強大的降維技術,能夠有效地將高維數據轉換為低維數據,同時最大程度保留數據的關鍵信息。本文將深入探討PCA的原理、算法、優缺點以及其在實際應用中的價值。
二、PCA核心思想
2.1 解決數據特征問題
在處理訓練數據時,經常會面臨數據特征過多或特征累贅的問題。PCA的核心思想是將m維特征映射到n維(n<m),這n維形成的主元是重構出來最能代表原始數據的正交特征。通過這種方式,PCA可以去除數據中的冗余信息,簡化數據結構,使得后續的數據分析和處理更加高效。
2.2 核心思想圖解
假設數據集中包含m個n維數據,現在需要將其降維到n’維。以n=2,n’=1為例,我們要在眾多維度方向中找到一個最能代表原始數據集的方向。
如圖1所示,有 u 1 u_{1} u1?、 u 2 u_{2} u2?兩個向量方向,從圖中可以直觀地看出, u 1 u_{1} u1?比 u 2 u_{2} u2?更適合代表原始數據集。這是基于兩個主要評價指標:
- 樣本點到這個直線的距離足夠近。
- 樣本點在這個直線上的投影能盡可能分開。
如果需要降維的目標維數是其他任意維,則評價指標相應變為:
- 樣本點到這個超平面的距離足夠近。
- 樣本點在這個超平面上的投影能盡可能分開。
三、PCA算法推理
3.1 基于最小投影距離的推理
假設數據集中包含m個n維數據,且數據進行了中心化。經過投影變換得到的新坐標為 z ( i ) = w T x ( i ) z^{(i)} = w^{T}x^{(i)} z(i)=wTx(i),其中w是標準正交基。如果我們將數據從n維降到n’維,經過降維后,新坐標為 Z = [ z ( 1 ) , z ( 2 ) , ? , z ( m ) ] T Z = [z^{(1)}, z^{(2)}, \cdots, z^{(m)}]^{T} Z=[z(1),z(2),?,z(m)]T。樣本點 x ( i ) x^{(i)} x(i)在新坐標系下的投影為 x ~ ( i ) = W z ( i ) \tilde{x}^{(i)} = Wz^{(i)} x~(i)=Wz(i)。
要想使樣本點到超平面的距離足夠近,目標是最小化 ∑ i = 1 m ∥ x ~ ( i ) ? x ( i ) ∥ 2 2 \sum_{i = 1}^{m}\left\|\tilde{x}^{(i)} - x^{(i)}\right\|_{2}^{2} ∑i=1m? ?x~(i)?x(i) ?22?。對此式進行推理,可得:
∑ i = 1 m ∥ x ~ ( i ) ? x ( i ) ∥ 2 2 = ∑ i = 1 m ∥ W z ( i ) ? x ( i ) ∥ 2 2 = ∑ i = 1 m ( W z ( i ) ) T ( W z ( i ) ) ? 2 ∑ i = 1 m ( W z ( i ) ) T x ( i ) + ∑ i = 1 m ( x ( i ) ) T x ( i ) = ∑ i = 1 m ( z ( i ) ) T ( z ( i ) ) ? 2 ∑ i = 1 m ( z ( i ) ) T x ( i ) + ∑ i = 1 m ( x ( i ) ) T x ( i ) = ? t r ( W T ( ∑ i = 1 m x ( i ) ) T ( z ( i ) ) + ∑ i = 1 m ( x ( i ) ) T x ( i ) ) = ? t r ( W T ( ∑ i = 1 m x ( i ) ( x ( i ) ) T ) W ) \begin{align*} \sum_{i = 1}^{m}\left\|\tilde{x}^{(i)} - x^{(i)}\right\|_{2}^{2} &=\sum_{i = 1}^{m}\left\|Wz^{(i)} - x^{(i)}\right\|_{2}^{2}\\ &=\sum_{i = 1}^{m}\left(Wz^{(i)}\right)^{T}\left(Wz^{(i)}\right)-2\sum_{i = 1}^{m}\left(Wz^{(i)}\right)^{T}x^{(i)}+\sum_{i = 1}^{m}\left(x^{(i)}\right)^{T}x^{(i)}\\ &=\sum_{i = 1}^{m}\left(z^{(i)}\right)^{T}\left(z^{(i)}\right)-2\sum_{i = 1}^{m}\left(z^{(i)}\right)^{T}x^{(i)}+\sum_{i = 1}^{m}\left(x^{(i)}\right)^{T}x^{(i)}\\ &=-tr\left(W^{T}\left(\sum_{i = 1}^{m}x^{(i)}\right)^{T}\left(z^{(i)}\right)+\sum_{i = 1}^{m}\left(x^{(i)}\right)^{T}x^{(i)}\right)\\ &=-tr\left(W^{T}\left(\sum_{i = 1}^{m}x^{(i)}\left(x^{(i)}\right)^{T}\right)W\right) \end{align*} i=1∑m? ?x~(i)?x(i) ?22??=i=1∑m? ?Wz(i)?x(i) ?22?=i=1∑m?(Wz(i))T(Wz(i))?2i=1∑m?(Wz(i))Tx(i)+i=1∑m?(x(i))Tx(i)=i=1∑m?(z(i))T(z(i))?2i=1∑m?(z(i))Tx(i)+i=1∑m?(x(i))Tx(i)=?tr ?WT(i=1∑m?x(i))T(z(i))+i=1∑m?(x(i))Tx(i) ?=?tr(WT(i=1∑m?x(i)(x(i))T)W)?
在推導過程中,分別用到了矩陣轉置公式以及矩陣的跡,最后兩步是將代數和轉為矩陣形式。
由于W的每一個向量 w j w_{j} wj?是標準正交基, S = 1 m ∑ i = 1 m x ( i ) ( x ( i ) ) T S = \frac{1}{m}\sum_{i = 1}^{m}x^{(i)}\left(x^{(i)}\right)^{T} S=m1?∑i=1m?x(i)(x(i))T是數據集的協方差矩陣, ∑ i = 1 m ( x ( i ) ) T x ( i ) \sum_{i = 1}^{m}\left(x^{(i)}\right)^{T}x^{(i)} ∑i=1m?(x(i))Tx(i)是一個常量。最小化 ∑ i = 1 m ∥ x ~ ( i ) ? x ( i ) ∥ 2 2 \sum_{i = 1}^{m}\left\|\tilde{x}^{(i)} - x^{(i)}\right\|_{2}^{2} ∑i=1m? ?x~(i)?x(i) ?22?又可等價于:
a r g m i n ? W ? t r ( W T X X T W ) \underbrace{arg min}_{W}-tr\left(W^{T}XX^{T}W\right) W argmin???tr(WTXXTW) s . t . W T W = I s.t. W^{T}W = I s.t.WTW=I
利用拉格朗日函數可得到:
J ( W ) = ? t r ( W T X X T W ) + λ ( W T W ? I ) J(W)=-tr\left(W^{T}XX^{T}W\right)+\lambda\left(W^{T}W - I\right) J(W)=?tr(WTXXTW)+λ(WTW?I)
對w求導,可得 ? X X T W + λ W = 0 -XX^{T}W+\lambda W = 0 ?XXTW+λW=0,即 X X T W = λ W XX^{T}W=\lambda W XXTW=λW。 X X T XX^{T} XXT是由n’個特征向量組成的矩陣,λ為 X X T XX^{T} XXT的特征值。w即為我們想要的矩陣。
3.2 基于最大投影方差的推導
基于最大投影方差的推導過程較為復雜,本文不再贅述,感興趣的讀者可自行查閱資料。
四、PCA算法流程總結
PCA算法的輸入為n維樣本集 X = [ x ( 1 ) , x ( 2 ) , ? , x ( m ) ] X = [x^{(1)}, x^{(2)}, \cdots, x^{(m)}] X=[x(1),x(2),?,x(m)],目標降維維數為n’;輸出為降維后的新樣本集 Y Y Y。主要步驟如下:
- 對所有的樣本進行中心化,使得數據的均值為0。
- 計算樣本的協方差矩陣 X X T XX^{T} XXT,協方差矩陣能同時表現不同維度間的相關性及各個維度上的方差。
- 對協方差矩陣 X X T XX^{T} XXT進行特征值分解,得到特征值和特征向量。
- 取出最大的n’個特征值對應的特征向量,這些特征向量將構成新的低維空間的基。
- 標準化特征向量,得到特征向量矩陣w,確保其具有良好的數學性質。
- 轉化樣本集中的每個樣本,將原始樣本投影到新的低維空間中。
- 得到輸出新樣本集,完成降維操作。
在降維時,有時不明確目標維數,而要指定降維后的主成分比重閾值 k ( k ∈ ( 0 , 1 ] ) k(k \in(0,1]) k(k∈(0,1])。假設n個特征值為 λ 1 , λ 2 , ? , λ n \lambda_{1}, \lambda_{2}, \cdots, \lambda_{n} λ1?,λ2?,?,λn?,則n*可從 ∑ i = 1 n ? λ i ∑ i = 1 n λ i ≥ k \frac{\sum_{i = 1}^{n^{*}}\lambda_{i}}{\sum_{i = 1}^{n}\lambda_{i}} \geq k ∑i=1n?λi?∑i=1n??λi??≥k得到。
五、PCA思想總結
PCA本質上是將高維數據通過線性變換投影到低維空間的過程。在這個過程中,它去除了可以被其他向量代表的線性相關向量,以及較小特征值對應的特征向量,從而找出最能代表原始數據的投影方法。
完成PCA的關鍵是求解協方差矩陣。對角化后的協方差矩陣,對角線上較小的新方差對應的就是那些該去掉的維度,所以取那些含有較大能量(特征值)的維度即可,其余的就舍掉,實現去冗余的目的。
六、PCA算法的優缺點
6.1 優點
- 僅僅需要以方差衡量信息量,不受數據集以外的因素影響,計算相對簡單直接。
- 各主成分之間正交,可消除原始數據成分間相互影響的因素,使得數據結構更加清晰。
- 計算方法主要運算是特征值分解,易于實現,在許多編程語言和機器學習庫中都有現成的實現方法。
6.2 缺點
- 主成分各個特征維度的含義具有一定的模糊性,不如原始樣本特征的解釋性強,這給后續的數據分析和理解帶來一定困難。
- 方差小的非主成分也可能含有樣本的重要信息,因降維去冗余可能對后續數據處理有影響,導致部分有用信息丟失。
七、降維的必要性及目的
7.1 必要性
- 避免多重共線性和預測變量之間相互關聯。多重共線性會導致解空間的不穩定,從而可能導致結果的不連貫,影響模型的準確性和可靠性。
- 高維空間本身具有稀疏性。例如,一維正態分布有68%的值落于正負標準差之間,而在十維空間上只有2%,數據的稀疏性使得在高維空間中進行數據分析和建模變得更加困難。
- 避免過多的變量對查找規律造成冗余麻煩,增加計算復雜度和分析難度。
- 僅在變量層面上分析可能會忽略變量之間的潛在聯系,而降維可以幫助發現這些潛在聯系。
7.2 目的
- 減少預測變量的個數,簡化數據結構,提高模型的訓練效率和泛化能力。
- 確保這些變量是相互獨立的,降低變量之間的相關性,提高模型的穩定性。
- 提供一個框架來解釋結果,相關特征,特別是重要特征更能在數據中明確顯示出來;如果只有二維或者三維的話,就更便于可視化展示,幫助用戶更好地理解數據。
- 數據在低維下更容易處理、使用,降低計算成本和存儲需求。
- 去除數據噪聲,提高數據的質量和可靠性。
- 降低算法運算開銷,使得模型能夠在更短的時間內完成訓練和預測任務。
八、KPCA與PCA的區別
KPCA(Kernelized PCA)用到了核函數思想,使用了核函數的主成分分析一般稱為核主成分分析。應用PCA算法的前提是假設存在一個線性超平面,進而投影。如果數據不是線性的,這時就需要用到KPCA。
KPCA將數據集從n維映射到線性可分的高維N(N>n),然后再從N維降維到一個低維度n’(n’<n<N)。假設高維空間數據由n維空間的數據通過映射?產生,n維空間的特征分解為:
∑ i = 1 m x ( i ) ( x ( i ) ) T W = λ W \sum_{i = 1}^{m}x^{(i)}\left(x^{(i)}\right)^{T}W=\lambda W i=1∑m?x(i)(x(i))TW=λW
其映射為:
∑ i = 1 m ? ( x ( i ) ) ? ( x ( i ) ) T W = λ W \sum_{i = 1}^{m}\phi\left(x^{(i)}\right)\phi\left(x^{(i)}\right)^{T}W=\lambda W i=1∑m??(x(i))?(x(i))TW=λW
KPCA通過在高維空間進行協方差矩陣的特征值分解,然后用和PCA一樣的方法進行降維。由于KPCA需要核函數的運算,因此它的計算量要比PCA大很多。
九、總結
主成分分析(PCA)是一種重要的降維技術,在數據處理、機器學習等領域有著廣泛的應用。本文詳細介紹了PCA的核心思想、算法推理、流程總結、思想總結、優缺點以及與KPCA的區別,同時闡述了降維的必要性和目的。希望讀者通過本文的學習,能夠對PCA有更深入的理解和掌握,在實際工作中靈活運用這一技術解決數據處理和分析的相關問題。