机器学习—PCA降维

1、基本思想:

  主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。

  PCA顾名思义,就是找出数据里最主要的方面,用数据里最主要的方面来代替原始数据。 

  第一种解释是样本点到这个直线的距离足够近,第二种解释是样本点在这个直线上的投影能尽可能的分开。

  我们知道“基于最小投影距离”就是样本点到这个超平面的距离足够近,也就是尽可能保留原数据的信息;而“基于最大投影方差”就是让样本点在这个超平面上的投影能尽可能的分开,也就是尽可能保留原数据之间的差异性。

  假如我们把n'从1维推广到任意维,则我们的希望降维的标准为:样本点到这个超平面的距离足够近,或者说样本点在这个超平面上的投影能尽可能的分开。

  基于上面的两种标准,我们可以得到PCA的两种等价推导。

2、优缺点

  作为一个非监督学习的降维方法,它只需要特征值分解,就可以对数据进行压缩,去噪。因此在实际场景应用很广泛。

  PCA算法的主要优点有:

    1)仅仅需要以方差衡量信息量,不受数据集以外的因素影响。 

    2)各主成分之间正交,可消除原始数据成分间的相互影响的因素。

    3)计算方法简单,主要运算是特征值分解,易于实现。

    PCA算法的主要缺点有:

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

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

  为啥W'XX'W可以度量样本的差异性。最后得出结论:XX'就是X的协方差矩阵,其中对角线元素为各个字段的方差,而非对角线元素表示变量i和变量j两个字段的协方差。

  注意:

  由于 PCA 减小了特征维度,因而也有可能带来过拟合的问题。PCA 不是必须的,在机器学习中,一定谨记不要提前优化,只有当算法运行效率不尽如如人意时,再考虑使用 PCA 或者其他特征降维手段来提升训练速度。

  降低特征维度不只能加速模型的训练速度,还能帮我们在低维空间分析数据,例如,一个在三维空间完成的聚类问题,我们可以通过 PCA 将特征降低到二维平面进行可视化分析。

3、算法流程

  下面给出第一篇博文中总结的算法流程。

  输入:n维样本集D=(x1,x2,...,xm)

  输出:n'维样本集D'=(z1,z2,...,zm), 其中n'≤n

  1. 对所有样本进行中心化(均值为0):

  

  2. 计算样本的协方差矩阵XX'

  3. 对协方差矩阵XX'进行特征分解(https://blog.csdn.net/jingyi130705008/article/details/78939463)

  4. 取出最大的n'个特征值对应的特征向量(w1,w2,...,wn'),对其进行标准化,组成特征向量矩阵W

  5. 对于训练集中的每一个样本,进行相应转换:

   

  6. 得到输出样本集D'=(z1,z2,...,zm)

   

  备注:有时候,我们不指定降维后的n'的值,而是换种方式,指定一个降维到的主成分比重阈值t。这个阈值t在(0,1]之间。假如我们的n个特征值为λ1≥λ2≥...≥λn,则n'可以通过下式得到:

      

猜你喜欢

转载自www.cnblogs.com/eilearn/p/9037309.html