Разреженный случайный проектор
- класс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