为什么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))
答案 0 :(得分:1)
从docs,
IPCA使用输入法为输入数据建立低秩近似 内存量与输入数据的数量无关 样本。
IPCA仅应用于海量数据集,因为它实际上会对数据进行下采样。数据集越大,IPCA投影看起来越像PCA,但它始终是一个近似值,对于较小的数据集,这将更加明显。