声明:
PCA——主成分分析
简介
PCA全称Principal Component Analysis,即主成分分析,是一种常用的数据降维方法。它可以通过线性变换将原始数据变换为一组各维度线性无关的表示,以此来提取数据的主要线性分量。
z = w T x z = w^Tx z=wTx
其中,z为低维矩阵,x为高维矩阵,w为两者之间的映射关系。假如我们有二维数据(原始数据有两个特征轴——特征1和特征2)如下图所示,样本点分布为斜45°的蓝色椭圆区域。PCA算法认为斜45°为主要线性分量,与之正交的虚线是次要线性分量(应当舍去以达到降维的目的)。
划重点:
- 线性变换=>新特征轴可由原始特征轴线性变换表征
- 线性无关=>构建的特征轴是正交的
- 主要线性分量(或者说是主成分)=>方差加大的方向
- PCA算法的求解就是找到主要线性分量及其表征方式的过程
相应的,PCA解释方差并对离群点很敏感:少量原远离中心的点对方差有很大的影响,从而也对特征向量有很大的影响。
线性变换
一个矩阵与一个列向量A相乘,等到一个新的列向量B,则称该矩阵为列向量A到列向量B的线性变换。
我们希望投影后投影值尽可能分散,而这种分散程度,可以用数学上的方差来表述。 V a r ( a ) = 1 m ∑ i = 1 m ( a i − μ ) 2 Var(a) = \frac 1m \sum_{i=1}^m(a_i - \mu)^2 Var(a)=m1i=1∑m(ai−μ)2即寻找一个一维基,使得所有数据变换为这个基上的坐标表示后,方差值最大。
解释:方差越大,说明数据越分散。通常认为,数据的某个特征维度上数据越分散,该特征越重要。
对于更高维度,还有一个问题需要解决,考虑三维降到二维问题。与之前相同,首先我们希望找到一个方向使得投影后方差最大,这样就完成了第一个方向的选择,继而我们选择第二个投影方向。如果我们还是单纯只选择方差最大的方向,很明显,这个方向与第一个方向应该是“几乎重合在一起”,显然这样的维度是没有用的,因此,应该有其他约束条件——就是正交
解释:从直观上说,让两个字段尽可能表示更多的原始信息,我们是不希望它们之间存在(线性)相关性的,因为相关性意味着两个字段不是完全独立,必然存在重复表示的信息。
字段在本文中指,降维后的样本的特征轴
数学上可以用两个字段的协方差表示其相关性: C o v ( a , b ) = 1 m ∑ i = 1 m ( a i − μ a ) ( b i − μ b ) Cov(a, b) = \frac 1m \sum_{i=1}^m (a_i - \mu_a)(b_i - \mu_b) Cov(a,b)=m1i=1∑m(ai−μa)(bi−μb)当协方差为0时,表示两个字段线性不相关。
总结一下,PCA的优化目标是:
将一组N维向量降为K维(K大于0,小于N),其目标是选择K个单位正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段的方差则尽可能大。
所以现在的重点是方差和协方差
协方差
在统计学上,协方差用来刻画两个随机变量之间的相关性,反映的是变量之间的二阶统计特性。考虑两个随机变量 X i X_i Xi和 X j X_j Xj,它们的协方差定义为
c o v ( X i , X j ) = E [ ( X i − E ( X i ) ) ( X j − E ( X j ) ) ] cov(X_i, X_j) = E[(X_i - E(X_i))(X_j - E(X_j))] cov(Xi,Xj)=E[(Xi−E(Xi))(Xj−E(Xj))]
tips:独立,不相关与协方差为零三者的关系
只讨论离散型随机变量的情形。
独立:随机变量 ξ , η \xi ,\eta ξ,η独立是指对于任意的常数a,b,都有 P ( ξ = a , η = b ) = P ( ξ = a ) ⋅ P ( η = b ) P(\xi = a, \eta = b) = P(\xi = a) \cdot P(\eta = b) P(ξ=a,η=b)=P(ξ=a)⋅P(η=b).
相关性,相关系数 ρ ξ η = c o v ( ξ , η ) v a r ( ξ ) v a r ( η ) \rho _{\xi \eta } = \frac {cov(\xi, \eta)}{\sqrt{var(\xi)} \sqrt{var(\eta)}} ρξη=var(ξ)var(η)cov(ξ,η)
相关系数其实是“线性相关系数”
相关系数和协方差在描述相关性方面是等价的,但独立与相关性的关系是:**独立=>不相关**
协方差矩阵:
假设有m个变量,特征维度为2, a 1 a_1 a1表示变量1的a特征。那么构成的数据集矩阵为:
X = ( a 1 a 2 . . . a m b 1 b 2 . . . b m ) X=\begin{pmatrix} a_1 & a_2 &...& a_m\\ b_1 & b_2 &...&b_m \end{pmatrix} X=(a1b1a2b2......ambm)
再假设它们的均值都是0,对于有两个均值为0的m维向量组成的向量组, 1 m X X T = ( 1 m ∑ i = 1 m a i 2 1 m ∑ i = 1 m a i b i 1 m ∑ i = 1 m a i b i 1 m ∑ i = 1 m b i 2 ) \frac 1mXX^T=\begin{pmatrix} \frac 1m \sum_{i=1}^m a_i^2 & \frac 1m \sum_{i=1}^m a_ib_i\\ \frac 1m \sum_{i=1}^m a_ib_i & \frac 1m \sum_{i=1}^m b_i^2 \end{pmatrix} m1XXT=