Spec-Zone.ru › scikit-learn

Примечание

Перейти в конец для скачивания полного примера кода. или для запуска этого примера в вашем браузере через JupyterLite или Binder

Инкрементный PCA

Инкрементный анализ главных компонент (IPCA) обычно используется как замена анализа главных компонент (PCA), когда набор данных, подлежащий разложению, слишком велик, чтобы поместиться в памяти. IPCA строит приближение низкого ранга для входных данных, используя объём памяти, независимый от числа входных выборок данных. Он всё ещё зависит от входных признаков данных, но изменение размера пакета позволяет контролировать использование памяти.

Этот пример служит визуальной проверкой того, что IPCA способен найти аналогичную проекцию данных с PCA (до переворота знака), обрабатывая только несколько выборок за раз. Это можно считать «игрушечным примером», так как IPCA предназначен для больших наборов данных, которые не помещаются в оперативную память, требуя инкрементных подходов.

  • Incremental PCA of iris dataset Mean absolute unsigned error 0.002201
  • PCA of iris dataset
# 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 секунды)

Launch binder
Launch JupyterLite

Download Jupyter notebook: plot_incremental_pca.ipynb

Download Python source code: plot_incremental_pca.py

Download zipped: plot_incremental_pca.zip

Похожие примеры

Анализ главных компонент (PCA) на наборе данных Iris

Сравнение LDA и PCA 2D проекции набора данных Iris

Построение поверхности решений деревьев решений, обученных на наборе данных iris

Построение многоклассовой SGD на наборе данных iris

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API