KernelPCA#
- класс sklearn.decomposition.KernelPCA(n_components=None, *, ядро='linear', gamma=None, степень=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)[источник]#
Анализ главных компонент с ядром (KPCA).
Нелинейное снижение размерности с использованием ядер [1], см. также Парные метрики, сходства и ядра.
Он использует
scipy.linalg.eighреализация LAPACK полного SVD илиscipy.sparse.linalg.eigshреализация ARPACK усеченного SVD, в зависимости от формы входных данных и количества извлекаемых компонентов. Также может использоваться рандомизированный усеченный SVD методом, предложенным в [3], см.eigen_solver.Для примера использования и сравнения между Анализом главных компонент (PCA) и его ядерной версией (KPCA), см. Ядерный PCA.
Пример использования для удаления шума изображений с помощью KPCA см. в Удаление шума с изображения с использованием ядерного PCA.
Подробнее в Руководство пользователя.
- Параметры:
- n_componentsint, default=None
Количество компонент. Если None, сохраняются все ненулевые компоненты.
- ядро{‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘cosine’, ‘precomputed’} или вызываемый объект, по умолчанию=’linear’
Ядро, используемое для PCA.
- gammafloat, по умолчанию=None
Коэффициент ядра для ядер rbf, poly и sigmoid. Игнорируется другими ядрами. Если
gammaявляетсяNone, тогда он устанавливается в1/n_features.- степеньfloat, по умолчанию=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, усечённый до n_components, вызывая решатель ARPACK с использованием
scipy.sparse.linalg.eigsh. Требуется строгое условие 0 < n_components < n_samples- рандомизированный :
запустить рандомизированное SVD методом Halko et al. [3]. Текущая реализация выбирает собственные значения на основе их модуля; поэтому использование этого метода может привести к неожиданным результатам, если ядро не является положительно полуопределенным. См. также [4].
Изменено в версии 1.0:
'randomized'был добавлен.- tolfloat, по умолчанию=0
Допуск сходимости для arpack. Если 0, оптимальное значение будет выбрано arpack.
- max_iterint, default=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’. Передайте int для воспроизводимых результатов при множественных вызовах функции. См. Глоссарий.Добавлено в версии 0.18.
- copy_Xbool, по умолчанию=True
Если True, входные данные X копируются и сохраняются моделью в
X_fit_атрибут. Если дальнейшие изменения в X не планируются, установкаcopy_X=Falseэкономит память, сохраняя ссылку.Добавлено в версии 0.18.
- n_jobsint, default=None
Количество параллельных задач для выполнения.
Noneозначает 1, если только не вjoblib.parallel_backendконтекст.-1означает использование всех процессоров. См. Глоссарий для получения дополнительной информации.Добавлено в версии 0.18.
- Атрибуты:
- eigenvalues_ndarray формы (n_components,)
Собственные значения центрированной матрицы ядра в порядке убывания. Если
n_componentsиremove_zero_eigне установлены, то все значения сохраняются.- eigenvectors_ndarray формы (n_samples, n_components)
Собственные векторы центрированной матрицы ядра. Если
n_componentsиremove_zero_eigне установлены, то сохраняются все компоненты.- dual_coef_ndarray формы (n_samples, n_features)
Обратная матрица преобразования. Доступна только когда
fit_inverse_transformравно True.- X_transformed_fit_ndarray формы (n_samples, n_components)
Проекция подогнанных данных на главные компоненты ядра. Доступно только когда
fit_inverse_transformравно True.- X_fit_ndarray формы (n_samples, n_features)
Данные, используемые для обучения модели. Если
copy_X=False, затемX_fit_является ссылкой. Этот атрибут используется для вызовов transform.- n_features_in_int
Количество признаков, замеченных во время fit.
Добавлено в версии 0.24.
- feature_names_in_ndarray формы (
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)[источник]#
Обучить модель на данных из X.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Вектор обучения, где
n_samplesэто количество образцов иn_featuresэто количество признаков.- yИгнорируется
Не используется, присутствует для согласованности API по соглашению.
- Возвращает:
- selfobject
Возвращает сам экземпляр.
- fit_transform(X, y=None, **params)[источник]#
Обучить модель на данных X и преобразовать X.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Вектор обучения, где
n_samplesэто количество образцов иn_featuresэто количество признаков.- yИгнорируется
Не используется, присутствует для согласованности API по соглашению.
- **paramskwargs
Параметры (именованные аргументы) и значения, передаваемые экземпляру fit_transform.
- Возвращает:
- X_newndarray формы (n_samples, n_components)
Преобразованные значения.
- 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
Имена параметров, сопоставленные с их значениями.
- inverse_transform(X)[источник]#
Преобразовать X обратно в исходное пространство.
inverse_transformаппроксимирует обратное преобразование, используя обученный прообраз. Прообраз обучается с помощью ядерной гребневой регрессии исходных данных на их низкоразмерных векторах представления.Примечание
Когда пользователи хотят вычислить обратное преобразование для ядра 'linear', рекомендуется использовать
PCAвместо. В отличие отPCA,KernelPCA’sinverse_transformне восстанавливает среднее значение данных при использовании ядра 'linear' из-за использования центрированного ядра.- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_components)
Вектор обучения, где
n_samplesэто количество образцов иn_featuresэто количество признаков.
- Возвращает:
- X_originalndarray формы (n_samples, n_features)
Исходные данные, где
n_samplesэто количество образцов иn_featuresэто количество признаков.
Ссылки
- set_output(*, преобразовать=None)[источник]#
Установить контейнер вывода.
См. Введение API set_output для примера использования API.
- Параметры:
- преобразовать{“default”, “pandas”, “polars”}, по умолчанию=None
Настройка вывода
transformиfit_transform."default": Формат вывода трансформера по умолчанию"pandas": DataFrame вывод"polars": Вывод PolarsNone: Конфигурация преобразования не изменена
Добавлено в версии 1.4:
"polars"опция была добавлена.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- set_params(**params)[источник]#
Установить параметры этого оценщика.
Метод работает как на простых оценщиках, так и на вложенных объектах (таких как
Pipeline). Последние имеют параметры видачтобы можно было обновить каждый компонент вложенного объекта.__ - Параметры:
- **paramsdict
Параметры оценщика.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- преобразовать(X)[источник]#
Преобразовать X.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Вектор обучения, где
n_samplesэто количество образцов иn_featuresэто количество признаков.
- Возвращает:
- X_newndarray формы (n_samples, n_components)
Проекция X на первые главные компоненты, где
n_samples— это количество образцов иn_componentsявляется количеством компонентов.
Примеры галереи#
Удаление шума с изображения с использованием ядерного PCA