=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维特征。
大致流程
- 找出第一个主成分的方向,也就是数据方差最大的方向。
- 找出第二个主成分的方向,也就是数据方差次大的方向,并且该方向与第一个主成分方向正交(如果是二维空间就叫垂直)。
- 通过这种方式计算出所有的主成分方向。
- 通过数据集的协方差矩阵及其特征值分析,我们就可以得到这些主成分的值。
- 一旦得到了协方差矩阵的特征值和特征向量,我们就可以保留最大的 N 个特征。这些特征向量也给出了 N 个最重要特征的真实结构,我们就可以通过将数据乘上这 N 个特征向量 从而将它转换到新的空间上。
优缺点和适用范围
- 优点:降低数据的复杂性,识别最重要的多个特征。
- 缺点:不一定需要,且可能损失有用信息。
- 适用数据类型:数值型数据。
参考链接:
- 主成分分析(PCA)原理总结
https://www.cnblogs.com/pinard/p/6239403.html - 一篇深入剖析PCA的好文 #列出来的「问题」很好,容易理解
https://www.cnblogs.com/hadoop2015/p/7419087.html
https://www.cnblogs.com/jerrylead/archive/2011/04/18/2020209.html
https://www.cnblogs.com/jerrylead/archive/2011/04/18/2020216.html - PCA (主成分分析降维算法)
https://imyong.top/2018/04/04/PCA/ - PCA(主成分分析)
https://yoyoyohamapi.gitbooks.io/mit-ml/content/%E7%89%B9%E5%BE%81%E9%99%8D%E7%BB%B4/articles/PCA.html - 独立成分分析 ( ICA ) 与主成分分析 ( PCA ) 的区别在哪里?
https://www.zhihu.com/question/28845451 - 机器学习 —— 基础整理(四)特征提取之线性方法:主成分分析PCA、独立成分分析ICA、线性判别分析LDA
https://www.cnblogs.com/Determined22/p/6357291.html - 一步步教你轻松学主成分分析PCA降维算法
http://www.52nlp.cn/10738-2 - 机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)
https://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html - 机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用
https://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html - 把几个降维的算法(FA PCA SVD ICA LPP LDA )归纳一下
https://blog.csdn.net/qiusuoxiaozi/article/details/50810521 - 【机器学习】PCA与ICA,RCA,LDA
https://blog.csdn.net/duxinyuhi/article/details/53484193 - 降维算法原理篇:主成分分析PCA、奇异值分解SVD、因子分析法FA、独立成分分析ICA等原理详推
https://zhuanlan.zhihu.com/p/51124752 - Dimension reduction:ICA
https://lbxc.iteye.com/blog/1521140 - PCA主成分分析 ICA独立成分分析 LDA线性判别分析 SVD性质
https://www.cnblogs.com/34fj/p/8592827.html - 机器学习降维之主成分分析(PCA)
https://blog.csdn.net/XiaoYi_Eric/article/details/85410753 - PCA主成分分析学习总结
https://zhuanlan.zhihu.com/p/32412043
=END=