sparse_encode#

sklearn.decomposition.sparse_encode(X, словарь, *, грамм=None, cov=None, алгоритм='lasso_lars', n_nonzero_coefs=None, alpha=None, copy_cov=True, init=None, max_iter=1000, n_jobs=None, check_input=True, verbose=0, положительный=False)[источник]#

Разреженное кодирование.

Каждая строка результата является решением задачи разреженного кодирования. Цель — найти разреженный массив code такой, что:

X ~= code * dictionary

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

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

Матрица данных.

словарьarray-like формы (n_components, n_features)

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

граммarray-like формы (n_components, n_components), по умолчанию=None

Предвычисленная матрица Грама, dictionary * dictionary'.

covarray-like формы (n_components, n_samples), по умолчанию=None

Предвычисленная ковариация, dictionary' * X.

алгоритм{‘lasso_lars’, ‘lasso_cd’, ‘lars’, ‘omp’, ‘threshold’}, по умолчанию=’lasso_lars’

Используемый алгоритм:

  • 'lars': использует метод наименьшего угла регрессии (linear_model.lars_path);

  • 'lasso_lars': использует Lars для вычисления решения Lasso;

  • 'lasso_cd': использует метод координатного спуска для вычисления решения Lasso (linear_model.Lasso). lasso_lars будет быстрее, если оцениваемые компоненты разрежены;

  • 'omp': использует ортогональное согласованное преследование для оценки разреженного решения;

  • 'threshold': обнуляет все коэффициенты меньше регуляризации из проекции dictionary * data'.

n_nonzero_coefsint, default=None

Количество ненулевых коэффициентов для целевого значения в каждом столбце решения. Используется только algorithm='lars' и algorithm='omp' и переопределяется alpha в omp случай. Если None, затем n_nonzero_coefs=int(n_features / 10).

alphafloat, по умолчанию=None

Если algorithm='lasso_lars' или algorithm='lasso_cd', alpha является штрафом, применяемым к норме L1. Если algorithm='threshold', alpha является абсолютным значением порога, ниже которого коэффициенты будут сжаты до нуля. Если algorithm='omp', alpha это параметр допуска: значение целевой ошибки реконструкции. В этом случае он переопределяет n_nonzero_coefs. Если None, по умолчанию 1.

copy_covbool, по умолчанию=True

Копировать ли предварительно вычисленную ковариационную матрицу; если False, он может быть перезаписан.

initndarray формы (n_samples, n_components), по умолчанию=None

Начальное значение разреженных кодов. Используется только если algorithm='lasso_cd'.

max_iterint, по умолчанию=1000

Максимальное количество итераций для выполнения, если algorithm='lasso_cd' или 'lasso_lars'.

n_jobsint, default=None

Количество параллельных задач для выполнения. None означает 1, если только не в joblib.parallel_backend контекст. -1 означает использование всех процессоров. См. Глоссарий для получения дополнительной информации.

check_inputbool, по умолчанию=True

Если False, входные массивы X и словарь не будут проверяться.

verboseint, по умолчанию=0

Управляет подробностью вывода; чем выше, тем больше сообщений.

положительныйbool, по умолчанию=False

Следует ли обеспечивать положительность при поиске кодирования.

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

Возвращает:
кодndarray формы (n_samples, n_components)

Разреженные коды.

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

sklearn.linear_model.lars_path

Вычислить путь регрессии наименьших углов или Lasso с использованием алгоритма LARS.

sklearn.linear_model.orthogonal_mp

Решает задачи ортогонального согласованного преследования.

sklearn.linear_model.Lasso

Обучает линейную модель с L1-априорным распределением в качестве регуляризатора.

SparseCoder

Найти разреженное представление данных из фиксированного предварительно вычисленного словаря.

Примеры

>>> import numpy as np
>>> from sklearn.decomposition import sparse_encode
>>> X = np.array([[-1, -1, -1], [0, 0, 3]])
>>> dictionary = np.array(
...     [[0, 1, 0],
...      [-1, -1, 2],
...      [1, 1, 1],
...      [0, 1, 1],
...      [0, 2, 1]],
...    dtype=np.float64
... )
>>> sparse_encode(X, dictionary, alpha=1e-10)
array([[ 0.,  0., -1.,  0.,  0.],
       [ 0.,  1.,  1.,  0.,  0.]])