PCA算法
PCA算法是一种降维算法,其主要思想有两种:
1.使得降维以后的超平面离原始的样本点尽可能的近。
2.使得样本点在降维以后的超平面的投影尽可能的分开。
注意:PCA减少基底的数目,从而减少数据维度。
坐标系的变换
设新坐标系的正交基为 η=(η1,η2,⋯,ηm) η = ( η 1 , η 2 , ⋯ , η m ) ,原始样本为 x=(x1,x2,⋯,xt) x = ( x 1 , x 2 , ⋯ , x t ) 。
已知: A⋅B=|A||B|cos(α) A ⋅ B = | A | | B | cos ( α ) ,其中 α α 为两向量的夹角。当其中 A A 向量模为1时,等价于 B B 向量在向量上投影的矢量长度。当把 A A 看成新坐标系的一个基的话,那么为 B B 在上的新坐标。
那么原始坐标对应的坐标系转换,可以转化为矩阵相乘操作(即基和原始向量的内积):
No.1 超平面与原始样本点距离尽可能近
直观理解:
设原始样本为 x=(x1,x2,⋯,xt) x = ( x 1 , x 2 , ⋯ , x t ) ,每个数据点为n维。其对应的坐标系正交基底为 w=(w1,w2,⋯,wn) w = ( w 1 , w 2 , ⋯ , w n ) 。(注意这里的坐标系维数和数据点的维数应该一致。)
因为是正交基底,所以有 ||wi||2=1 | | w i | | 2 = 1 , wTiwj=0 w i T w j = 0 .
设降维,使得新坐标系降维到m维,即丢弃一部分基底,那么有 wnew=η=(η1,η2,⋯,ηm) w n e w = η = ( η 1 , η 2 , ⋯ , η m ) 。
由第一部分可知,原始样本对应的新坐标为: xnew=ηTx x n e w = η T x 。得到新坐标以后,在恢复到原始坐标系中的维数(即n维),则 x^=ηxnew x ^ = η x n e w 。(原理待查?从矩阵维度上看, wTnewxnew=wTnewηTx w n e w T x n e w = w n e w T η T x ,其维度变化是 m∗n∗n∗t=m∗t→n∗m∗m∗t=n∗t m ∗ n ∗ n ∗ t = m ∗ t → n ∗ m ∗ m ∗ t = n ∗ t ,即恢复原始维度。
现在要使得所有样本到超平面距离足够近,那么有:
(图中z等价 xnew x n e w )
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/06e47c38959a9be9d4e35fb8438b8b24.png)
当原始数据都进行了去中心化时,即
∑ixi=0
∑
i
x
i
=
0
(均值为0)时,
xixTi
x
i
x
i
T
是协方差矩阵。
No.2 基于最大投影方差
同第一部分,数据集去中心化,同样的坐标转换,原始样本对应的新坐标为:
xnew=ηTx
x
n
e
w
=
η
T
x
,其对应的方差为
xTnewxixixTnew
x
n
e
w
T
x
i
x
i
x
n
e
w
T
。
至此,我们得到了降维问题的优化目标:将一组N维向量降为K维(K大于0,小于N),其目标是选择K个单位(模为1)正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段的方差则尽可能大(在正交的约束下,取最大的K个方差)。
优缺点**:
优点:
- 它是无监督学习,完全无参数限制的。在PCA的计算过程中完全不需要人为的设定参数或是根据任何经验模型对计算进行干预,最后的结果只与数据相关,与用户是独立的。
- 用PCA技术可以对数据进行降维,同时对新求出的“主元”向量的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到降维从而简化模型或是对数据进行压缩的效果。同时最大程度的保持了原有数据的信息。
- 各主成分之间正交,可消除原始数据成分间的相互影响。
- 计算方法简单,易于在计算机上实现。
缺点:
- 如果用户对观测对象有一定的先验知识,掌握了数据的一些特征,却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高。
- 贡献率小的主成分往往可能含有对样本差异的重要信息。
- 特征值矩阵的正交向量空间是否唯一有待讨论。
- 在非高斯分布的情况下,PCA方法得出的主元可能并不是最优的,此时在寻找主元时不能将方差作为衡量重要性的标准
参考文献:
最小平方理论:https://blog.csdn.net/hit1524468/article/details/60323173