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)[source]
-
Снижение размерности с помощью усеченного 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» для случайного алгоритма Халко (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 instance или None, по умолчанию=None
-
Используется во время случайного SVD. Передайте целое число для воспроизводимых результатов при многократном вызове функции. См. Словарь.
- tolfloat, по умолчанию=0.0
-
Погрешность для ARPACK. 0 означает машиноточную точность. Игнорируется случайным решателем SVD.
- Атрибуты:
-
- components_массив формы (n_components, n_features)
-
Правые сингулярные векторы входных данных.
- explained_variance_массив формы (n_components,)
-
Дисперсия обучающих выборок, преобразованных с помощью проекции на каждый компонент.
- explained_variance_ratio_массив формы (n_components,)
-
Процент дисперсии, объясняемой каждым из выбранных компонентов.
- singular_values_массив формы (n_components,)
-
Сингулярные значения, соответствующие каждому из выбранных компонентов. Сингулярные значения равны 2-нормам
n_componentsпеременных в пространстве меньшей размерности. - n_features_in_int
-
Количество признаков, увиденных во время fit.
Добавлен в версии 0.24.
-
feature_names_in_массив формы (
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_matrix >>> import numpy as np >>> np.random.seed(0) >>> X_dense = np.random.rand(100, 100) >>> X_dense[:, 2 * np.arange(50)] = 0 >>> X = csr_matrix(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)[source]
-
Обучение модели на обучающих данных X.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие данные.
- yИгнорируется
-
Не используется, присутствует здесь для согласованности API по умолчанию.
- Возвращает:
-
- selfобъект
-
Возвращает объект трансформера.
- fit_transform(X, y=None)[source]
-
Обучение модели на X и выполнение снижения размерности на X.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие данные.
- yИгнорируется
-
Не используется, присутствует здесь для согласованности API по умолчанию.
- Возвращает:
-
- X_newмассив формы (n_samples, n_components)
-
Уменьшенная версия X. Это всегда будет плотный массив.
- get_feature_names_out(input_features=None)[source]
-
Получить имена выходных признаков для преобразования.
Имена выходных признаков будут начинаться с имени класса в нижнем регистре. Например, если преобразователь выводит 3 признака, то имена выходных признаков следующие:
["class_name0", "class_name1", "class_name2"].- Параметры:
-
- input_featuresмассив-подобный объект из str или None, по умолчанию=None
-
Используется только для проверки имен признаков с именами, встреченными в
fit.
- Возвращает:
-
- feature_names_outмассив из str объектов
-
Преобразованные имена признаков.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных для этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
Объект
MetadataRequest, содержащий информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получить параметры для данного оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, вернёт параметры для данного оценщика и вложенных подобъектов, которые являются оценщиками.
- Возвращает:
-
- paramsсловарь
-
Имена параметров, сопоставленные с их значениями.
- inverse_transform(X)[source]
-
Преобразовать X обратно в исходное пространство.
Возвращает массив X_original, преобразование которого даст X.
- Параметры:
-
- Xмассив-подобный объект с формой (n_samples, n_components)
-
Новые данные.
- Возвращает:
-
- X_originalмассив с формой (n_samples, n_features)
-
Обратите внимание, что это всегда плотный массив.
- set_output(*, transform=None)[source]
-
Установить контейнер вывода.
См. Представление API set_output для примера использования API.
- Параметры:
-
- transform{“default”, “pandas”, “polars”}, по умолчанию=None
-
Настройка вывода
transformиfit_transform.-
"default": Формат вывода по умолчанию для преобразователя -
"pandas": Вывод в формате DataFrame -
"polars": Вывод в формате Polars -
None: Конфигурация преобразования не изменится
Добавлена в версии 1.4:
"polars"опция была добавлена. -
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_params(**params)[source]
-
Установить параметры данного оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как
Pipeline). У последних есть параметры вида<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsсловарь
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- transform(X)[source]
-
Выполнить снижение размерности на X.
- Параметры:
-
- X{массив-подобный объект, разреженная матрица} с формой (n_samples, n_features)
-
Новые данные.
- Возвращает:
-
- X_newмассив с формой (n_samples, n_components)
-
Уменьшенная версия X. Это всегда будет плотный массив.
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.decomposition.TruncatedSVD.html