Spec-Zone.ru › scikit-learn

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 зависят от алгоритма и состояния генератора случайных чисел. Чтобы избежать этой проблемы, один раз обучите экземпляр этого класса на данных, а затем сохраните его для выполнения преобразований.

Ссылки

Halko и др. (2009). «Поиск структуры с помощью случайности: стохастические алгоритмы для построения приближённых матричных разложений»

Примеры

>>> 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. Всегда возвращается плотный массив.

Примеры из галереи

Хеширующее преобразование признаков с использованием полностью случайных деревьев

Обучение на многообразиях для рукописных цифр: локальное линейное встраивание, Isomap…

Кластеризация текстовых документов с помощью k-средних

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API