
数据降维:使用
PCA
挤压数据
|
91
另一种选择
k
的方法涉及数据集的本征维数。这是个非常模糊的概念,但也可以通过矩阵
的谱来确定。简单地说,如果谱中包含一些非常大的奇异值和一些非常小的奇异值,我们
就可以只保留那些非常大的奇异值,丢弃其余奇异值。有时候,谱中其余的奇异值不是非
常小,但头部和尾部的值之间有比较大的缺口,这也是一个非常合理的界限。这种方法需
要对谱进行人工观察,因此不能作为自动流程的一部分。
对
PCA
的一种主要诟病是转换过程太复杂了,而且由此得到的结果也难以解释。主成分
和投影向量是实数值,可能是正的,也可能是负的。主成分实质上是(中心化后的)行的
线性组合,投影值则是列的线性组合。例如,在一个股票收益应用中,每个因子都是股票
收益时间片的一个线性组合。其中的含义呢?很难用人类可以理解的理由来解释这些学习
得出的因子。因此,分析师很难相信这些结果。如果不能解释为什么应该把成千上万其他
人的钱投到一支特定的股票上,你可能就不会使用这个模型。
PCA
的计算成本是非常昂贵的,它依赖于
SVD
,而
SVD
就是个对计算能力要求非常高
的过程。要计算出一个矩阵的完整
SVD
,需要
O
(
nd
2
+
d
3
)
次操作(
Golub and Van Loan,
2012
),假设
n
≥
d
,即数据点数量大于特征数量。尽管我们只需要
k
个主成分,计算截
断后的
SVD
(
k
个最大奇异值及其对应的奇异向量)仍然需要
O
((
n
+
d
)
2
k
) =
O
(
n
2
k
)
次操作。
当有大量数据点和特征时,计算成本令人望而却步。
在流式数据、批量更新或完整数据的抽样中,是难以执行 ...