简述PCA的计算过程
输入:数据集X={x1,x2,...,xn},需降到k维
① 去中心化(去均值,即每个特征减去各自的均值)
② 计算协方差矩阵1/nX*X^T(1/n不影响特征向量)
③ 用特征值分解方法/SVD奇异值分解求解②协方差矩阵的特征值与特征向量
④ 对特征值从大到小排序,选前k个。将其对应的k个特征向量分别作为行向量组成特征向量矩阵P
⑤ 将数据转换到k个特征向量构建的新空间中,即Y=PX
使用SVD时:左奇异矩阵可用于对行数据的压缩,右奇异矩阵可以用于对列(即特征的维度)的压缩。因此,用SVD分解协方差矩阵实现PCA可以得到两个方向的PCA降维(即行和列),通常只使用左奇异值。
一些形象的解释:
去中心化(即把坐标原点放在数据中心,不然虽然点的相对位置不变,但坐标绝对值不同,导致很难量化点的分散程度。很难找到把点"分散的最开"的方向)
说到“分散程度”,就容易想到方差。
PCA是什么?答:找坐标系
找到数据分布最分散的方向(即方差最大),作为主成分(新的坐标轴)
主要思想:将n维特征映射到k维上,这k维是全新的正交特征也叫主成分。
本质:向量换基
目标:将数据投影到方差最大的几个正交方向上。
从原始空间中顺序的找一组正交的坐标轴,第一个坐标轴是原始数据中方差最大的方向,第二个坐标轴是与第一个坐标轴正交的平面中使得方差最大的方向,一次类推,得到k个。这k个坐标轴包含数据大部分信息,后面的坐标轴方差几乎为0可忽略,从而达到降维的目的。