Spec-Zone.ru › scikit-learn

KernelPCA

классsklearn.decomposition.KernelPCA(n_components=None, *, kernel='linear', gamma=None, degree=3, coef0=1, kernel_params=None, alpha=1.0, fit_inverse_transform=False, eigen_solver='auto', tol=0, max_iter=None, iterated_power='auto', remove_zero_eig=False, random_state=None, copy_X=True, n_jobs=None)[source]

Ядерный метод главных компонент (KPCA).

Нелинейное уменьшение размерности с помощью ядер [1], см. также Взаимные метрики, сродства и ядра.

Использует реализацию LAPACK для полного SVD scipy.linalg.eigh или реализацию ARPACK для усеченного SVD scipy.sparse.linalg.eigsh, в зависимости от формы входных данных и количества извлекаемых компонент. Также может использовать случайный усеченный SVD, используя метод, предложенный в [3], см. eigen_solver.

Пример использования и сравнение метода главных компонент (PCA) и его ядерной версии (KPCA) см. в Ядерный метод главных компонент.

Пример использования для шумоподавления изображений с помощью KPCA см. в Шумоподавление изображений с помощью ядерного метода главных компонент.

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

Параметры:
n_componentsint, по умолчанию = None

Количество компонент. Если None, сохраняются все ненулевые компоненты.

kernel{‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘cosine’, ‘precomputed’} или вызываемый объект, по умолчанию =’linear’

Ядро, используемое для PCA.

gammafloat, по умолчанию = None

Коэффициент ядра для ядер rbf, poly и sigmoid. Игнорируется другими ядрами. Если gamma равно None, то он устанавливается в значение 1/n_features.

degreefloat, по умолчанию = 3

Степень для полиномиальных ядер. Игнорируется другими ядрами.

coef0float, по умолчанию = 1

Независимый член в полиномиальных и сигмоидальных ядрах. Игнорируется другими ядрами.

kernel_paramsdict, по умолчанию = None

Параметры (ключевые аргументы) и значения для ядра, переданные как вызываемый объект. Игнорируется другими ядрами.

alphafloat, по умолчанию = 1.0

Гиперпараметр регрессии с гребнем, которая обучает обратное преобразование (когда fit_inverse_transform=True).

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

Обучить обратное преобразование для ядер, не вычисленных заранее (т.е. научиться находить прообраз точки). Этот метод основан на [2].

eigen_solver{‘auto’, ‘dense’, ‘arpack’, ‘randomized’}, по умолчанию =’auto’

Выбор метода решения собственных значений. Если n_components значительно меньше числа обучающих примеров, случайный (или arpack в меньшей степени) может быть более эффективным, чем точный метод. Случайный SVD выполняется согласно методу Холко и др [3].

auto :

решение выбирается по умолчанию, в зависимости от n_samples (количество обучающих примеров) и n_components: если количество компонент меньше 10 (строго) и количество примеров больше 200 (строго), то используется метод ‘arpack’. В противном случае вычисляется точное полное разложение собственных значений и, при необходимости, обрезается (‘dense’ метод).

dense :

выполнить точное полное разложение собственных значений, вызвав стандартный решатель LAPACK через scipy.linalg.eigh, и выбрать компоненты с помощью послеобработки.

arpack :

выполнить усеченное SVD с помощью решателя ARPACK, используя scipy.sparse.linalg.eigsh. Требует строгого условия 0 < n_components < n_samples

randomized :

выполнить случайный SVD по методу Холко и др. [3]. Текущая реализация выбирает собственные значения на основе их модуля; поэтому использование этого метода может привести к неожиданным результатам, если ядро не является положительно полуопределенным. См. также [4].

Изменено в версии 1.0: 'randomized' был добавлен.

tolfloat, по умолчанию = 0

Пороговое значение сходимости для arpack. Если 0, оптимальное значение будет выбрано arpack.

max_iterint, по умолчанию = None

Максимальное количество итераций для arpack. Если None, оптимальное значение будет выбрано arpack.

iterated_powerint >= 0 или ‘auto’, по умолчанию =’auto’

Количество итераций для метода степеней, вычисленного при svd_solver == ‘randomized’. Когда ‘auto’, он устанавливается в 7, когда n_components < 0.1 * min(X.shape), иначе в 4.

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

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

Если True, то все компоненты с нулевыми собственными значениями удаляются, так что количество компонент в выводе может быть < n_components (и иногда даже равно нулю из-за численных неустойчивостей). Когда n_components = None, этот параметр игнорируется, и компоненты с нулевыми собственными значениями удаляются независимо.

random_stateint, экземпляр RandomState или None, по умолчанию = None

Используется, когда eigen_solver == ‘arpack’ или ‘randomized’. Передача целого числа для воспроизводимых результатов при нескольких вызовах функций. См. Справочник.

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

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

Если True, входной X копируется и сохраняется моделью в атрибуте X_fit_. Если дальнейшие изменения X не будут выполняться, установка copy_X=False экономит память, храня ссылку.

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

n_jobsint, по умолчанию = None

Количество параллельных задач для выполнения. None означает 1, за исключением контекста joblib.parallel_backend. -1 означает использование всех процессоров. См. Справочник для получения дополнительной информации.

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

Атрибуты:
eigenvalues_массив формы (n_components,)

Собственные значения центрированной матрицы ядра в порядке убывания. Если n_components и remove_zero_eig не установлены, то хранятся все значения.

eigenvectors_массив формы (n_samples, n_components)

Собственные векторы центрированной матрицы ядра. Если n_components и remove_zero_eig не установлены, то хранятся все компоненты.

dual_coef_массив формы (n_samples, n_features)

Матрица обратного преобразования. Доступна только при fit_inverse_transform True.

X_transformed_fit_массив формы (n_samples, n_components)

Проекция входных данных на ядерные главные компоненты. Доступна только при fit_inverse_transform True.

X_fit_массив формы (n_samples, n_features)

Данные, используемые для обучения модели. Если copy_X=False, то X_fit_ является ссылкой. Этот атрибут используется для вызовов transform.

n_features_in_int

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

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

feature_names_in_массив формы (n_features_in_,)

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

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

gamma_float

Коэффициент ядра для ядер rbf, poly и sigmoid. Когда gamma явно указан, это то же самое, что и gamma. Когда gamma является None, это фактическое значение коэффициента ядра.

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

END_OF_DOCUMENT_MARKER

См. также

FastICA

Быстрый алгоритм для анализа независимых компонент.

IncrementalPCA

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

NMF

Неотрицательная матричная факторизация.

PCA

Анализ главных компонент.

SparsePCA

Разложение главных компонент с разреженностью.

TruncatedSVD

Снижение размерности с помощью усечённого SVD.

Список литературы

[1]

Schölkopf, Bernhard, Alexander Smola, and Klaus-Robert Müller. «Kernel principal component analysis». Международная конференция по искусственным нейронным сетям. Springer, Берлин, Гейдельберг, 1997.

[2]

Bakır, Gökhan H., Jason Weston, and Bernhard Schölkopf. «Learning to find pre-images». Advances in neural information processing systems 16 (2004): 449-456.

[3] (1,2,3)

Halko, Nathan, Per-Gunnar Martinsson, and Joel A. Tropp. «Finding structure with randomness: Probabilistic algorithms for constructing approximate matrix decompositions». SIAM review 53.2 (2011): 217-288.

[4]

Martinsson, Per-Gunnar, Vladimir Rokhlin, and Mark Tygert. «A randomized algorithm for the decomposition of matrices». Applied and Computational Harmonic Analysis 30.1 (2011): 47-68.

Примеры

>>> from sklearn.datasets import load_digits
>>> from sklearn.decomposition import KernelPCA
>>> X, _ = load_digits(return_X_y=True)
>>> transformer = KernelPCA(n_components=7, kernel='linear')
>>> X_transformed = transformer.fit_transform(X)
>>> X_transformed.shape
(1797, 7)
fit(X, y=None)[source]

Обучение модели на данных X.

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

Вектор обучения, где n_samples — количество примеров, а n_features — количество признаков.

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

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

Возвращаемые значения:
selfobject

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

fit_transform(X, y=None, **params)[source]

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

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

Вектор обучения, где n_samples — количество примеров, а n_features — количество признаков.

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

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

**paramskwargs

Параметры (именованные аргументы) и значения, передаваемые экземпляру fit_transform.

Возвращаемые значения:
X_newndarray of shape (n_samples, n_components)

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

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

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

inverse_transform(X)[source]

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

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

Примечание

Когда пользователи хотят вычислить обратное преобразование для ядра «линейное», рекомендуется использовать PCA вместо PCA. В отличие от PCA, KernelPCA’s inverse_transform не восстанавливает среднее значение данных при использовании ядра «линейное» из-за использования центрированного ядра.

Параметры:
X{array-like, sparse matrix} of shape (n_samples, n_components)

Вектор обучения, где n_samples — число выборок, а n_features — число признаков.

Возвращает:
X_newndarray of shape (n_samples, n_features)

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

Ссылки

Bakır, Gökhan H., Jason Weston, and Bernhard Schölkopf. «Learning to find pre-images.» Advances in neural information processing systems 16 (2004): 449-456.

set_output(*, transform=None)[source]

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

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

Параметры:
transform{“default”, “pandas”, “polars”}, default=None

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

  • "default": Формат вывода по умолчанию для преобразователя
  • "pandas": Вывод DataFrame
  • "polars": Вывод Polars
  • None: Конфигурация преобразования не изменяется

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

Возвращает:
selfestimator instance

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

set_params(**params)[source]

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

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

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

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

Возвращает:
selfestimator instance

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

transform(X)[source]

Преобразовать X.

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

Вектор обучения, где n_samples — число выборок, а n_features — число признаков.

Возвращает:
X_newndarray of shape (n_samples, n_components)

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

Примеры галереи

Ядерный PCA

Шумоподавление изображений с помощью ядерного PCA

Ядерный PCA

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.decomposition.KernelPCA.html

Spec-Zone.ru

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