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