Почему результат отличается между PCA и IncrementalPCA - PullRequest
1 голос
/ 05 июля 2019

Почему результаты 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))

1 Ответ

1 голос
/ 05 июля 2019

Из документов ,

IPCA строит низкосортное приближение для входных данных, используя объем памяти, который не зависит от количества выборок входных данных.

IPCA следует использовать только для массивных наборов данных, поскольку это фактически уменьшает ваши данные.Чем больше набор данных, тем ближе прогноз IPCA будет выглядеть как PCA, но он всегда будет приблизительным, и это будет более очевидно с небольшими наборами данных.

...