降维:主成分分析( Principal Component Analysis ,PCA) 通过维基百科可查到有两种方法可以进行PCA,EVD和SVD均可 https://en.wikipedia.org/wiki/Principal_component_analysis 一、本文介绍SVD进行PCA降维,上一篇已经介绍过了SVD,趁热打铁。 附:SVD理论介绍 http://blog.sciencenet.cn/blog-1966190-1118220.html 现有的数据 , 通常先使 X 均值为零(一般是令特征列为零),再进行 SVD 分解可得: , 其中 U 为 m 阶酉矩阵, V 为 n 阶酉矩阵。 构建主成分 , 若选择奇异值前 l 个,则 , 至此已经将X由 n 维数据变成了 l 维数据,降维过程结束。 可对P进行相关分析,即 分析发现P每列(即每个维度)均是不相关的,即正交的。 也可构建主分量 , 这是另一种做法。 若选取主分量,即较大奇异值(k个, kr )和对应的 V 中向量(右奇异向量),因为在 SVD 分解中奇异值已经是从大到小排好的顺序,只需选取主分量即可。构建主分量其实属于对 X 的正交变换,这种变换在信号处理中称为 KL 变换,可参考 KL 变换去噪的文献: Jones,I.F. and Levy,S.1987.Signal to Noise Ratio Enhancement in Multichannel Seismic Data via the Karhunen-Loeve Transform,Geophysical Prospecting,35,12-32 若选取主成分为: , 再进行反变换即 : , 这就是经过变换后的数据,显然有信息丢失,可以用保留的奇异值来计算主成分贡献率,这是去噪的流程。 二、再来看特征值分解EVD如何进行PCA 一般概念 协方差矩阵 :设 X 为 n 维数据,即 X n × n =(x 1 ,x 2 , …… ,x n ) T , X 的自协方差矩阵定义为 上式中 i 和 j 取不同的值,则可得 n × n 的矩阵。 如果求两个数据的协方差矩阵,只需将式中的 X i 换成 Y i 即可。 相关矩阵 :上式中最后一行第一项即是相关矩阵的定义,因而可知,只要将数据均值为0后,其协方差矩阵就是相关矩阵。 这部分内容是信号处理中的基础知识,可自己查看清华大学张贤达《现代信号处理》。 协方差矩阵的性质 (如果数据为复数): 先对 的每列零均值化,计算的协方差矩阵 , 因 ,故C是酉矩阵。 对C进行特征值分解,即求特征值和特征向量。 可化为 ,其中 , V 是特征值对应的特征向量构成的矩阵, V 的每一列是特征向量。将特征向量按照特征值的大小排列(MatLab可能是从小到大排列的,注意调整),并进行模值归一化,取前 k 列特征向量,构建主成分 即可得到降维后的数据。 三、PCA 实战参考链接: https://blog.csdn.net/shizhixin/article/details/51181379 https://blog.csdn.net/google19890102/article/details/27969459