IncrementalPCA
- classsklearn.decomposition.IncrementalPCA(n_components=None, *, whiten=False, copy=True, batch_size=None)[source]
-
Итерационный анализ главных компонент (IPCA).
Линейное уменьшение размерности с использованием сингулярного разложения данных, сохраняя только наиболее значимые сингулярные векторы для проекции данных на пространство меньшей размерности. Входные данные центрируются, но не масштабируются для каждой функции перед применением СРД.
В зависимости от размера входных данных этот алгоритм может быть значительно более эффективным по памяти, чем PCA, и допускает разреженные входные данные.
Этот алгоритм имеет постоянную сложность по памяти, порядка
batch_size * n_features, что позволяет использовать файлы np.memmap без загрузки всего файла в память. Для разреженных матриц вход преобразуется в плотные порциями (для возможности вычитания среднего значения), что позволяет избежать хранения всей плотной матрицы одновременно.Вычислительная нагрузка каждого СРД составляет
O(batch_size * n_features ** 2), но только 2 * размер_порции образцов остаются в памяти одновременно. Для получения главных компонент потребуетсяn_samples / batch_sizeвычислений СРД, в отличие от 1 большого вычисления СРД со сложностьюO(n_samples * n_features ** 2)для PCA.Пример использования см. в Итерационном PCA.
Дополнительную информацию см. в Руководстве пользователя.
Добавлен в версии 0.16.
- Параметры:
-
- n_componentsint, по умолчанию=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, по умолчанию=None
-
Количество образцов для каждой порции. Используется только при вызове
fit. Еслиbatch_sizeравноNone, тоbatch_sizeвыводится из данных и устанавливается в значение5 * n_features, чтобы обеспечить баланс между точностью аппроксимации и потреблением памяти.
- Атрибуты:
-
- components_массив формы (n_components, n_features)
-
Главные оси в пространстве признаков, представляющие направления максимальной дисперсии в данных. Эквивалентно правым сингулярным векторам центрированных входных данных, параллельным собственным векторам. Компоненты отсортированы по убыванию
explained_variance_. - explained_variance_массив формы (n_components,)
-
Дисперсия, объясняемая каждой выбранной компонентой.
- explained_variance_ratio_массив формы (n_components,)
-
Процент дисперсии, объясняемый каждой выбранной компонентой. Если все компоненты хранятся, сумма объясненных дисперсий равна 1,0.
- singular_values_массив формы (n_components,)
-
Сингулярные значения, соответствующие каждой выбранной компоненте. Сингулярные значения равны 2-нормам
n_componentsпеременных в пространстве меньшей размерности. - mean_массив формы (n_features,)
-
Эмпирическое среднее значение по признакам, агрегированное по вызовам
partial_fit. - var_массив формы (n_features,)
-
Эмпирическая дисперсия по признакам, агрегированная по вызовам
partial_fit. - noise_variance_float
-
Оцененная дисперсия шума в соответствии с моделью Probabilistic PCA от Tipping и Bishop 1999. См. «Распознавание образов и машинное обучение» К. Бишопа, 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_массив формы (
n_features_in_,) -
Имена признаков, увиденные во время fit. Определяется только тогда, когда
Xимеет имена признаков, все из которых являются строками.Добавлен в версии 1.0.
См. также
PCA-
Анализ главных компонент (PCA).
KernelPCA-
Ядерный анализ главных компонент (KPCA).
SparsePCA-
Разложение на разрешенные главные компоненты (SparsePCA).
TruncatedSVD-
Уменьшение размерности с помощью усеченного SVD.
Примечания
Реализует модель итеративного PCA из: D. Ross, J. Lim, R. Lin, M. Yang, Итеративное обучение для надежного визуального отслеживания, Международный журнал компьютерного зрения, том 77, выпуск 1-3, стр. 125-141, май 2008 г. См. https://www.cs.toronto.edu/~dross/ivt/RossLimLinYang_ijcv.pdf
Эта модель является расширением последовательной преобразования Кархунена-Лоэва из: A. Levy и M. Lindenbaum, Последовательная экстракция базиса Кархунена-Лоэва и ее применение к изображениям, IEEE Transactions on Image Processing, том 9, номер 8, стр. 1371-1374, август 2000 г.
Мы специально отказались от оптимизации, используемой авторами обеих статей, разложения QR, используемого в определенных ситуациях для уменьшения вычислительной сложности SVD. Источник этой техники — Матричные вычисления, третье издание, Г. Холуб и К. Ван Лоан, глава 5, раздел 5.4.4, стр. 252-253.. Эта техника была опущена, потому что она выгодна только при разложении матрицы с
n_samples(строки) >= 5/3 *n_features(столбцы) и ухудшает читаемость реализованного алгоритма. Это была бы хорошая возможность для будущей оптимизации, если это потребуется.Ссылки
D. Ross, J. Lim, R. Lin, M. Yang. Итеративное обучение для надежного визуального отслеживания, Международный журнал компьютерного зрения, том 77, выпуск 1-3, стр. 125-141, май 2008 г.
Г. Голуб и К. Ван Лоан. Матричные вычисления, третье издание, глава 5, раздел 5.4.4, стр. 252-253.
Примеры
>>> 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)[source]
-
Обучение модели с помощью X, используя мини-порции размером batch_size.
- Параметры:
-
- X{array-like, sparse matrix} формы (n_samples, n_features)
-
Данные обучения, где
n_samples— количество образцов, аn_features— количество признаков. - yИгнорируется
-
Не используется, присутствует для согласованности API по соглашению.
- Возвращаемое значение:
-
- selfобъект
-
Возвращает сам экземпляр.
- fit_transform(X, y=None, **fit_params)[source]
-
Построение модели на данных, затем их преобразование.
Обучает преобразователь на
Xиyс необязательными параметрамиfit_paramsи возвращает преобразованную версиюX.- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Входные данные.
- yarray-like of shape (n_samples,) or (n_samples, n_outputs), default=None
-
Целевые значения (None для без учителя преобразований).
- **fit_paramsdict
-
Дополнительные параметры обучения.
- Возвращает:
-
- X_newndarray array of shape (n_samples, n_features_new)
-
Преобразованный массив.
- get_covariance()[source]
-
Вычисление ковариации данных с помощью генеративной модели.
cov = components_.T * S**2 * components_ + sigma2 * eye(n_features)где S**2 содержит объяснённые дисперсии, а sigma2 содержит дисперсии шума.- Возвращает:
-
- covarray of shape=(n_features, n_features)
-
Оценённая ковариация данных.
- get_feature_names_out(input_features=None)[source]
-
Получение имён выходных признаков для преобразования.
Имена выходных признаков будут начинаться с имени класса в нижнем регистре. Например, если преобразователь возвращает 3 признака, то имена выходных признаков таковы:
["class_name0", "class_name1", "class_name2"].- Параметры:
-
- input_featuresarray-like of str or None, default=None
-
Используется только для проверки имён признаков с именами, используемыми в
fit.
- Возвращает:
-
- feature_names_outndarray of str objects
-
Имена преобразованных признаков.
- get_metadata_routing()[source]
-
Получение маршрутизации метаданных для этого объекта.
Пожалуйста, обратитесь к Руководству пользователя по работе механизма маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
Объект
MetadataRequest, содержащий информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получение параметров этого оценщика.
- Параметры:
-
- deepbool, default=True
-
Если True, возвращает параметры этого оценщика и вложенных подобъектов, которые также являются оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров сопоставлены со своими значениями.
- get_precision()[source]
-
Вычисление матрицы точности данных с помощью генеративной модели.
Равна обратной ковариационной матрице, но вычисляется с помощью леммы о матричном обращении для повышения эффективности.
- Возвращает:
-
- precisionarray, shape=(n_features, n_features)
-
Оценённая точность данных.
- inverse_transform(X)[source]
-
Преобразование данных обратно в исходное пространство.
Другими словами, возвращает входные
X_original, чьё преобразование равно X.- Параметры:
-
- Xarray-like of shape (n_samples, n_components)
-
Новые данные, где
n_samples— количество образцов, аn_components— количество компонентов.
- Возвращает:
-
- X_original array-like of shape (n_samples, n_features)
-
Исходные данные, где
n_samples— количество образцов, аn_features— количество признаков.
Примечания
Если включено осветление, inverse_transform вычислит точное обратное преобразование, что включает обратное осветление.
- partial_fit(X, y=None, check_input=True)[source]
-
Инкрементальное обучение с X. Все X обрабатываются как одна партия.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Обучающие данные, где
n_samples— количество образцов, аn_features— количество признаков. - yИгнорируется
-
Не используется, присутствует для согласованности API по умолчанию.
- check_inputbool, default=True
-
Запуск check_array на X.
- Возвращает:
-
- selfobject
-
Возвращает сам объект.
- set_output(*, transform=None)[source]
-
Установить контейнер вывода.
См. Введение в API set_output для примера использования API.
- Параметры:
-
- transform{“default”, “pandas”, “polars”}, по умолчанию=None
-
Настройка вывода
transformиfit_transform.-
"default": Формат вывода по умолчанию трансформатора -
"pandas": Вывод DataFrame -
"polars": Вывод Polars -
None: Настройка трансформации не изменяется
Добавлена в версии 1.4:
"polars"опция была добавлена. -
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_params(**params)[source]
-
Установить параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как
Pipeline). Последние имеют параметры вида<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- transform(X)[source]
-
Применить уменьшение размерности к X.
X проектируется на первые главные компоненты, ранее извлеченные из обучающего набора, используя мини-пакеты размером batch_size, если X является разреженным.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Новые данные, где
n_samples— количество выборок, аn_features— количество признаков.
- Возвращает:
-
- X_newndarray of shape (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)
Примеры галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.decomposition.IncrementalPCA.html