IncrementalPCA#

класс sklearn.decomposition.IncrementalPCA(n_components=None, *, whiten=False, copy=True, batch_size=None)[источник]#

Инкрементальный анализ главных компонент (IPCA).

Линейное снижение размерности с использованием сингулярного разложения данных, сохраняя только наиболее значимые сингулярные векторы для проецирования данных в пространство меньшей размерности. Входные данные центрируются, но не масштабируются для каждого признака перед применением SVD.

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

Этот алгоритм имеет постоянную сложность по памяти, порядка batch_size * n_features, позволяя использовать файлы np.memmap без загрузки всего файла в память. Для разреженных матриц входные данные преобразуются в плотные пакетами (чтобы можно было вычесть среднее), что позволяет избежать хранения всей плотной матрицы одновременно.

Вычислительные затраты каждого SVD составляют O(batch_size * n_features ** 2), но только 2 * batch_size образцов остаются в памяти одновременно. Будет n_samples / batch_size Вычисления SVD для получения главных компонент, в отличие от одного большого SVD сложности O(n_samples * n_features ** 2) cv: int, генератор перекрестной проверки или итерируемый объект, по умолчанию=5

Пример использования см. в Инкрементальный PCA.

Подробнее в Руководство пользователя.

Добавлено в версии 0.16.

Параметры:
n_componentsint, default=None

Количество компонентов для сохранения. Если n_components является None, затем n_components установлено в min(n_samples, n_features).

whitenbool, по умолчанию=False

Когда True (по умолчанию False), components_ векторы делятся на n_samples раз components_ чтобы обеспечить некоррелированные выходы с единичными покомпонентными дисперсиями.

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

copybool, по умолчанию=True

Если False, X будет перезаписан. copy=False может использоваться для экономии памяти, но небезопасно для общего использования.

batch_sizeint, default=None

Количество образцов для использования в каждой партии. Используется только при вызове fit. Если batch_size является None, затем batch_size выводится из данных и устанавливается в 5 * n_features, чтобы обеспечить баланс между точностью аппроксимации и потреблением памяти.

Атрибуты:
components_ndarray формы (n_components, n_features)

Главные оси в пространстве признаков, представляющие направления максимальной дисперсии в данных. Эквивалентно, правые сингулярные векторы центрированных входных данных, параллельные их собственным векторам. Компоненты отсортированы по убыванию explained_variance_.

explained_variance_ndarray формы (n_components,)

Дисперсия, объясняемая каждой из выбранных компонент.

explained_variance_ratio_ndarray формы (n_components,)

Процент дисперсии, объясняемый каждым из выбранных компонентов. Если хранятся все компоненты, сумма объясненных дисперсий равна 1.0.

singular_values_ndarray формы (n_components,)

Сингулярные значения, соответствующие каждому из выбранных компонентов. Сингулярные значения равны 2-нормам n_components переменные в пространстве меньшей размерности.

mean_ndarray формы (n_features,)

Эмпирическое среднее по признакам, агрегированное по вызовам partial_fit.

var_ndarray формы (n_features,)

Эмпирическая дисперсия по признакам, агрегированная по вызовам partial_fit.

noise_variance_float

Оцененная ковариация шума в соответствии с моделью вероятностного PCA от Tipping и Bishop 1999. См. “Pattern Recognition and Machine Learning” от C. Bishop, 12.2.1 стр. 574 или http://www.miketipping.com/papers/met-mppca.pdf.

n_components_int

Оцененное количество компонент. Актуально, когда n_components=None.

n_samples_seen_int

Количество выборок, обработанных оценщиком. Будет сброшено при новых вызовах fit, но увеличивается при partial_fit вызовы.

batch_size_int

Выведенный размер батча из batch_size.

n_features_in_int

Количество признаков, замеченных во время fit.

Добавлено в версии 0.24.

feature_names_in_ndarray формы (n_features_in_,)

Имена признаков, наблюдаемых во время fit. Определено только когда X имеет имена признаков, которые все являются строками.

Добавлено в версии 1.0.

Смотрите также

PCA

Метод главных компонент (PCA).

KernelPCA

Анализ главных компонент с ядром (KPCA).

SparsePCA

Разреженный анализ главных компонент (SparsePCA).

TruncatedSVD

Уменьшение размерности с использованием усеченного SVD.

Примечания

Реализует модель инкрементального PCA из работы Ross et al. (2008) [1]. Эта модель является расширением последовательного преобразования Кархунена-Лоэва из Леви и Линденбаума (2000) [2].

Мы специально воздержались от оптимизации, используемой авторами обеих статей, QR-разложения, применяемого в определённых ситуациях для снижения алгоритмической сложности SVD. Источник этой техники — Матричные вычисления (Golub и Van Loan 1997 [3]). Эта техника была опущена, потому что она выгодна только при разложении матрицы с n_samples (строки) >= 5/3 * n_features (столбцы) и ухудшает читаемость реализованного алгоритма. Это была бы хорошая возможность для будущей оптимизации, если это будет сочтено необходимым.

Ссылки

[1]

D. Ross, J. Lim, R. Lin, M. Yang. Incremental Learning for Robust Visual Tracking, International Journal of Computer Vision, Volume 77, Issue 1-3, pp. 125-141, May 2008. https://www.cs.toronto.edu/~dross/ivt/RossLimLinYang_ijcv.pdf

[3]

Г. Голуб и К. Ван Лоан. Матричные вычисления, третье издание, Глава 5, Раздел 5.4.4, стр. 252-253, 1997.

Примеры

>>> from sklearn.datasets import load_digits
>>> from sklearn.decomposition import IncrementalPCA
>>> from scipy import sparse
>>> X, _ = load_digits(return_X_y=True)
>>> transformer = IncrementalPCA(n_components=7, batch_size=200)
>>> # either partially fit on smaller batches of data
>>> transformer.partial_fit(X[:100, :])
IncrementalPCA(batch_size=200, n_components=7)
>>> # or let the fit function itself divide the data into batches
>>> X_sparse = sparse.csr_matrix(X)
>>> X_transformed = transformer.fit_transform(X_sparse)
>>> X_transformed.shape
(1797, 7)
fit(X, y=None)[источник]#

Обучите модель с X, используя мини-пакеты размера batch_size.

Параметры:
X{array-like, sparse matrix} формы (n_samples, n_features)

Обучающие данные, где n_samples — это количество образцов и n_features это количество признаков.

yИгнорируется

Не используется, присутствует для согласованности API по соглашению.

Возвращает:
selfobject

Возвращает сам экземпляр.

fit_transform(X, y=None, **fit_params)[источник]#

Обучение на данных с последующим преобразованием.

Обучает преобразователь на X и y с необязательными параметрами fit_params и возвращает преобразованную версию X.

Параметры:
Xarray-like формы (n_samples, n_features)

Входные выборки.

yarray-like формы (n_samples,) или (n_samples, n_outputs), default=None

Целевые значения (None для неконтролируемых преобразований).

**fit_paramsdict

Дополнительные параметры обучения. Передавайте только если оценщик принимает дополнительные параметры в своем fit метод.

Возвращает:
X_newndarray массив формы (n_samples, n_features_new)

Преобразованный массив.

get_covariance()[источник]#

Вычисление ковариации данных с порождающей моделью.

cov = components_.T * S**2 * components_ + sigma2 * eye(n_features) где S**2 содержит объяснённые дисперсии, а sigma2 содержит дисперсии шума.

Возвращает:
covмассив формы=(n_features, n_features)

Оцененная ковариация данных.

get_feature_names_out(input_features=None)[источник]#

Получить имена выходных признаков для преобразования.

Имена признаков на выходе будут иметь префикс в виде имени класса в нижнем регистре. Например, если преобразователь выводит 3 признака, то имена признаков на выходе: ["class_name0", "class_name1", "class_name2"].

Параметры:
input_featuresarray-like из str или None, по умолчанию=None

Используется только для проверки имен признаков с именами, встреченными в fit.

Возвращает:
feature_names_outndarray из str объектов

Преобразованные имена признаков.

6332()[источник]#

Получить маршрутизацию метаданных этого объекта.

Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.

Возвращает:
маршрутизацияMetadataRequest

A MetadataRequest Инкапсуляция информации о маршрутизации.

get_params(глубокий=True)[источник]#

Получить параметры для этого оценщика.

Параметры:
глубокийbool, по умолчанию=True

Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.

Возвращает:
paramsdict

Имена параметров, сопоставленные с их значениями.

get_precision()[источник]#

Вычислить матрицу точности данных с генеративной моделью.

Равен обратной ковариационной матрице, но вычислен с использованием леммы обращения матрицы для эффективности.

Возвращает:
точностьмассив, shape=(n_features, n_features)

Оцененная точность данных.

inverse_transform(X)[источник]#

Преобразование данных обратно в исходное пространство.

Другими словами, вернуть входные данные X_original чей transform будет X.

Параметры:
Xarray-like формы (n_samples, n_components)

Новые данные, где n_samples это количество образцов и n_components это количество компонентов.

Возвращает:
X_originalarray-like формы (n_samples, n_features)

Исходные данные, где n_samples это количество образцов и n_features это количество признаков.

Примечания

Если включено отбеливание, inverse_transform вычислит точную обратную операцию, включая отмену отбеливания.

partial_fit(X, y=None, check_input=True)[источник]#

Инкрементное обучение с X. Весь X обрабатывается как единый пакет.

Параметры:
Xarray-like формы (n_samples, n_features)

Обучающие данные, где n_samples — это количество образцов и n_features это количество признаков.

yИгнорируется

Не используется, присутствует для согласованности API по соглашению.

check_inputbool, по умолчанию=True

Запустить check_array на X.

Возвращает:
selfobject

Возвращает сам экземпляр.

set_output(*, преобразовать=None)[источник]#

Установить контейнер вывода.

См. Введение API set_output для примера использования API.

Параметры:
преобразовать{“default”, “pandas”, “polars”}, по умолчанию=None

Настройка вывода transform и fit_transform.

  • "default": Формат вывода трансформера по умолчанию

  • "pandas": DataFrame вывод

  • "polars": Вывод Polars

  • None: Конфигурация преобразования не изменена

Добавлено в версии 1.4: "polars" опция была добавлена.

Возвращает:
selfэкземпляр estimator

Экземпляр оценщика.

set_params(**params)[источник]#

Установить параметры этого оценщика.

Метод работает как на простых оценщиках, так и на вложенных объектах (таких как Pipeline). Последние имеют параметры вида __ чтобы можно было обновить каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценщика.

Возвращает:
selfэкземпляр estimator

Экземпляр оценщика.

преобразовать(X)[источник]#

Применить уменьшение размерности к X.

X проецируется на первые главные компоненты, ранее извлеченные из обучающего набора, используя мини-пакеты размера batch_size, если X разрежен.

Параметры:
X{array-like, sparse matrix} формы (n_samples, n_features)

Новые данные, где n_samples это количество образцов и n_features это количество признаков.

Возвращает:
X_newndarray формы (n_samples, n_components)

Проекция X на первые главные компоненты.

Примеры

>>> import numpy as np
>>> from sklearn.decomposition import IncrementalPCA
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2],
...               [1, 1], [2, 1], [3, 2]])
>>> ipca = IncrementalPCA(n_components=2, batch_size=3)
>>> ipca.fit(X)
IncrementalPCA(batch_size=3, n_components=2)
>>> ipca.transform(X)