PCA(Principal Components Analysis)

1、算法步骤
1)数据预处理---数据归一化处理
   
  
1-2步使得数据集的均值为0,3-4步将每个方差重新调整到单位方差。保证数据不同属性的数据规模相同。如果不同属性的数据规模相同,3-4步可以忽略。
2)在均值归一化和可选的特征scaling后


2、数学上的理解
    我们想要将数据降维,例如从将某个向量从n维降到k维,我们需要找到一个空间中的k个方向,使得该向量投影到这k个方向上的值的方差到达最大,这就尽最大的能力保留了数据的方差(也可以理解为信息尽可能不被覆盖,或者数据点之间距离尽可能远)。
   假设u是一个1个方向,则x (i)在u上的投影就是x(i)与u的内积,即(x (i)) T*u, 则使得投影后的x' (i)的方差最大,因为均值归一化后,均值为0,所以有一下的公式:

其中中间的方阵是x的协方差矩阵(x均值已归为0),要想使上如较大,||u T∑u||最大,由于∑u = λu,u是∑的特征值是λ时的特征向量。当||u Tu|| = 1时(标准正交),则λ较大时x变换后的方差最大,此时u为λ较大时对应的特征向量,当要求一个k维的基底时,u则取前k个较大的λ对应的特征向量。
具体求解的时候用到奇异值分解,matlab或python中提供了相应的函数,svd()。该分解得到三个矩阵(u,s ,v),其中u的前k列即为所求的基底(投影方向),是标准正交的。
至于为什么前k个就是前k个较大的λ对应的特征向量,接下来会有一章内容讲解奇异值分解。
参考: http://blog.codinglabs.org/articles/pca-tutorial.html
 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值