Spec-Zone.ru › scikit-learn

MiniBatchDictionaryLearning

classsklearn.decomposition.MiniBatchDictionaryLearning(n_components=None, *, alpha=1, max_iter=1000, fit_algorithm='lars', n_jobs=None, batch_size=256, shuffle=True, dict_init=None, transform_algorithm='omp', transform_n_nonzero_coefs=None, transform_alpha=None, verbose=False, split_sign=False, random_state=None, positive_code=False, positive_dict=False, transform_max_iter=1000, callback=None, tol=0.001, max_no_improvement=10)[исходный код]

Обучение словаря мини-пакетами.

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

Решает задачу оптимизации:

(U^*,V^*) = argmin 0.5 || X - U V ||_Fro^2 + alpha * || U ||_1,1
             (U,V)
             with || V_k ||_2 <= 1 for all  0 <= k < n_components

||.||_Fro обозначает норму Фробениуса, а ||.||_1,1 — поэлементную матричную норму, равную сумме абсолютных значений всех элементов матрицы.

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

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

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

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

Параметр, управляющий разреженностью.

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

Максимальное количество итераций по всему набору данных до остановки независимо от эвристик критериев досрочной остановки.

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

fit_algorithm{‘lars’, ‘cd’}, по умолчанию=’lars’

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

  • 'lars': использует метод регрессии наименьшего угла для решения задачи лассо (linear_model.lars_path)
  • 'cd': использует метод покоординатного спуска для вычисления решения Lasso (linear_model.Lasso). Lars будет работать быстрее, если оценённые компоненты разрежены.
n_jobsint, по умолчанию=None

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

batch_sizeint, по умолчанию=256

Количество образцов в каждом мини-пакете.

Изменено в версии 1.3: Значение по умолчанию для batch_size изменено с 3 на 256 в версии 1.3.

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

Следует ли перемешивать образцы перед формированием пакетов.

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

Начальное значение словаря для сценариев с тёплым перезапуском.

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

Алгоритм преобразования данных:

  • 'lars': использует метод регрессии наименьшего угла (linear_model.lars_path);
  • 'lasso_lars': использует Lars для вычисления решения Lasso.
  • 'lasso_cd': использует метод покоординатного спуска для вычисления решения Lasso (linear_model.Lasso). 'lasso_lars' будет работать быстрее, если оценённые компоненты разрежены.
  • 'omp': использует ортогональный жадный поиск для оценки разреженного решения.
  • 'threshold': заменяет на ноль все коэффициенты проекции dictionary * X', меньшие alpha.
transform_n_nonzero_coefsint, по умолчанию=None

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

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

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

Изменено в версии 1.2: При значении None значение по умолчанию изменено с 1.0 на alpha.

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

Управляет подробностью вывода процедуры.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вызываемый объект, который вызывается в конце каждой итерации.

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

tolfloat, по умолчанию=1e-3

Управляет досрочной остановкой на основе нормы разностей словаря между двумя шагами.

Чтобы отключить досрочную остановку на основе изменений словаря, установите tol в 0.0.

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

max_no_improvementint, по умолчанию=10

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

Чтобы отключить обнаружение сходимости на основе функции стоимости, установите max_no_improvement в None.

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

Атрибуты:
components_ndarray формы (n_components, n_features)

Компоненты, извлечённые из данных.

n_features_in_int

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

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

feature_names_in_ndarray формы (n_features_in_,)

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

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

n_iter_int

Количество итераций по всему набору данных.

n_steps_int

Количество обработанных мини-пакетов.

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

См. также

DictionaryLearning

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

MiniBatchSparsePCA

Анализ разреженных главных компонент мини-пакетами.

SparseCoder

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

SparsePCA

Анализ разреженных главных компонент.

Ссылки

J. Mairal, F. Bach, J. Ponce, G. Sapiro, 2009: Онлайн-обучение словаря для разреженного кодирования (https://www.di.ens.fr/~fbach/mairal_icml09.pdf)

Примеры

>>> import numpy as np
>>> from sklearn.datasets import make_sparse_coded_signal
>>> from sklearn.decomposition import MiniBatchDictionaryLearning
>>> X, dictionary, code = make_sparse_coded_signal(
...     n_samples=30, n_components=15, n_features=20, n_nonzero_coefs=10,
...     random_state=42)
>>> dict_learner = MiniBatchDictionaryLearning(
...     n_components=15, batch_size=3, transform_algorithm='lasso_lars',
...     transform_alpha=0.1, max_iter=20, random_state=42)
>>> X_transformed = dict_learner.fit_transform(X)

Можно проверить степень разреженности X_transformed:

>>> np.mean(X_transformed == 0) > 0.5
np.True_

Можно сравнить среднюю квадратичную евклидову норму ошибки реконструкции разреженно закодированного сигнала с квадратом евклидовой нормы исходного сигнала:

>>> X_hat = X_transformed @ dict_learner.components_
>>> np.mean(np.sum((X_hat - X) ** 2, axis=1) / np.sum(X ** 2, axis=1))
np.float64(0.052)

Более подробный пример см. в разделе Удаление шума с изображений с помощью обучения словаря

fit(X, y=None)[исходный код]

Обучить модель на данных X.

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

Обучающий вектор, где n_samples — количество образцов, а n_features — количество признаков.

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

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

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

Возвращает сам экземпляр.

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массивоподобная структура формы (n_samples, n_components)

Данные для обратного преобразования. Число компонентов должно совпадать с числом компонентов данных, использованных для обучения модели.

Возвращает:
X_originalndarray формы (n_samples, n_features)

Преобразованные данные.

partial_fit(X, y=None)[исходный код]

Обновить модель, используя данные X в качестве мини-пакета.

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

Обучающий вектор, где n_samples — количество образцов, а n_features — количество признаков.

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

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

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

Возвращает сам экземпляр.

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)[исходный код]

Закодировать данные в виде разреженной комбинации атомов словаря.

Метод кодирования определяется параметром объекта transform_algorithm.

Параметры:
Xndarray формы (n_samples, n_features)

Тестовые данные для преобразования; число признаков должно совпадать с числом признаков данных, использованных для обучения модели.

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

Преобразованные данные.

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

Разложения для набора данных с изображениями лиц

Удаление шума с изображений с помощью обучения словаря

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.decomposition.MiniBatchDictionaryLearning.html

Spec-Zone.ru

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