Spec-Zone.ru › scikit-learn

Разреженный случайный проектор

классsklearn.random_projection.SparseRandomProjection(n_components='auto', *, density='auto', eps=0.1, dense_output=False, compute_inverse_components=False, random_state=None)[source]

Снижение размерности с помощью разреженной случайной проекции.

Разреженная случайная матрица — альтернатива плотной случайной проекционной матрице, гарантирующая сходную качество встраивания, но при этом значительно более эффективная с точки зрения памяти и позволяющая быстрее вычислять проецированные данные.

Если мы отметим s = 1 / density компоненты случайной матрицы выбираются из:

-sqrt(s) / sqrt(n_components)   with probability 1 / 2s
 0                              with probability 1 - 1 / s
+sqrt(s) / sqrt(n_components)   with probability 1 / 2s

Подробнее см. в Руководстве пользователя.

Добавлена в версии 0.13.

Параметры:
n_componentsint или ‘auto’, по умолчанию=’auto’

Размерность целевого пространства проекции.

n_components может быть автоматически скорректирован в соответствии с количеством образцов в наборе данных и границей, заданной леммой Джонсона—Линденстраусса. В этом случае качество встраивания контролируется параметром eps.

Следует отметить, что лемма Джонсона—Линденстраусса может давать очень консервативную оценку требуемого числа компонентов, так как она не делает предположений о структуре набора данных.

densityfloat или ‘auto’, по умолчанию=’auto’

Отношение в диапазоне (0, 1] ненулевых компонент в матрице случайной проекции.

Если density = ‘auto’, значение устанавливается в минимальную плотность, как рекомендуется Ping Li и др.: 1 / sqrt(n_features).

Используйте density = 1 / 3.0, если вы хотите воспроизвести результаты Achlioptas, 2001.

epsfloat, по умолчанию=0.1

Параметр для управления качеством встраивания в соответствии с леммой Джонсона—Линденстраусса, когда n_components установлено в ‘auto’. Это значение должно быть строго положительным.

Меньшие значения приводят к лучшему встраиванию и большему числу измерений (n_components) в целевом пространстве проекции.

dense_outputbool, по умолчанию=False

Если True, гарантируется, что выход случайной проекции — плотная numpy-матрица, даже если вход и матрица случайной проекции оба разреженные. На практике, если количество компонентов мало, количество нулевых компонент в проецированных данных будет очень малым, и использование плотной представления будет более эффективным с точки зрения ЦП и памяти.

Если False, проецированные данные используют разреженное представление, если входной данные разреженные.

compute_inverse_componentsbool, по умолчанию=False

Научиться обратной трансформации, вычислив псевдообратное значение компонентов во время подгонки. Обратите внимание, что псевдообратное значение всегда является плотной матрицей, даже если обучающие данные были разреженными. Это означает, что может потребоваться вызывать inverse_transform на небольших партиях образцов за раз, чтобы избежать исчерпания доступной памяти в хосте. Кроме того, вычисление псевдообратного значения не масштабируется на большие матрицы.

random_stateint, экземпляр RandomState или None, по умолчанию=None

Управляет генератором псевдослучайных чисел, используемым для генерации проекционной матрицы во время подгонки. Передайте целое число для воспроизводимого результата при нескольких вызовах функций. См. Словарь.

Атрибуты:
n_components_int

Конкретное количество компонентов, вычисленных при n_components=”auto”.

components_разреженная матрица размера (n_components, n_features)

Случайная матрица, используемая для проекции. Разреженная матрица будет в формате CSR.

inverse_components_массив ndarray размера (n_features, n_components)

Псевдообратное значение компонентов, вычисляется только если compute_inverse_components равно True.

Добавлена в версии 1.1.

density_float в диапазоне 0.0 - 1.0

Конкретная плотность, вычисленная, когда density = “auto”.

n_features_in_int

Количество признаков, увиденных во время подгонки.

Добавлена в версии 0.24.

feature_names_in_массив ndarray размера (n_features_in_,)

Имена признаков, увиденные во время подгонки. Определяются только тогда, когда X содержит имена признаков, которые все являются строками.

Добавлена в версии 1.0.

См. также

GaussianRandomProjection

Снижение размерности с помощью гауссовской случайной проекции.

Ссылки

[1]

Ping Li, T. Hastie и K. W. Church, 2006, “Очень разреженные случайные проекции”. https://web.stanford.edu/~hastie/Papers/Ping/KDD06_rp.pdf

[2]

D. Achlioptas, 2001, “Подходящие для баз данных случайные проекции”, https://cgi.di.uoa.gr/~optas/papers/jl.pdf

Примеры

>>> import numpy as np
>>> from sklearn.random_projection import SparseRandomProjection
>>> rng = np.random.RandomState(42)
>>> X = rng.rand(25, 3000)
>>> transformer = SparseRandomProjection(random_state=rng)
>>> X_new = transformer.fit_transform(X)
>>> X_new.shape
(25, 2759)
>>> # very few components are non-zero
>>> np.mean(transformer.components_ != 0)
np.float64(0.0182...)
fit(X, y=None)[source]

Генерация разреженной случайной проекционной матрицы.

Параметры:
X{ndarray, разреженная матрица} размера (n_samples, n_features)

Обучающий набор: используется только форма для нахождения оптимальных размеров случайной матрицы на основе теории, упомянутой в вышеупомянутых статьях.

yИгнорируется

Не используется, присутствует здесь для соответствия API по соглашению.

Возвращает:
selfобъект

экземпляр класса BaseRandomProjection.

fit_transform(X, y=None, **fit_params)[source]

Подгонка к данным, а затем преобразование.

Подгоняет преобразователь к X и y с необязательными параметрами fit_params и возвращает преобразованную версию X.

Параметры:
Xмассив-подобный формы (n_samples, n_features)

Входные образцы.

yмассив-подобный формы (n_samples,) или (n_samples, n_outputs), по умолчанию=None

Целевые значения (None для неконтролируемых преобразований).

**fit_paramsсловарь

Дополнительные параметры подгонки.

Возвращает:
X_newмассив ndarray формы (n_samples, n_features_new)

Преобразованный массив.

get_feature_names_out(input_features=None)[source]

Получение имен выходных признаков для преобразования.

Имена выходных признаков будут иметь префикс, состоящий из имени класса в нижнем регистре. Например, если преобразователь выдает 3 признака, то имена выходных признаков будут: ["class_name0", "class_name1", "class_name2"].

Параметры:
input_featuresмассив-подобный из str или None, по умолчанию=None

Используется только для проверки имен признаков с именами, увиденными в fit.

Возвращает:
feature_names_outмассив ndarray из str объектов

Преобразованные имена признаков.

get_metadata_routing()[source]

Получить маршрутизацию метаданных этого объекта.

Пожалуйста, ознакомьтесь с Руководством пользователя для получения информации о том, как работает механизм маршрутизации.

Возвращает:
routingMetadataRequest

А MetadataRequest объект, содержащий информацию о маршрутизации.

get_params(deep=True)[source]

Получить параметры этого оценщика.

Параметры:
deepbool, по умолчанию=True

Если True, вернёт параметры этого оценщика и вложенных под-объектов, являющихся оценщиками.

Возвращает:
paramsdict

Имена параметров, сопоставленные со значениями.

inverse_transform(X)[source]

Возвращает данные в исходное пространство.

Возвращает массив X_original, преобразование которого будет X. Обратите внимание, что даже если X разрежен, X_original плотный: это может потребовать много оперативной памяти.

Если compute_inverse_components равно False, обратный вид компонентов вычисляется при каждом вызове inverse_transform, что может быть дорогостоящим.

Параметры:
X{array-like, sparse matrix} формы (n_samples, n_components)

Данные для обратного преобразования.

Возвращает:
X_originalndarray формы (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>, что позволяет обновлять каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценщика.

Возвращает:
selfэкземпляр оценщика

Экземпляр оценщика.

transform(X)[source]

Проектирует данные с использованием матричного умножения на случайную матрицу.

Параметры:
X{ndarray, sparse matrix} формы (n_samples, n_features)

Входные данные для проекции в пространство меньшей размерности.

Возвращает:
X_new{ndarray, sparse matrix} формы (n_samples, n_components)

Проектированный массив. Он является разреженной матрицей только в том случае, если входные данные являются разреженными и dense_output = False.

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

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

Граница Джонсона-Линденстрауса для встраивания с помощью случайных проекций

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.random_projection.SparseRandomProjection.html

Spec-Zone.ru

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