降维的应用

        降维是指在某些限定条件下,降低随机变量个数,得到一组“不相关”主变量的过程(较本质的解释)。换言之,降维其更深层次的意义在于有效信息的提取综合及无用信息的摈弃。数据降维算法是机器学习算法中的大家族,与分类、回归、聚类等算法不同,它的目标是将向量投影到低维空间,以达到某种目的如可视、数据压缩,或是做分类。

        主成分分析(PCA)是常用的降维算法。在PCA中,我们要做的是找到一个低维平面,当我们将所有数据都投影到该平面上时,希望投影误差(Projection error)能尽可能地小(与投影后对应之间的点距离的平方值)。

        将2维降至1维的情况中,PCA要做的是去找到一个数据投影后能够最小化投影误差的方向向量。对于将 n 维降至 k 维的情况,PCA要做的是找到 k 个方向向量来对数据进行投影来最小化投影误差。

         需要注意的是,主成分分析与线性回归是两种不同的算法。如下图所示,左边的是线性回归的误差(垂直于横轴投影),右边是主成分分析的误差(垂直于方向向量投影)。主成分分析最小化的是投影误差;线性回归尝试的是最小化预测误差。

 

主成分分析算法的过程:

        ①对数据进行预处理

                计算出所有特征的均值   \mu _{j}=\frac{1}{m}\sum_{i=1}^{m}x_{j}^{(i)}

                然后令 x_{j}=x_{j}-\mu _{j}

                如果特征是在不同的数量级上,我们还需要将其除以标准差x_{j}=\frac{x_{j}-\mu _{j}}{S_{j}} , S_{j}为标准差。

        ②n维->k维

                计算协方差矩阵\Sigma =\frac{1}{m}\sum_{i=1}^{m}\left ( x^{(i)} \right )\left ( x^{(i)}\right )^{T}

        ③奇异值分解

                计算协方差矩阵的特征向量[U,S,V]=svd(Sigma),

                取矩阵U的前 k 列得到 Ureduce ,

                然后z^{(i)}=U_{reduce}^{T} \ast x^{(i)}

         我们希望在平均均方误差与训练集的总方差的比例,尽可能小的情况下选择尽可能小的 k 值。如果我们希望这个比例小于1%,就意味着原本数据的偏差有99%都保留下来了,如果我们选择保留95%的偏差,便能非常显著地降低模型中特征的维度了。

 

重建压缩:

        通过以上主成分分析算法的过程,我们已经知道了如何降维,那么,我们降维之后,又怎么重建到原来的n维呢?

        其实也不难,我们z^{(i)}=U_{reduce}^{T} \ast x^{(i)}

        x_{approx}\approx U_{reduce}\cdot z

 PCA算法的错误使用:

        一个常见的错误使用PCA算法的情况是,将其用于防止过拟合(减少了特征的数量)。减少数据维度来防止过拟合的方法不是解决过拟合问题的好方法,不如尝试正则化处理。原因在于主成分分析只是近似地丢弃掉一些特征,它并不考虑任何与结果变量有关的信息,因此可能会丢失非常重要的特征。然而当我们进行正则化处理时,会考虑到结果变量,不会丢掉重要的数据。
        另一个常见的错误是,默认地将主成分分析作为学习过程中的一部分,这虽然在很多时候都有效果,但最好还是从所有原始特征开始,只在有必要的时候(算法运行太慢或者占用太多内存)才考虑采用主成分分析。

 

                

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值