SparseRandomProjection
- classsklearn.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
-
Управляет генератором псевдослучайных чисел, используемым для создания матрицы проекции во время обучения. Передайте int, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий.
- Атрибуты:
-
- 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, «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.
- Возвращает:
-
- selfобъект
-
Экземпляр класса BaseRandomProjection.
- fit_transform(X, y=None, **fit_params)[исходный код]
-
Обучение на данных с последующим их преобразованием.
Обучает преобразователь на
Xиyс дополнительными параметрамиfit_paramsи возвращает преобразованную версиюX.- Параметры:
-
- Xмассивоподобный объект формы (n_samples, n_features)
-
Входные выборки.
- yмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs), значение по умолчанию=None
-
Целевые значения (None для преобразований без учителя).
- **fit_paramsdict
-
Дополнительные параметры обучения. Передавайте их, только если оцениватель принимает дополнительные параметры в методе
fit.
- Возвращает:
-
- X_newмассив ndarray формы (n_samples, n_features_new)
-
Преобразованный массив.
- 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_original, преобразование которого даст X. Обратите внимание, что даже если X является разреженным, X_original будет плотным массивом, что может потребовать большого объёма оперативной памяти.
Если
compute_inverse_componentsравно False, обратная матрица компонент вычисляется при каждом вызовеinverse_transform, что может быть затратным.- Параметры:
-
- 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{ndarray, разреженная матрица} формы (n_samples, n_features)
-
Входные данные для проецирования в пространство меньшей размерности.
- Возвращает:
-
- X_new{ndarray, разреженная матрица} формы (n_samples, n_components)
-
Проецированный массив. Он является разреженной матрицей, только если входные данные разрежены и
dense_output = False.
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.random_projection.SparseRandomProjection.html