为什么PCA和IncrementalPCA的结果不同

2024-09-30 10:27:10 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么PCA和IncreasePCA的结果差别很大?你知道吗

我使用PCA和IncreasePCA来拟合相同的数据。你知道吗

但在进行变换时,两种方法之间的差距较大。你知道吗

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

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))

Tags: importobjdatanpcomponentstransformrandomfit
1条回答
网友
1楼 · 发布于 2024-09-30 10:27:10

docs

IPCA builds a low-rank approximation for the input data using an amount of memory which is independent of the number of input data samples.

IPCA应该只在海量数据集上使用,因为它实际上是对数据的下采样。数据集越大,IPCA投影就越接近PCA,但它总是一个近似值&这在小数据集上就越明显。你知道吗

相关问题 更多 >

    热门问题