SparseRandomProjection#

класс sklearn.random_projection.SparseRandomProjection(n_components='auto', *, плотность='auto', eps=0.1, dense_output=False, compute_inverse_components=False, random_state=None)[источник]#

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

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

Если мы отметим 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 параметр.

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

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

Если 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_число с плавающей точкой в диапазоне 0.0 - 1.0

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

n_features_in_int

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

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

feature_names_in_ndarray формы (n_features_in_,)

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

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

Смотрите также

GaussianRandomProjection

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

Ссылки

[1]

Ping Li, T. Hastie и K. W. Church, 2006, "Very Sparse Random Projections". https://web.stanford.edu/~hastie/Papers/Ping/KDD06_rp.pdf

[2]

D. Achlioptas, 2001, “Database-friendly random projections”, 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)[источник]#

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

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

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

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

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

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

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

fit_transform(X, y=None, **fit_params)[источник]#

Обучение на данных с последующим преобразованием.

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

Параметры:
Xarray-like формы (n_samples, n_features)

Входные выборки.

yarray-like формы (n_samples,) или (n_samples, n_outputs), default=None

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

**fit_paramsdict

Дополнительные параметры обучения. Передавайте только если оценщик принимает дополнительные параметры в своем fit метод.

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

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

get_feature_names_out(input_features=None)[источник]#

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

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

Параметры:
input_featuresarray-like из str или None, по умолчанию=None

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

Возвращает:
feature_names_outndarray из str объектов

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

6332()[источник]#

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

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

Возвращает:
маршрутизацияMetadataRequest

A MetadataRequest Инкапсуляция информации о маршрутизации.

get_params(глубокий=True)[источник]#

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

Параметры:
глубокийbool, по умолчанию=True

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

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

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

inverse_transform(X)[источник]#

Проецирование данных обратно в исходное пространство.

Возвращает массив 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(*, преобразовать=None)[источник]#

Установить контейнер вывода.

См. Введение API set_output для примера использования API.

Параметры:
преобразовать{“default”, “pandas”, “polars”}, по умолчанию=None

Настройка вывода transform и fit_transform.

  • "default": Формат вывода трансформера по умолчанию

  • "pandas": DataFrame вывод

  • "polars": Вывод Polars

  • None: Конфигурация преобразования не изменена

Добавлено в версии 1.4: "polars" опция была добавлена.

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

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

set_params(**params)[источник]#

Установить параметры этого оценщика.

Метод работает как на простых оценщиках, так и на вложенных объектах (таких как Pipeline). Последние имеют параметры вида __ чтобы можно было обновить каждый компонент вложенного объекта.

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

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

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

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

преобразовать(X)[источник]#

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

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

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

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

Спроецированный массив. Это разреженная матрица только тогда, когда входные данные разрежены и dense_output = False.