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 для усеченного SVDscipy.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_transformTrue. - X_transformed_fit_массив формы (n_samples, n_components)
-
Проекция входных данных на ядерные главные компоненты. Доступна только при
fit_inverse_transformTrue. - 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.
См. также
FastICA-
Быстрый алгоритм для анализа независимых компонент.
IncrementalPCA-
Инкрементный анализ главных компонент.
NMF-
Неотрицательная матричная факторизация.
PCA-
Анализ главных компонент.
SparsePCA-
Разложение главных компонент с разреженностью.
TruncatedSVD-
Снижение размерности с помощью усечённого SVD.
Список литературы
Примеры
>>> 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’sinverse_transformне восстанавливает среднее значение данных при использовании ядра «линейное» из-за использования центрированного ядра.- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_components)
-
Вектор обучения, где
n_samples— число выборок, аn_features— число признаков.
- Возвращает:
-
- X_newndarray of shape (n_samples, n_features)
-
Возвращает экземпляр.
Ссылки
- 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)
-
Возвращает экземпляр.
Примеры галереи
© 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