前两篇中,我们花了大量功夫介绍了线性空间和投影,矩阵分解和特征值优化问题,而将这些概念用得最极致的模型就是“主成分分析”(Principle Component Analysis,PCA)。 PCA的应用非常广泛,社会学统计中的因子分析与之有密切联系,在传统机器学习模型的特征工程中PCA几乎都是的必做选项。
首先,我们要了解为什么需要PCA。假设我们能够采集到的是
维数据,即数据有
个特征,但事实上,特征越多,里面越有可能包含“重复”的噪声信息,导致能带来的信息收益其实并没有那么多。从数学上讲,我们认为
可能并不能张成一个特别完整的
维空间。例如
为二维数据,但二维数据点
其实都落在一个直线附近,即这两个特征线性相关,那我们认为X其实张成了一个一维直线。而主成分分析,就是寻找到X实际张成的低维空间,然后在这个低维空间中拟合原有的
维数据点,给数据降维,以此来剔除掉无用的噪声,留下有用的“主成分”。
在低维子空间中拟合高维数据,要使误差最小化,就再一次用到投影的思维。不同于线性回归,在主成分分析中,我们只能假设子空间的维度,但这个低维子空间的基向量组是未知的,求解基向量组就要涉及到矩阵优化问题。
基与坐标的求解过程
我们假设
能够完整地张成一个k维子空间
,假设基向量组为矩阵
。为了保证唯一性,将
设定为归一化的正交矩阵,
。我们要在这个
维子空间中拟合
维数据点
。假设拟合点在基
下的坐标
,
就是降维后的数据点。转化为默认基中的坐标
。
我们要寻找基向量组
和拟合点坐标
,使得所有数据点的平均拟合误差最小,拟合误差定义为均方误差。
误差
也可表示为,
特征矩阵
,每行为一个d维数据点向量的转置。
投影坐标矩阵
,每一列为一个投影点的坐标。
首先,我们很熟悉了,对于每个数据点,能使均方误差
最小的拟合点,就是真实数据点在子空间中的投影点
。
当然,我们也可以通过对上式求导,得到同样的结果。
将投影点代回
,继续求解能使平均误差最小的基向量组
。
将上述的累加用特征矩阵
表示:
这个最大化问题,转化成了上篇文章中我们讨论过的特征值优化问题,最优基向量组
就为
的
个最大特征值对应的特征向量 。
总结一下,PCA中,我们要用低维空间表示高维向量,而我们不仅不知道坐标,也不知道低维空间的基向量。求解过程需要包括求解这两部分。
- 我们知道均方误差最小化一定代表着投影。也就是不管什么基向量,坐标一定是真实点在基向量组上的投影点的坐标。我们可以将投影点坐标用W和X表达,那么我们就可以专心求解基向量。
- 均方误差所代表的基向量最优化问题又和上一节所介绍的特征值优化问题具有相同的表达形式,最优基向量是X^TX的k个最大特征向量。
PCA中的投影要素
- 最优基向量组
为的个最大特征值对应的特征向量,
-
本身可以用SVD表达为,投影点坐标
我们计算,是一个和类似的矩阵,只有上半部分的对角线为非零,对角线上的值为个最大的个奇异值(假设都按照对应特征值从大小排列,即是最大的特征值,是最大特征值对应的特征向量)。 - 投影点在默认基中的坐标为
。
其实是的“裁剪后的奇异值分解 truncated SVD”,我们将矩阵分别进行裁剪,只保留个最大最重要的特征向量和特征值。当然这种分解法并不能完全地还原,得到的是对的一个维近似。
类似于之前我们总结投影的方式,我们这里列出PCA的投影相关要素的表格。
对于新的
维数据点,同样降维就是寻找投影点坐标
, 就可以得到对应的
维坐标。