机器学习-降维算法-PCA


=Start=

缘由:

最近在看《特征工程入门与实践》和《机器学习实战》这2本书,虽然这2本书已经是偏实战的了,但里面还是不可避免的会有一些数学原理方面的介绍。考虑到几个方面:1.我并不是专业的机器学习算法工程师,很多时候只需要知道怎么做,以及大概为什么要这么做就行;2.毕业也比较久了,大学里学的线性代数和矩阵变换相关的知识早就忘没了。所以,在看其中的一些内容时,我暂时只关心其大致的原理说明和相关对比,对于数学的推导和细节先放到一边,以后如果有机会的话再做了解,这里先记录一些(从其它比较好的书籍、文章中)整理出的结论和特点说明,方便快速理解加深印象。

正文:

参考解答:
1. 维数灾难(Curse of dimensionality)

维数灾难就是说当样本的维数增加时,若要保持与低维情形下相同的样本密度,所需要的样本数呈指数型增长。当维度很大样本数量少时,无法通过它们学习到有价值的知识;所以需要降维,一方面在损失的信息量可以接受的情况下获得数据的低维表示,增加样本的密度;另一方面也可以达到去噪的目的。

2. 数据降维的作用

1、减少存储空间
2、低维数据减少模型训练用时
3、一些算法在高维表现不佳,降维提高算法可用性
4、删除冗余数据
5、有助于数据的可视化

3. PCA介绍

主成分分析(Principal Components Analysis, PCA)是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。常常应用在文本处理、人脸识别、图片识别、自然语言处理等领域。

方差的大小描述一个变量的信息量对于模型来说方差越小越稳定,但是对于数据来说,我们自然是希望数据的方差大,方差越大表示数据越丰富,维度越多。

方差大的方向是信号的方向,方差小的方向是噪声的方向,我们在数据挖掘模型处理中,往往需要提高信噪比,即是信号和噪声的比例。

当进行数据降维的时候,我们一般都是对列进行压缩,即对数据的特征进行压缩,当然我们也可以对数据行进行压缩,即把相似的数据进行合并。

PCA本质上是将方差最大的方向作为第一维特征,方差描述的是数据的离散程度,方差最大的方向即是能最大程度上保留数据的各种特征,接下来第二维特征既选择与第一维特征正交的特征,第三维特征既是和第一维和第二维正交的特征。

PCA的思想是将n维特征映射到k维上(k<n),这k维是全新的正交特征。这k维特征称为主元,是重新构造出来的k维特征,而不是简单地从n维特征中去除其余n-k维特征。

大致流程

  1. 找出第一个主成分的方向,也就是数据方差最大的方向。
  2. 找出第二个主成分的方向,也就是数据方差次大的方向,并且该方向与第一个主成分方向正交(如果是二维空间就叫垂直)。
  3. 通过这种方式计算出所有的主成分方向。
  4. 通过数据集的协方差矩阵及其特征值分析,我们就可以得到这些主成分的值。
  5. 一旦得到了协方差矩阵的特征值和特征向量,我们就可以保留最大的 N 个特征。这些特征向量也给出了 N 个最重要特征的真实结构,我们就可以通过将数据乘上这 N 个特征向量 从而将它转换到新的空间上。

优缺点和适用范围

  • 优点:降低数据的复杂性,识别最重要的多个特征。
  • 缺点:不一定需要,且可能损失有用信息。
  • 适用数据类型:数值型数据。
参考链接:

=END=


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注