机器学习经典算法之PCA主成分分析

PCA主成分分析法简介

主成分分析算法(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数据维度,同时保留住较多的原数据点的特性。

PCA降维的目的,就是为了在尽量保证“信息量不丢失”的情况下,对原始特征进行降维,也就是尽可能将原始特征往具有最大投影信息量的维度上进行投影。将原特征投影到这些维度上,使降维后信息量损失最小。

总而言之,PCA的概念很简单:减少数据集的维数,同时保留尽可能多的主要信息。

PCA主要步骤

  • 去除平均值
  • 计算协方差矩阵
  • 计算协方差矩阵的特征值和特征向量
  • 将特征值排序
  • 保留前N个最大的特征值对应的特征向量
  • 将原始特征转换到上面得到的N个特征向量构建的新空间中(最后两步,实现了特征压缩)

标准化

此步骤的目的是标准化输入数据集,使数据成比例缩小。

更确切地说,在使用PCA之前必须标准化数据的原因是PCA方法对初始变量的方差非常敏感。也就是说,如果初始变量的范围之间存在较大差异,那么范围较大的变量占的比重较大,和较小的变量相比(例如,范围介于0和100之间的变量较0到1之间的变量会占较大比重),这将导致主成分的偏差。通过将数据转换为同样的比例可以防止这个问题。

求每一个特征的平均值,然后对于所有的样本,每一个特征都减去自身的均值。
z = v a l u e − m e a n s t a n d a r d d e v i a t i o n z=\frac{value-mean}{standard deviation} z=standarddeviationvaluemean

经过去均值处理之后,原始特征的值就变成了新的值,在这个新的norm_data的基础上,进行下面的操作。

计算协方差矩阵

此步骤的目的是了解输入数据集的变量相对于彼此平均值变化,换句话说,查看它们是否存在关系。因为有时候,变量由于高度相关,这样就会包含冗余信息。因此,为了识别变量的相关性,我们计算协方差矩阵。

下面以二维矩阵为例:
C = [ c o v ( x 1 , x 1 ) c o v ( x 1 , x 1 ) c o v ( x 2 , x 1 ) c o v ( x 2 , x 2 ) ] C=\begin{bmatrix} cov(x_{1},x_{1}) &cov(x_{1},x_{1}) \\ cov(x_{2},x_{1}) &cov(x_{2},x_{2}) \end{bmatrix} C=[cov(x1,x1)cov(x2,x1)cov(x1,x1)cov(x2,x2)]
上述矩阵中,对角线上分别是特征x1和x2的方差,非对角线上是协方差。协方差大于0表示x1和x2。若有一个增,另一个也增;小于0表示一个增,一个减;协方差为0时,两者独立。协方差绝对值越大,两者对彼此的影响越大,反之越小。

计算协方差矩阵的特征值和特征向量

求协方差矩阵 C C C的特征值 λ λ λ和相对应的特征向量 u u u(每一个特征值对应一个特征向量):
C u = λ u Cu=\lambda u Cu=λu
特征值 λ λ λ会有 N N N个,每一个 λ i λ_{i} λi对应一个特征向量 u i u_{i} ui,将特征值λ按照从大到小的顺序排序,选择最大的前k个,并将其相对应的k个特征向量拿出来,我们会得到一组{(λ1,u1),(λ2,u2),…,(λk,uk)}。

将原始特征投影到选取的特征向量上,得到降维后的新K维特征

这个选取最大的前k个特征值和相对应的特征向量,并进行投影的过程,就是降维的过程。对于每一个样本 X i Xi Xi,原来的特征是 ( x i 1 , x i 2 , … , x i n ) T (xi_1,xi_2,…,xi_n)^T (xi1xi2,,xin)T,投影之后的新特征是 ( y 1 i , y 2 i , . . . , y k i ) T (y^i_1,y^i_2,...,y^i_k)^T (y1iy2i,...,yki)T ,新特征的计算公式如下:

在这里插入图片描述

PCA算法的主要优点

  • 仅仅需要以方差衡量信息量,不受数据集以外的因素影响。
  • 各主成分之间正交,可消除原始数据成分间的相互影响的因素。
  • 计算方法简单,主要运算是特征值分解,易于实现。

PCA算法的主要缺点

  • 主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。

  • 方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。

参考

  • https://zhuanlan.zhihu.com/p/58663947
  • https://blog.csdn.net/lanyuelvyun/article/details/82384179
  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小谢先生

支持知识付费

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值