Spec-Zone.ru › scikit-learn

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

классsklearn.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)[source]

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

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

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

(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, default=None

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

alphafloat, default=1

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

max_iterint, default=1_000

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

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

fit_algorithm{‘lars’, ‘cd’}, default=’lars’

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

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

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

batch_sizeint, default=256

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

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

shufflebool, default=True

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

dict_initndarray of shape (n_components, n_features), default=None

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

transform_algorithm{‘lasso_lars’, ‘lasso_cd’, ‘lars’, ‘omp’, ‘threshold’}, default=’omp’

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

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

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

transform_alphafloat, default=None

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

Изменено в версии 1.2: Когда None, значение по умолчанию было изменено с 1.0 на alpha.

verbosebool or int, default=False

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

split_signbool, default=False

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

random_stateint, RandomState instance or None, default=None

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

positive_codebool, default=False

Требовать ли положительность при поиске кода.

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

positive_dictbool, default=False

Требовать ли положительность при поиске словаря.

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

transform_max_iterint, default=1000

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

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

callbackcallable, default=None

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

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

tolfloat, default=1e-3

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

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

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

max_no_improvementint, default=10

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

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

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

Атрибуты:
components_ndarray of shape (n_components, n_features)

Извлеченные компоненты из данных.

n_features_in_int

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

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

feature_names_in_ndarray of shape (n_features_in_,)

Имена признаков, увиденных во время fit. Определены только тогда, когда у 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)[source]

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

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

Вектор обучения, где n_samples — количество выборок, а n_features — количество признаков.

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

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

Возвращаемое значение:
selfобъект

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

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_paramsdict

Дополнительные параметры обучения.

Возвращаемое значение:
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

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

partial_fit(X, y=None)[source]

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

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

Вектор обучения, где n_samples — количество выборок, а n_features — количество признаков.

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

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

Возвращаемое значение:
selfобъект

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

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]

Кодирует данные как линейную комбинацию атомов словаря.

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

Параметры:
Xмассив NumPy формы (n_samples, n_features)

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

Возвращает:
X_newмассив NumPy формы (n_samples, n_components)

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

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

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

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

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

Spec-Zone.ru

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