前言
什么叫做主成分分析法,我们先看一张图椭圆的图,如果让你找一条线,使得椭圆上所有点在该线上映射的点最分散,保留下来的信息最多,你会怎么选择这条线?若是下图,会选择水平线,这是用一维的方式去尽可能多的表示二维的数据,那么多维的数据呢,是否可以用较低维的数据尽可能表示。
如何用二维的平面去尽可能表示一个椭球面呢?
思想
主成分分析法是一种统计方式,简化数据的方式,是一种线性变换,把数据变换到新的坐标系中,使得任意投影的第一大方差映射到第一主成分上,第二大方差映射到第二主成分上。如果舍弃高维的主成分,一般可以达到保留对方差贡献最大的特征,在一些方面上,可以保留数据的主要特征,当然,为了数据更好看,我们会把坐标轴的中心移到数据的中心,这可以让数据处理起来更方便。
在数学上
在数学上,我们用 L 2 L^2 L2 范数的平方( L 2 L^2 L2范数的平方与其本身在相同位置取得最小值,单调递增,性质更好)来计算,x 为输入, c ∗ c^* c∗ 为最优编码:
c ∗ = ( L 2 ) 2 = a r g m i n c ∣ ∣ x − g ( c ) ∣ ∣ 2 2 = ( x − g ( c ) ) T ( x − g ( c ) ) = x T x − 2 x T g ( c ) + g ( c ) T g ( c ) = a r g m i n c − 2 x T D c + c T I l c ( 其 中 c = f ( x ) , g ( c ) = D c ) ∴ ∇ c ( − 2 x T D c + c T c ) = 0 c = f ( x ) = D T x c^*=(L^2)^2=argmin_c||x-g(c)||_2^2 \\\\ =(x-g(c))^T(x-g(c)) \\\\ =x^Tx-2x^Tg(c)+g(c)^Tg(c) \\\\ =argmin_c-2x^TDc+c^TI_lc \\\\ (其中c=f(x),g(c)=Dc) \\\\ \therefore\nabla_c(-2x^TDc+c^Tc)=0 \\\\ c=f(x)=D^Tx c∗=(L2)2=argminc∣∣x−g(c)∣∣22=(x−g(c))T(x−g(c))=xTx−2xTg(c)+g(c)Tg(c)=argminc−2xTDc+cTIlc(其中c=f(x),g(c)=Dc)∴∇c(−2xTDc+cTc)=0c=f(x)=DTx
由上可知,若要得到c只需要一个矩阵乘法。定义重构操作:
r ( x ) = g ( f ( x ) ) = D D T x D ∗ = a r g m i n D ∑ i , j ( x j ( i ) − r ( x ( i ) ) j ) 2 其 中 D T D = I l r(x)=g(f(x))=DD^Tx \\\\ D^*=argmin_D\sqrt{\sum_{i,j}(x_j^{(i)}-r(x^{(i)})_j)^2} \\\\ 其中D^TD=I_l r(x)=g(f(x))=DDTxD∗=argminDi,j∑(xj(i)−r(x(i))j)2其中DTD=Il
经过复杂的 推导,用数学归纳法可以证明,矩阵 D 可以由前 X T X X^TX XTX 的前 l l l 个最大的特征值对应的特征向量组成。
总结
主成分分析法主要用于数据降维,目标为尽量减少原数据的损失的情况下,尽可能减少数据量。
- 本文首发自RAIS