Примечание
Перейти в конец для скачивания полного примера кода. или для запуска этого примера в вашем браузере через JupyterLite или Binder
Инкрементный PCA
Инкрементный анализ главных компонент (IPCA) обычно используется как замена анализа главных компонент (PCA), когда набор данных, подлежащий разложению, слишком велик, чтобы поместиться в памяти. IPCA строит приближение низкого ранга для входных данных, используя объём памяти, независимый от числа входных выборок данных. Он всё ещё зависит от входных признаков данных, но изменение размера пакета позволяет контролировать использование памяти.
Этот пример служит визуальной проверкой того, что IPCA способен найти аналогичную проекцию данных с PCA (до переворота знака), обрабатывая только несколько выборок за раз. Это можно считать «игрушечным примером», так как IPCA предназначен для больших наборов данных, которые не помещаются в оперативную память, требуя инкрементных подходов.
# Authors: The scikit-learn developers
# SPDX-License-Identifier: BSD-3-Clause
import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA, IncrementalPCA
iris = load_iris()
X = iris.data
y = iris.target
n_components = 2
ipca = IncrementalPCA(n_components=n_components, batch_size=10)
X_ipca = ipca.fit_transform(X)
pca = PCA(n_components=n_components)
X_pca = pca.fit_transform(X)
colors = ["navy", "turquoise", "darkorange"]
for X_transformed, title in [(X_ipca, "Incremental PCA"), (X_pca, "PCA")]:
plt.figure(figsize=(8, 8))
for color, i, target_name in zip(colors, [0, 1, 2], iris.target_names):
plt.scatter(
X_transformed[y == i, 0],
X_transformed[y == i, 1],
color=color,
lw=2,
label=target_name,
)
if "Incremental" in title:
err = np.abs(np.abs(X_pca) - np.abs(X_ipca)).mean()
plt.title(title + " of iris dataset\nMean absolute unsigned error %.6f" % err)
else:
plt.title(title + " of iris dataset")
plt.legend(loc="best", shadow=False, scatterpoints=1)
plt.axis([-4, 4, -1.5, 1.5])
plt.show()
Общее время выполнения скрипта: (0 минут 0,234 секунды)
Похожие примеры
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/auto_examples/decomposition/plot_incremental_pca.html

