TruncatedSVD
- classsklearn.decomposition.TruncatedSVD(n_components=2, *, algorithm='randomized', n_iter=5, n_oversamples=10, power_iteration_normalizer='auto', random_state=None, tol=0.0)[исходный код]
-
Снижение размерности с помощью усечённого SVD (также известного как LSA).
Этот преобразователь выполняет линейное снижение размерности с помощью усечённого сингулярного разложения (SVD). В отличие от PCA, эта модель не центрирует данные перед вычислением сингулярного разложения. Благодаря этому она может эффективно работать с разреженными матрицами.
В частности, усечённый SVD работает с матрицами количества терминов/tf-idf, возвращаемыми векторизаторами из
sklearn.feature_extraction.text. В этом контексте он известен как латентно-семантический анализ (LSA).Эта модель поддерживает два алгоритма: быстрый решатель рандомизированного SVD и «наивный» алгоритм, использующий ARPACK в качестве решателя собственной задачи для
X * X.TилиX.T * X— в зависимости от того, какой вариант эффективнее.Подробнее см. в руководстве пользователя.
- Параметры:
-
- n_componentsint, по умолчанию=2
-
Требуемая размерность выходных данных. Если algorithm=’arpack’, значение должно быть строго меньше количества признаков. Если algorithm=’randomized’, значение должно быть меньше или равно количеству признаков. Значение по умолчанию подходит для визуализации. Для LSA рекомендуется значение 100.
- algorithm{‘arpack’, ‘randomized’}, по умолчанию=’randomized’
-
Используемый решатель SVD. «arpack» — оболочка ARPACK в SciPy (scipy.sparse.linalg.svds), а «randomized» — рандомизированный алгоритм Halko (2009).
- n_iterint, по умолчанию=5
-
Количество итераций для решателя рандомизированного SVD. Не используется ARPACK. Значение по умолчанию больше, чем в
randomized_svd, чтобы обрабатывать разреженные матрицы, спектр которых может медленно убывать. - n_oversamplesint, по умолчанию=10
-
Количество дополнительных выборок для решателя рандомизированного SVD. Не используется ARPACK. Полное описание см. в
randomized_svd.Добавлено в версии 1.1.
- power_iteration_normalizer{‘auto’, ‘QR’, ‘LU’, ‘none’}, по умолчанию=’auto’
-
Нормализатор степенной итерации для решателя рандомизированного SVD. Не используется ARPACK. Подробнее см. в
randomized_svd.Добавлено в версии 1.1.
- random_stateint, экземпляр RandomState или None, по умолчанию=None
-
Используется при рандомизированном SVD. Передайте целое число, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий.
- tolfloat, по умолчанию=0.0
-
Допуск для ARPACK. Значение 0 соответствует точности машины. Игнорируется решателем рандомизированного SVD.
- Атрибуты:
-
- components_ndarray формы (n_components, n_features)
-
Правые сингулярные векторы входных данных.
- explained_variance_ndarray формы (n_components,)
-
Дисперсия обучающих выборок после проекции на каждую компоненту.
- explained_variance_ratio_ndarray формы (n_components,)
-
Доля дисперсии, объясняемая каждой из выбранных компонент.
- singular_values_ndarray формы (n_components,)
-
Сингулярные значения, соответствующие каждой из выбранных компонент. Сингулярные значения равны нормам 2 переменных
n_componentsв пространстве меньшей размерности. - n_features_in_int
-
Количество признаков, обнаруженных при вызове fit.
Добавлено в версии 0.24.
-
feature_names_in_ndarray формы (
n_features_in_,) -
Названия признаков, обнаруженных при вызове fit. Определяется только в том случае, если
Xсодержит названия признаков, представленные строками.Добавлено в версии 1.0.
См. также
DictionaryLearning-
Находит словарь, который разреженно кодирует данные.
FactorAnalysis-
Простая линейная генеративная модель с гауссовыми латентными переменными.
IncrementalPCA-
Инкрементальный анализ главных компонент.
KernelPCA-
Анализ главных компонент с использованием ядер.
NMF-
Неотрицательная матричная факторизация.
PCA-
Анализ главных компонент.
Примечания
Для SVD характерна проблема, называемая «неопределённостью знака»: знак
components_и результат transform зависят от алгоритма и состояния генератора случайных чисел. Чтобы избежать этой проблемы, один раз обучите экземпляр этого класса на данных, а затем сохраните его для выполнения преобразований.Ссылки
Примеры
>>> from sklearn.decomposition import TruncatedSVD >>> from scipy.sparse import csr_array >>> import numpy as np >>> np.random.seed(0) >>> X_dense = np.random.rand(100, 100) >>> X_dense[:, 2 * np.arange(50)] = 0 >>> X = csr_array(X_dense) >>> svd = TruncatedSVD(n_components=5, n_iter=7, random_state=42) >>> svd.fit(X) TruncatedSVD(n_components=5, n_iter=7, random_state=42) >>> print(svd.explained_variance_ratio_) [0.0157 0.0512 0.0499 0.0479 0.0453] >>> print(svd.explained_variance_ratio_.sum()) 0.2102 >>> print(svd.singular_values_) [35.2410 4.5981 4.5420 4.4486 4.3288]
- fit(X, y=None)[исходный код]
-
Обучает модель на обучающих данных X.
- Параметры:
-
- X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)
-
Обучающие данные.
- yИгнорируется
-
Не используется; присутствует здесь для согласованности API согласно соглашению.
- Возвращает:
-
- selfобъект
-
Возвращает объект-преобразователь.
- fit_transform(X, y=None)[исходный код]
-
Обучает модель на X и выполняет снижение размерности X.
- Параметры:
-
- X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)
-
Обучающие данные.
- yИгнорируется
-
Не используется; присутствует здесь для согласованности API согласно соглашению.
- Возвращает:
-
- X_newndarray формы (n_samples, n_components)
-
Уменьшенная версия X. Всегда возвращается плотный массив.
- get_feature_names_out(input_features=None)[исходный код]
-
Получает названия выходных признаков для преобразования.
К названиям выходных признаков добавляется имя класса в нижнем регистре. Например, если преобразователь возвращает 3 признака, названия выходных признаков будут такими:
["class_name0", "class_name1", "class_name2"].- Параметры:
-
- input_featuresмассивоподобный объект со строками или None, по умолчанию=None
-
Используется только для проверки названий признаков на соответствие названиям, обнаруженным в
fit.
- Возвращает:
-
- feature_names_outndarray со строковыми объектами
-
Названия преобразованных признаков.
- get_metadata_routing()[исходный код]
-
Получает сведения о маршрутизации метаданных этого объекта.
О том, как работает механизм маршрутизации, см. в руководстве пользователя.
- Возвращает:
-
- routingMetadataRequest
-
Объект
MetadataRequest, содержащий сведения о маршрутизации.
- get_params(deep=True)[исходный код]
-
Получает параметры этой модели.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если значение True, будут возвращены параметры этой модели и содержащихся в ней подобъектов, которые являются моделями.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные их значениям.
- inverse_transform(X)[исходный код]
-
Преобразует X обратно в исходное пространство.
Возвращает массив X_original, преобразование которого даст X.
- Параметры:
-
- Xмассивоподобный объект формы (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)[исходный код]
-
Выполняет снижение размерности X.
- Параметры:
-
- X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)
-
Новые данные.
- Возвращает:
-
- X_newndarray формы (n_samples, n_components)
-
Уменьшенная версия X. Всегда возвращается плотный массив.
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.decomposition.TruncatedSVD.html