为什么PCA和增量PCA的结果不同

时间:2019-07-05 04:53:55

标签: python scipy pca

为什么PCA和增量PCA的结果大不相同?

我使用PCA和增加PCA来拟合相同的数据。

但是当进行转换时,两种方法之间的差距很大。

你能帮我解释一下吗? 非常感谢你!

import numpy as np
from sklearn.decomposition import PCA, IncrementalPCA
data = np.random.random([100000, 512])
pca_obj = PCA(n_components=256)
ipca_obj = IncrementalPCA(n_components=256, batch_size=1000)
pca_obj.fit(data)
ipca_obj.fit(data)
print pca_obj.transform(np.expand_dims(data[0], axis=0))
print ipca_obj.transform(np.expand_dims(data[0], axis=0))

1 个答案:

答案 0 :(得分:1)

docs

  

IPCA使用输入法为输入数据建立低秩近似   内存量与输入数据的数量无关   样本。

IPCA仅应用于海量数据集,因为它实际上会对数据进行下采样。数据集越大,IPCA投影看起来越像PCA,但它始终是一个近似值,对于较小的数据集,这将更加明显。