SparsePCA
- classsklearn.decomposition.SparsePCA(n_components=None, *, alpha=1, ridge_alpha=0.01, max_iter=1000, tol=1e-08, method='lars', n_jobs=None, U_init=None, V_init=None, verbose=False, random_state=None)[исходный код]
-
Анализ главных компонент с разреженностью (SparsePCA).
Находит набор разреженных компонент, оптимально восстанавливающих данные. Степень разреженности регулируется коэффициентом L1-штрафа, задаваемым параметром alpha.
Подробнее см. в руководстве пользователя.
- Параметры:
-
- n_componentsint, по умолчанию=None
-
Количество извлекаемых разреженных атомов. Если None, то
n_componentsустанавливается вn_features. - alphafloat, по умолчанию=1
-
Параметр, управляющий разреженностью. Чем выше значение, тем более разреженными будут компоненты.
- ridge_alphafloat, по умолчанию=0.01
-
Степень регуляризации Риджа для улучшения обусловленности при вызове метода transform.
- max_iterint, по умолчанию=1000
-
Максимальное количество выполняемых итераций.
- tolfloat, по умолчанию=1e-8
-
Допуск для условия остановки.
- method{‘lars’, ‘cd’}, по умолчанию=’lars’
-
Метод оптимизации. lars: использует метод регрессии наименьшего угла для решения задачи lasso (linear_model.lars_path); cd: использует метод покоординатного спуска для вычисления решения Lasso (linear_model.Lasso). Lars будет работать быстрее, если оцененные компоненты разрежены.
- n_jobsint, по умолчанию=None
-
Количество параллельно выполняемых заданий.
Noneозначает 1, кроме случаев использования контекстаjoblib.parallel_backend.-1означает использование всех процессоров. Подробнее см. в глоссарии. - U_initndarray формы (n_samples, n_components), по умолчанию=None
-
Начальные значения нагрузок для сценариев повторного запуска с сохранением инициализации. Используется только если
U_initиV_initне равны None. - V_initndarray формы (n_components, n_features), по умолчанию=None
-
Начальные значения компонент для сценариев повторного запуска с сохранением инициализации. Используется только если
U_initиV_initне равны None. - verboseint или bool, по умолчанию=False
-
Управляет подробностью вывода: чем выше значение, тем больше сообщений. По умолчанию равно 0.
- random_stateint, экземпляр RandomState или None, по умолчанию=None
-
Используется при обучении словаря. Передайте целое число, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий.
- Атрибуты:
-
- components_ndarray формы (n_components, n_features)
-
Извлеченные из данных разреженные компоненты.
- error_ndarray
-
Вектор ошибок на каждой итерации.
- n_components_int
-
Оцененное количество компонент.
Добавлено в версии 0.23.
- n_iter_int
-
Количество выполненных итераций.
- mean_ndarray формы (n_features,)
-
Эмпирическое среднее по каждому признаку, оцененное по обучающей выборке. Равно
X.mean(axis=0). - n_features_in_int
-
Количество признаков, обнаруженных во время обучения.
Добавлено в версии 0.24.
-
feature_names_in_ndarray формы (
n_features_in_,) -
Названия признаков, обнаруженных во время обучения. Определяется только если
Xимеет названия признаков, представленные строками.Добавлено в версии 1.0.
См. также
PCA-
Реализация анализа главных компонент.
MiniBatchSparsePCA-
Вариант
SparsePCAс мини-пакетами: работает быстрее, но менее точен. DictionaryLearning-
Общая задача обучения словаря с использованием разреженного кода.
Примеры
>>> import numpy as np >>> from sklearn.datasets import make_friedman1 >>> from sklearn.decomposition import SparsePCA >>> X, _ = make_friedman1(n_samples=200, n_features=30, random_state=0) >>> transformer = SparsePCA(n_components=5, random_state=0) >>> transformer.fit(X) SparsePCA(...) >>> X_transformed = transformer.transform(X) >>> X_transformed.shape (200, 5) >>> # most values in the components_ are zero (sparsity) >>> np.mean(transformer.components_ == 0) np.float64(0.9666)
- fit(X, y=None)[исходный код]
-
Обучить модель на данных X.
- Параметры:
-
- Xarray-like формы (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), по умолчанию=None
-
Целевые значения (None для преобразований без учителя).
- **fit_paramsdict
-
Дополнительные параметры обучения. Передавайте их, только если оценщик принимает дополнительные параметры в методе
fit.
- Возвращает:
-
- X_newndarray формы (n_samples, n_features_new)
-
Преобразованный массив.
- 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
-
Названия преобразованных признаков.
- get_metadata_routing()[исходный код]
-
Получить маршрутизацию метаданных этого объекта.
О том, как работает механизм маршрутизации, см. в руководстве пользователя.
- Возвращает:
-
- routingMetadataRequest
-
MetadataRequest, содержащий сведения о маршрутизации.
- get_params(deep=True)[исходный код]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, будут возвращены параметры этого оценщика и содержащихся в нем подобъектов, которые являются оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные с их значениями.
- inverse_transform(X)[исходный код]
-
Преобразовать данные из латентного пространства в исходное.
Это обратное преобразование является приближенным из-за потери информации, вызванной прямым разложением.
Добавлено в версии 1.2.
- Параметры:
-
- Xndarray формы (n_samples, n_components)
-
Данные в латентном пространстве.
- Возвращает:
-
- X_originalndarray формы (n_samples, n_features)
-
Восстановленные данные в исходном пространстве.
- set_output(*, transform=None)[исходный код]
-
Задать контейнер вывода.
Подробнее см. в руководстве пользователя, а пример использования API приведен в разделе Знакомство с API set_output.
- Параметры:
-
- transform{“default”, “pandas”, “polars”}, по умолчанию=None
-
Настроить формат вывода для
transformиfit_transform.-
"default": формат вывода преобразователя по умолчанию -
"pandas": вывод в формате DataFrame -
"polars": вывод в формате Polars -
None: конфигурация преобразования не изменяется
Добавлено в версии 1.4: добавлен параметр
"polars". -
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_params(**params)[исходный код]
-
Задать параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (например,
Pipeline). У последних параметры имеют вид<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- transform(X)[исходный код]
-
Проекция данных на разреженные компоненты методом наименьших квадратов.
Чтобы избежать нестабильности в случае недоопределенной системы, можно применить регуляризацию (регрессию Риджа) с помощью параметра
ridge_alpha.Обратите внимание, что ортогональность компонент Sparse PCA не обеспечивается, в отличие от PCA, поэтому простую линейную проекцию использовать нельзя.
- Параметры:
-
- Xndarray формы (n_samples, n_features)
-
Тестовые данные для преобразования; число признаков должно совпадать с числом признаков данных, использованных для обучения модели.
- Возвращает:
-
- X_newndarray формы (n_samples, n_components)
-
Преобразованные данные.
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.decomposition.SparsePCA.html