一、主成分的个数
上一篇文章《详解PCA》我们已经分析了如何计算各个成分的方向,并且能够将原样本矩阵投影到这个新的空间。但是,PCA的主要目的是降维,那么我们必须要面对的问题是:要选择几个主成分?当然我们可以用交叉验证去选取合适的主成分个数。然而,有没有更加值观的、快速的、简单的方法呢?答案是,有的!
1、特征值的下降速率
如果我们将协方差矩阵所有的特征值按从大到小的顺序进行排列,并且显示在一张柱形图上,我们可以计算各个特征值相对于最大的特征值的下降速率。我们只需要设定一个阈值,将下降速率太大的特征值和对应的主成分去掉就行了。
如上图,我们选取前12个主成分就差不多了。
2、解释方差
解释方差是指将我们的原始数据投影到一个新的空间后具有的总方差。假设我们将原始数据投影到由 v 1 , … , v k v_1,\dots,v_k v1,…,vk张成的空间,那么他的解释方差就是 λ 1 + ⋯ + λ k \lambda_1+\dots+\lambda_k λ1+⋯+λk,我们将证明这条结论。
假设原始的数据集是 ( x 1 , … , x n ) \left(x_{1}, \ldots, x_{n}\right) (x1,…,xn), 将其投影到由 v 1 , … , v k v_1,\dots,v_k v1,…,vk张成的空间 V k V_k Vk后的坐标为 ( V k T x 1 , … , V k T x n ) \left(V_{k}^{T} x_{1}, \ldots, V_{k}^{T} x_{n}\right) (VkTx1,…,VkTxn),而 ( V k T x 1 , … , V k T x n ) \left(V_{k}^{T} x_{1}, \ldots, V_{k}^{T} x_{n}\right) (VkTx1,…,VkTxn)的解释方差可以由下面的方法计算得到:
1 n ∑ i = 1 n ∥ V k T x i − 1 n ∑ j = 1 n V k T x j ∥ 2 = 1 n ∑ i = 1 n ∥ V k T x i ∥ 2 = 1 n ∑ i = 1