PCA

特征值与特征向量的意义解释

矩阵乘法其实是对应着一个线性变换,是把任意一个向量变成另一个方向或者长度的新向量。在这个变换中,原向量主要发生旋转、伸缩的变化。如果矩阵对某一个向量或某些向量只发生伸缩变换,而不对这些向量产生旋转效果,那么这些向量就称为这个矩阵的特征向量,伸缩的比例就是特征值

特征向量与特征值对于一个矩阵的意义,每一个特征向量都对应着这个矩阵在对另一个对象作线性变换时所产生变换的方向,而特征值则表示着这个变化的大小。也就是说,矩阵A的信息可以由其特征值和特征向量表示。对于矩阵为高维的情况下,这个变换就对应着很多方向的变化,我们通过特征值分解得到的对应特征值较大的前K个特征向量,便表示了这个矩阵最主要的K个变化方向。我们利用这前K个变化方向,就可以近似这个矩阵的变换,而著名的主成分分析(Principle Conponent Analysis,PCA)便是基于这一原理实现的。

总而言之,通过特征值分解我们可以得到特征值与特征向量,特征向量表示这个特征是什么,而特征值表示着这个特征有多重要。同时,我们要意识到特征值分解也有一定的局限性,它的对象必须是方阵,而实际中的矩阵往往不是方阵,后面要说的奇异值分解将其演化到了普通形式的矩阵。

PCA降维。

X k ∗ N ′ = A k ∗ n X n ∗ N X'_{k*N}=A_{k*n}X_{n*N} XkN=AknXnN
a. 若在机器学习中,N表示训练数据的样本个数,n为训练数据的特征数量
b. 其中 X k ∗ N ′ X'_{k*N} XkN X n ∗ N X_{n*N} XnN通过矩阵 A k ∗ n A_{k*n} Akn降维后的矩阵,直观来看就是将一个n*N维的矩阵变成了k*N的矩阵;
c. 其中 A k ∗ n ∗ A k ∗ n T = I k A_{k*n}*A_{k*n}^T=I_k AknAknT=Ik,其中 I k I_k Ik为k阶单位阵;

所以降维的关键是如何找到一个 A k ∗ n A_{k*n} Akn使得等式成立并且让 X k ∗ N ′ X'_{k*N} XkN X n ∗ N X_{n*N} XnN所包含的信息相等,这样就可以通过 A k ∗ n A_{k*n} Akn X n ∗ N X_{n*N} XnN进行降维变换了。

PCA的问题其实是一个基的变换,使得变换后的数据有着最大的方差。方差的大小描述的是一个变量的信息量。

X k ∗ N ′ X'_{k*N} XkN X n ∗ N X_{n*N} XnN所包含的信息相等首先得有一个方法衡量一个矩阵包含的信息量,通常使用F-范数衡量一个矩阵的信息量
∣ ∣ X ∣ ∣ F = ∑ i = 1 n ∑ j = 1 n x i j 2 ||X||_F=\sqrt{\sum_{i=1}^{n} \sum_{j=1}^{n}x_{ij}^2} XF=i=1nj=1nxij2

X n ∗ N ∗ X n ∗ N T X_{n*N}*X_{n*N}^T XnNXnNT为一个半正定矩阵得: X n ∗ N ∗ X n ∗ N T = U n ∗ N T D U n ∗ N X_{n*N}*X_{n*N}^T=U_{n*N}^TDU_{n*N} XnNXnNT=UnNTDUnN
其中U为对角矩阵。

通过数学证明:

将U的对角线元素按照从小到大的顺序排列取其前k个值,即 X n ∗ N ∗ X n ∗ N T X_{n*N}*X_{n*N}^T XnNXnNT的前k个最大特征值,用该k个值对应的 X n ∗ N ∗ X n ∗ N T X_{n*N}*X_{n*N}^T XnNXnNT的特征向量所形成的A将 X n ∗ N X_{n*N} XnN降维为 X k ∗ N ′ X'_{k*N} XkN时, X k ∗ N ′ X'_{k*N} XkN所包含的信息和 X n ∗ N X_{n*N} XnN的最近。

这就是PCA降维。

PCA的几何意义:

PCA的全部工作简单点说,就是对原始的空间中顺序地找一组相互正交的坐标轴,第一个轴是使得方差最大的,第二个轴是在与第一个轴正交的平面中使得方差最大的,第三个轴是在与第1、2个轴正交的平面中方差最大的,这样假设在N维空间中,我们可以找到N个这样的坐标轴,我们取前r个去近似这个空间,这样就从一个N维的空间压缩到r维的空间了,但是我们选择的r个坐标轴能够使得空间的压缩使得数据的损失最小。

PCA的实现一般有两种,一种是用特征值分解去实现的,一种是用奇异值分解去实现的。在上篇文章中便是基于特征值分解的一种解释。

奇异值分解是一个有着很明显的物理意义的一种方法,它可以将一个比较复杂的矩阵用更小更简单的几个子矩阵的相乘来表示,这些小矩阵描述的是矩阵的重要的特性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值