7.4.4 主成分分析 PCA
7.4.4 主成分分析 PCA
假設我們研究的對象具有相關屬性,令屬性向量為 x=(x1,x2,?,xm)\mathbf{x} = (x_1,x_2,\cdots,x_m)x=(x1?,x2?,?,xm?) 即有 mmm 個屬性。例如分析學生成績,每個學生有數學、語文、英語、物理、化學等 555 門學科成績,則成績向量為 x=(x1,x2,?,x5)\mathbf{x} = (x_1,x_2,\cdots,x_5)x=(x1?,x2?,?,x5?) 即有 555 個屬性。我們收集了 nnn 個學生的成績,則所有學生成績構成數據矩陣 A=[x1,x2,?,xn]A = [\mathbf{x}_1,\mathbf{x}_2,\cdots,\mathbf{x}_n]A=[x1?,x2?,?,xn?] 即數據矩陣每列為一個學生成績向量,共有 nnn 個向量。本節為了表述方便,把數據矩陣每列向量記為 xi\mathbf{x}_ixi? 或 ai\mathbf{a}_iai? 。每個學生成績向量是 mmm 維空間的點,數據矩陣是 nnn 個點構成的點云。這些點云雖然位于 mmm 維空間,但大部分情況下位于 mmm 維空間中低維子空間,因為每個學生成績高度相關,即成績好的學生每門課成績都好,成績差的學生每門課成績都差。由于點云位于低維子空間,所以其真實維度遠小于 mmm 維。
PCA分析之前,先要對數據進行中心化,即每個新屬性 xi′=(xi?xˉi)x'_i = (x_i - \bar x_i)xi′?=(xi??xˉi?) 其中 xˉi\bar x_ixˉi? 是屬性平均值。例如學生成績,先計算所有學生數學的平均值,然后新數學成績為數學成績-平均值,其它科目成績同樣處理。數學描述為記 xˉ\mathbf{\bar x}xˉ 為屬性平均值,則新屬性為 xi′=xi?xˉ\mathbf{x}'_i = \mathbf{x}_i - \mathbf{\bar x}xi′?=xi??xˉ 。為了簡化符號,把中心化后數據矩陣還是記為 AAA 。
根據奇異值分解 ATui=σiviA^T\mathbf{u}_i = \sigma_i \mathbf{v}_iATui?=σi?vi? 得
(ATui)TATui=(σivi)Tσivi=σi2(A^T\mathbf{u}_i)^TA^T\mathbf{u}_i = (\sigma_i \mathbf{v}_i)^T\sigma_i \mathbf{v}_i = \sigma^2_i (ATui?)TATui?=(σi?vi?)Tσi?vi?=σi2?
令向量 yi=ATui\mathbf{y}_i = A^T\mathbf{u}_iyi?=ATui? ,則其分量 yijy_{ij}yij? 表示第 jjj 個學生成績向量 xj\mathbf{x}_jxj? 與向量 ui\mathbf{u}_iui? 的內積,內積 yijy_{ij}yij? 可以看作第 jjj 個學生第 iii 門“綜合科目”“加權”成績 xjTui=ui1x1+ui2x2+?+uimxm\mathbf{x}_j^T\mathbf{u}_i = u_{i1}x_1+u_{i2}x_2+\cdots+u_{im}x_mxjT?ui?=ui1?x1?+ui2?x2?+?+uim?xm? ,權重為 uiju_{ij}uij? ,由于 ui\mathbf{u}_iui? 為單位向量,故權重的平方和為1。如果把 ui\mathbf{u}_iui? 加權后的成績 yi\mathbf{y}_iyi? 看作第 iii 門“綜合科目”的成績,則學生有 mmm 門“綜合科目”的成績,稱為新成績。向量 yi\mathbf{y}_iyi? 就是所有學生第 iii 門“綜合科目”的成績構成的成績向量,根據 yiTyi=σi2\mathbf{y}^T_i\mathbf{y}_i = \sigma^2_iyiT?yi?=σi2? 知其方差為 1n?1σi2\frac{1}{n-1}\sigma^2_in?11?σi2?,其中 nnn 是學生數,由于系數 1n?1\frac{1}{n-1}n?11? 是固定的,后面為了書寫方便,方差省略該常系數。故每門新成績的方差為 σ12,σ22,?,σm2\sigma^2_1,\sigma^2_2,\cdots,\sigma^2_mσ12?,σ22?,?,σm2? 。因為數據已經中心化,所以樣本每個屬性的均值為 000 ,新屬性的均值也是 000 ,所以新屬性的平方就是方差。根據能量守恒定律:奇異值平方和等于所有元素平方和,新成績的方差之和包含了數據矩陣 AAA 所有的信息。由于 σ1≥σ2≥?≥σm\sigma_1 \ge \sigma_2 \ge \cdots \ge \sigma_mσ1?≥σ2?≥?≥σm? 當其前 kkk 門新成績方差占總方差的 99%或99.9%99\% 或 99.9\%99%或99.9% 時,我們可以只用前 kkk 門新成績表示成績矩陣,達到數據壓縮目的,前 kkk 門新成績稱為主成分,這就是主成分分析,一般有 k?mk \ll mk?m。kkk 為點云子空間的維度,是數據矩陣真實維度。第一個主成分最重要,重要性為 σ12/∑iσi2\sigma^2_1/\sum_i{\sigma^2_i}σ12?/∑i?σi2?,重要性依次減小。
yi=ATui\mathbf{y}_i = A^T\mathbf{u}_iyi?=ATui? 還可以看作每個樣本點數據 ai\mathbf{a}_iai? 在 ui\mathbf{u}_iui? 方向上的投影,所有投影構成向量 yi\mathbf{y}_iyi? ,第一個方向投影u1\mathbf{u}_1u1? 的方差最大,故稱為第一主方向,u2\mathbf{u}_2u2? 的方差其次,故稱為第二主方向,PCA就是依次找到最大的前 kkk 個主方向,主成分方向互相正交。
(ATui)T(ATuj)(A^T\mathbf{u}_i)^T(A^T\mathbf{u}_j)(ATui?)T(ATuj?) 表示第 iii 門“綜合科目”和第 jjj 門“綜合科目”的協方差
(ATui)T(ATuj)=uiTAATuj=uiTσj2uj=0(A^T\mathbf{u}_i)^T(A^T\mathbf{u}_j) = \mathbf{u}^T_iAA^T\mathbf{u}_j=\mathbf{u}^T_i\sigma^2_j\mathbf{u}_j = 0 (ATui?)T(ATuj?)=uiT?AATuj?=uiT?σj2?uj?=0
故任意兩門不同的“綜合科目”的協方差為 0,即表示這些科目成績不相關解耦了,所以主成分之間都是解耦的,這是主成分分析的第二個優點。
主成分分析快速證明方法如下:
矩陣 AATAA^TAAT 是什么呢?就是協方差矩陣!第五章介紹過,請大家復習下。
AAT=UΣ2UTAA^T = U\Sigma^2 U^TAAT=UΣ2UT 得 UTAATU=(UTA)(UTA)T=Σ2U^TAA^TU = (U^TA)(U^TA)^T = \Sigma^2UTAATU=(UTA)(UTA)T=Σ2 ,令
Y=UTA=[u1TA?umTA]Y = U^TA = \left[ \begin{matrix} \mathbf{u}^T_1A \\ \vdots \\ \mathbf{u}^T_mA \end{matrix} \right] Y=UTA=????u1T?A?umT?A?????
即為“綜合科目”成績矩陣,由 YYT=Σ2YY^T = \Sigma^2YYT=Σ2 知第 iii 門“綜合科目”方差為 σi2\sigma^2_iσi2?,第 iii 門“綜合科目”和第 jjj 門“綜合科目”的協方差為 0 ,數據矩陣 YYY 的前 kkk 行向量
Y=UTA=[u1TA?ukTA]Y = U^TA = \left[ \begin{matrix} \mathbf{u}^T_1A \\ \vdots \\ \mathbf{u}^T_kA \end{matrix} \right] Y=UTA=????u1T?A?ukT?A?????
即為主成分。由 Y=UTAY = U^TAY=UTA 即對數據矩陣 AAA 進行旋轉變換 UTU^TUT 得到主成分 YYY ,矩陣 YYY 的每列數據為每個學生新成績向量。所以 PCA 算法本質上是對數據點云進行旋轉變換,變換后數據矩陣的協方差矩陣為對角陣 Σ2\Sigma^2Σ2 ,即各個主成分無相關性。
數據矩陣重構
假設選出前 kkk 個主成分方向 u1,?,uk\mathbf{u}_1,\cdots,\mathbf{u}_ku1?,?,uk? ,樣本 ai\mathbf{a}_iai? 對應的主成分(坐標)為 aiTu1,?,aiTuk\mathbf{a}^T_i\mathbf{u}_1,\cdots,\mathbf{a}^T_i\mathbf{u}_kaiT?u1?,?,aiT?uk? ,則利用主成分重構樣本 ai\mathbf{a}_iai? 為:
aiC=u1aiTu1+?+ukaiTuk=(u1u1T+?+ukukT)ai=UkUkTai\mathbf{a}^C_i = \mathbf{u}_1\mathbf{a}^T_i\mathbf{u}_1+\cdots+\mathbf{u}_k\mathbf{a}^T_i\mathbf{u}_k \\ = (\mathbf{u}_1\mathbf{u}^T_1+\cdots+\mathbf{u}_k\mathbf{u}^T_k)\mathbf{a}_i \\ = U_kU^T_k\mathbf{a}_i aiC?=u1?aiT?u1?+?+uk?aiT?uk?=(u1?u1T?+?+uk?ukT?)ai?=Uk?UkT?ai?
數據矩陣 AAA 的重構矩陣為 AC=UkUkTA=PAA^C = U_kU^T_kA = PAAC=Uk?UkT?A=PA ,其中矩陣 PPP 是投影矩陣,所以PCA分析本質上就是投影變換,是線性變換。重構殘差為 ΔA=A?UkUkTA=(E?UkUkT)A\Delta A = A - U_kU^T_kA = (E-U_kU^T_k)AΔA=A?Uk?UkT?A=(E?Uk?UkT?)A ,重構殘差一般是由噪聲引起的,故主成分方向獲得的重構數據矩陣具有去噪效果。因為每個重構樣本 aiC\mathbf{a}^C_iaiC? 均位于 kkk 維子空間內,故重構矩陣 ACA^CAC 也位于 kkk 維子空間內,即 rankAC=krank A^C = krankAC=k ,重構矩陣 ACA^CAC 是所有秩為 kkk 的矩陣中與原矩陣 AAA 最接近的矩陣,這和矩陣低秩近似結論一致。當 k=rankA=rk = rank A = rk=rankA=r 時即取所有主成分方向,則重構殘差為零。
幾何圖像
根據每個樣本點數據 ai\mathbf{a}_{i}ai? 在第一主方向 u1\mathbf{u}_1u1? 上的投影的方差最大,知樣本點在此方向最分散,為第一主方向,最大方差為最大奇異值平方。第二主方向垂直于第一主方向,且投影方差第二大,方差為第二大奇異值平方。第三主方向垂直于第一和第二主方向,且投影方差第三大,方差為第三大奇異值平方。依此類推。
點云位于 mmm 維空間,假設存在一個超橢球可以緊密包圍點云,注意是最緊密的,超橢球軸不一定和坐標軸平行,則超橢球第一長軸對應的方向就是第一主方向,第二長軸對應的方向就是第二主方向,依此類推。注意長軸長度不是對應奇異值,但正相關,即長軸長度越長則對應奇異值越大。舉個例子,假設樣本有3個屬性,則點云位于3維空間,三維橢球包圍了點云,則橢球第一長軸方向就是第一主方向,第二長軸對應的方向就是第二主方向,依此類推。由于橢球是三維的,故有三個主成分。
總結
以上是生活随笔為你收集整理的7.4.4 主成分分析 PCA的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7.4.3 矩阵极分解和平方根分解
- 下一篇: 7.4.5 鲁棒主成分分析 PCA