PCA降维

PCA降维将高维数据 通过线性变换 转换为线性无关的表示。

为什么需要降维?

机器学习中可能存在 上千万维的信息, 为了提取主要特征(比如图像)并且同时也能节省计算资源。

降维的时候,我们希望保留主要特征,所以我们想删除不是那么重要的信息【或者说某一个维度的信息】。

这个维度的信息 可以通过其他维度的信息进行生成,所以这个维度自然也就没有保留的含义了。

 

怎么降维?

将高位数据投影到低维的空间中。

1.

低维空间: 可以理解为基的数量相对原来减少,我们将之前高维数据 投影到 低位的基上,得到的坐标值,就是降维之后的而数据。

 

投影到基上: 其实就是基向量和原始的向量做点积【也就是

2.

关键点:怎样找到低纬度的基,并且降维之后数据不会消失过大(或者说数据点坐标 还比较发散)。

3.

如何用数学方式定义发散程度,或者说数据之间的相关性?方差。

但是方差只能找到一个基,对于高维的数据,可以采用协方差。

 

4.我们降维之后 不同记录 相关性不强,这样才能将数据更好的区分。可以利用

协方差    \large conv(a,b)=\frac{1}{m}\sum (a_{i}*b_{i}),   

注:【可以直观的从几何层面来看,如果点积为0,说明两条数据基本重合,相关性比较强】

希望找到的基 相互之间的协方差都为0,【也就是只剩下对角阵】 这样就能相互正交了,也就可以实现我们的效果。

 

5.假设 降维之后的数据为 \large Y,协方差矩阵为\large D,  原始数据为 \large X,协方差矩阵为\large C,转换矩阵为\large P

  \large D=\frac{1}{m}YY^{T}

       \large =\frac{1}{m}(PX)(PX)^{T}

      \large =\frac{1}{m}PXX^{T}P^{T}

      \large =P(\frac{1}{m}XX^{T})P^{T}

      \large =PCP^{T}

可以看到我们就是想要 \large D 为对角阵,找到 \large P ,将 \large C 对角化。

 

我们知道 \large C 是对称矩阵

实对称矩阵有如下性质:

1.实对称矩阵 不同特征值对应的特征向量必定正交

2.如果相同特征值 对应 多个特征向量,这些特征向量一定是不相关的,所以我们可以将其正交化。

完美解决了上面的基需要正交 的要求:

 

所以我们需要找到 原始数据协方差的 特征值和特征向量。

 

 

步骤:

1.将数据记录按照行排好,进行中心化

2.求出协方差矩阵 \large C = \frac{1}{m}XX^{T}

3.求出特征值 及 特征向量

4.将特征向量 按照特征值大小 排列,取前 K 行 作为\large P

5.\large Y=PX为降维之后的数据

 

 

 

参考博客:

1. https://www.matongxue.com/madocs/1025.html

2. ??:http://blog.codinglabs.org/articles/pca-tutorial.html

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值