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

Ссылки

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

Примеры

>>> 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. Это всегда будет плотный массив.

END_OF_DOCUMENT_MARKER
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. Это всегда будет плотный массив.

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

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

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

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

© 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

Spec-Zone.ru

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