MiniBatchNMF#
- класс sklearn.decomposition.MiniBatchNMF(n_components='auto', *, init=None, batch_size=1024, beta_loss='frobenius', tol=0.0001, max_no_improvement=10, max_iter=200, alpha_W=0.0, alpha_H='same', l1_ratio=0.0, forget_factor=0.7, fresh_restarts=False, fresh_restarts_max_iter=30, transform_max_iter=None, random_state=None, verbose=0)[источник]#
Мини-пакетное неотрицательное матричное разложение (NMF).
Добавлено в версии 1.1.
Найти две неотрицательные матрицы, т.е. матрицы со всеми неотрицательными элементами, (
W,H), произведение которых аппроксимирует неотрицательную матрицуX. Это разложение может использоваться, например, для уменьшения размерности, разделения источников или извлечения тем.Целевая функция:
\[ \begin{align}\begin{aligned}L(W, H) &= 0.5 * ||X - WH||_{loss}^2\\ &+ alpha\_W * l1\_ratio * n\_features * ||vec(W)||_1\\ &+ alpha\_H * l1\_ratio * n\_samples * ||vec(H)||_1\\ &+ 0.5 * alpha\_W * (1 - l1\_ratio) * n\_features * ||W||_{Fro}^2\\ &+ 0.5 * alpha\_H * (1 - l1\_ratio) * n\_samples * ||H||_{Fro}^2,\end{aligned}\end{align} \]где \(||A||_{Fro}^2 = \sum_{i,j} A_{ij}^2\) (норма Фробениуса) и \(||vec(A)||_1 = \sum_{i,j} abs(A_{ij})\) (Поэлементная L1 норма).
Общая норма \(||X - WH||_{loss}^2\) может представлять норму Фробениуса или другую поддерживаемую бета-дивергенцию. Выбор между вариантами контролируется параметром
beta_lossпараметр.Целевая функция минимизируется с помощью чередующейся минимизации
WиH.Обратите внимание, что преобразованные данные называются
Wи матрица компонентов называетсяH. В литературе по NMF соглашение об именовании обычно противоположно, поскольку матрица данныхXтранспонируется.Подробнее в Руководство пользователя.
- Параметры:
- n_componentsint или {‘auto’} или None, по умолчанию=’auto’
менее 30 или около того),
None, все признаки сохраняются. Еслиn_components='auto', количество компонентов автоматически выводится из форм W или H.Изменено в версии 1.4: Добавлен
'auto'значение.Изменено в версии 1.6: Значение по умолчанию изменено с
Noneto'auto'.- init{‘random’, ‘nndsvd’, ‘nndsvda’, ‘nndsvdar’, ‘custom’}, по умолчанию=None
Метод, используемый для инициализации процедуры. Допустимые варианты:
None: ‘nndsvda’ еслиn_components <= min(n_samples, n_features), в противном случае случайный.'random': неотрицательные случайные матрицы, масштабированные с:sqrt(X.mean() / n_components)'nndsvd': Инициализация Nonnegative Double Singular Value Decomposition (NNDSVD) (лучше для разреженности).'nndsvda': NNDSVD с нулями, заполненными средним значением X (лучше, когда разреженность нежелательна).'nndsvdar'NNDSVD с нулями, заполненными небольшими случайными значениями (обычно более быстрая, но менее точная альтернатива NNDSVDa для случаев, когда разреженность нежелательна).'custom': Использовать пользовательские матрицыWиHкоторые должны быть предоставлены оба.
- batch_sizeint, default=1024
Количество образцов в каждой мини-партии. Большие размеры партий дают лучшую долгосрочную сходимость ценой более медленного старта.
- beta_lossfloat или {'frobenius', 'kullback-leibler', 'itakura-saito'}, по умолчанию='frobenius'
Бета-расхождение для минимизации, измеряющее расстояние между
Xи скалярное произведениеWH. Обратите внимание, что значения, отличные от 'frobenius' (или 2) и 'kullback-leibler' (или 1), приводят к значительно более медленному обучению. Обратите внимание, что дляbeta_loss <= 0(или 'itakura-saito'), входная матрицаXне может содержать нули.- tolfloat, по умолчанию=1e-4
Контроль ранней остановки на основе нормы разностей в
Hмежду 2 шагами. Чтобы отключить раннюю остановку на основе изменений вH, установитеtolдо 0.0.- max_no_improvementint, по умолчанию=10
Управление ранней остановкой на основе последовательного количества мини-батчей, которые не приводят к улучшению сглаженной функции стоимости. Чтобы отключить обнаружение сходимости на основе функции стоимости, установите
max_no_improvementв None.- max_iterint, default=200
Максимальное количество итераций по полному набору данных до таймаута.
- alpha_Wfloat, по умолчанию=0.0
Константа, умножающая члены регуляризации
W. Установите значение ноль (по умолчанию), чтобы не было регуляризации наW.- alpha_Hfloat или "same", по умолчанию="same"
Константа, умножающая члены регуляризации
H. Установите его в ноль, чтобы не иметь регуляризации наH. Если "same" (по умолчанию), принимает то же значение, что иalpha_W.- l1_ratiofloat, по умолчанию=0.0
Параметр смешивания регуляризации, где 0 <= l1_ratio <= 1. Для l1_ratio = 0 штраф является поэлементным L2-штрафом (также известным как норма Фробениуса). Для l1_ratio = 1 это поэлементный L1-штраф. Для 0 < l1_ratio < 1 штраф представляет собой комбинацию L1 и L2.
- forget_factorfloat, по умолчанию=0.7
Величина перемасштабирования прошлой информации. Её значение может быть 1 при конечных наборах данных. Рекомендуется выбирать значения < 1 при онлайн-обучении, так как более свежие пакеты будут иметь больший вес, чем прошлые пакеты.
- fresh_restartsbool, по умолчанию=False
Полностью ли решать для W на каждом шаге. Свежие перезапуски, вероятно, приведут к лучшему решению за то же число итераций, но это намного медленнее.
- fresh_restarts_max_iterint, по умолчанию=30
Максимальное количество итераций при решении для W на каждом шаге. Используется только при выполнении новых перезапусков. Эти итерации могут быть остановлены раньше на основе небольшого изменения W, контролируемого
tol.- transform_max_iterint, default=None
Максимальное количество итераций при решении для W во время преобразования. Если None, по умолчанию равно
max_iter.- random_stateint, экземпляр RandomState или None, по умолчанию=None
Используется для инициализации (когда
init== 'nndsvdar' или 'random'), и в методе координатного спуска. Передайте целое число для воспроизводимых результатов при многократных вызовах функции. См. Глоссарий.- verbosebool, по умолчанию=False
Быть ли подробным.
- Атрибуты:
- components_ndarray формы (n_components, n_features)
Матрица факторизации, иногда называемая 'словарем'.
- n_components_int
Количество компонентов. Оно совпадает с
n_componentsпараметр если он был задан. В противном случае он будет таким же, как количество признаков.- reconstruction_err_float
Норма Фробениуса разности матриц или бета-дивергенция между обучающими данными
Xи восстановленные данныеWHиз обученной модели.- n_iter_int
Фактическое количество начатых итераций по всему набору данных.
- n_steps_int
Количество обработанных мини-пакетов.
- n_features_in_int
Количество признаков, замеченных во время fit.
- feature_names_in_ndarray формы (
n_features_in_,) Имена признаков, наблюдаемых во время fit. Определено только когда
Xимеет имена признаков, которые все являются строками.
Смотрите также
NMFНеотрицательная матричная факторизация.
MiniBatchDictionaryLearningНаходит словарь, который лучше всего можно использовать для представления данных с помощью разреженного кода.
Ссылки
[1]“Fast local algorithms for large scale nonnegative matrix and tensor factorizations” Cichocki, Andrzej, and P. H. A. N. Anh-Huy. IEICE transactions on fundamentals of electronics, communications and computer sciences 92.3: 708-721, 2009.
[2]“Алгоритмы для неотрицательного матричного разложения с бета-дивергенцией” Fevotte, C., & Idier, J. (2011). Neural Computation, 23(9).
[3]«Онлайн-алгоритмы для неотрицательного матричного разложения с дивергенцией Итакуры-Сайто» Lefevre, A., Bach, F., Fevotte, C. (2011). WASPA.
Примеры
>>> import numpy as np >>> X = np.array([[1, 1], [2, 1], [3, 1.2], [4, 1], [5, 0.8], [6, 1]]) >>> from sklearn.decomposition import MiniBatchNMF >>> model = MiniBatchNMF(n_components=2, init='random', random_state=0) >>> W = model.fit_transform(X) >>> H = model.components_
- fit(X, y=None, **params)[источник]#
Изучите модель NMF для данных X.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Вектор обучения, где
n_samplesэто количество образцов иn_featuresэто количество признаков.- yИгнорируется
Не используется, присутствует для согласованности API по соглашению.
- **paramskwargs
Параметры (именованные аргументы) и значения, передаваемые экземпляру fit_transform.
- Возвращает:
- selfobject
Возвращает сам экземпляр.
- fit_transform(X, y=None, W=None, H=None)[источник]#
Обучить модель NMF для данных X и вернуть преобразованные данные.
Это более эффективно, чем вызов fit с последующим transform.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Матрица данных для декомпозиции.
- yИгнорируется
Не используется, присутствует здесь для согласованности API по соглашению.
- Warray-like формы (n_samples, n_components), default=None
Если
init='custom', он используется как начальное предположение для решения. ЕслиNone, использует метод инициализации, указанный вinit.- Harray-like формы (n_components, n_features), по умолчанию=None
Если
init='custom', он используется как начальное предположение для решения. ЕслиNone, использует метод инициализации, указанный вinit.
- Возвращает:
- Wndarray формы (n_samples, n_components)
Преобразованные данные.
- get_feature_names_out(input_features=None)[источник]#
Получить имена выходных признаков для преобразования.
Имена признаков на выходе будут иметь префикс в виде имени класса в нижнем регистре. Например, если преобразователь выводит 3 признака, то имена признаков на выходе:
["class_name0", "class_name1", "class_name2"].- Параметры:
- input_featuresarray-like из str или None, по умолчанию=None
Используется только для проверки имен признаков с именами, встреченными в
fit.
- Возвращает:
- feature_names_outndarray из str объектов
Преобразованные имена признаков.
- 6332()[источник]#
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
- маршрутизацияMetadataRequest
A
MetadataRequestИнкапсуляция информации о маршрутизации.
- get_params(глубокий=True)[источник]#
Получить параметры для этого оценщика.
- Параметры:
- глубокийbool, по умолчанию=True
Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.
- Возвращает:
- paramsdict
Имена параметров, сопоставленные с их значениями.
- inverse_transform(X)[источник]#
Преобразование данных обратно в исходное пространство.
Добавлено в версии 0.18.
- Параметры:
- X{ndarray, sparse matrix} формы (n_samples, n_components)
Преобразованная матрица данных.
- Возвращает:
- X_originalndarray формы (n_samples, n_features)
Возвращает матрицу данных исходной формы.
- partial_fit(X, y=None, W=None, H=None)[источник]#
Обновить модель, используя данные в
Xв качестве мини-пакета.Этот метод предназначен для многократного последовательного вызова на различных частях набора данных для реализации внеядерного или онлайн-обучения.
Это особенно полезно, когда весь набор данных слишком велик, чтобы поместиться в память сразу (см. Стратегии масштабирования вычислений: большие данные).
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Матрица данных для декомпозиции.
- yИгнорируется
Не используется, присутствует здесь для согласованности API по соглашению.
- Warray-like формы (n_samples, n_components), default=None
Если
init='custom', он используется как начальное предположение для решения. Используется только для первого вызоваpartial_fit.- Harray-like формы (n_components, n_features), по умолчанию=None
Если
init='custom', он используется как начальное предположение для решения. Используется только для первого вызоваpartial_fit.
- Возвращает:
- self
Возвращает сам экземпляр.
- set_output(*, преобразовать=None)[источник]#
Установить контейнер вывода.
См. Введение API set_output для примера использования API.
- Параметры:
- преобразовать{“default”, “pandas”, “polars”}, по умолчанию=None
Настройка вывода
transformиfit_transform."default": Формат вывода трансформера по умолчанию"pandas": DataFrame вывод"polars": Вывод PolarsNone: Конфигурация преобразования не изменена
Добавлено в версии 1.4:
"polars"опция была добавлена.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- set_params(**params)[источник]#
Установить параметры этого оценщика.
Метод работает как на простых оценщиках, так и на вложенных объектах (таких как
Pipeline). Последние имеют параметры видачтобы можно было обновить каждый компонент вложенного объекта.__ - Параметры:
- **paramsdict
Параметры оценщика.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- set_partial_fit_request(*, H: bool | None | str = '$UNCHANGED$', W: bool | None | str = '$UNCHANGED$') MiniBatchNMF[источник]#
Настроить, следует ли запрашивать передачу метаданных в
partial_fitметод.Обратите внимание, что этот метод актуален только тогда, когда этот оценщик используется как под-оценщик внутри мета-оценщик и маршрутизация метаданных включена с помощью
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.Варианты для каждого параметра:
True: запрашиваются метаданные и передаютсяpartial_fitесли предоставлено. Запрос игнорируется, если метаданные не предоставлены.False: метаданные не запрашиваются, и мета-оценщик не передаст их вpartial_fit.None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь предоставит их.str: метаданные должны передаваться мета-оценщику с этим заданным псевдонимом вместо исходного имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменять запрос для некоторых параметров, но не для других.Добавлено в версии 1.3.
- Параметры:
- Hstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
Маршрутизация метаданных для
Hпараметр вpartial_fit.- Wstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
Маршрутизация метаданных для
Wпараметр вpartial_fit.
- Возвращает:
- selfobject
Обновленный объект.
- преобразовать(X)[источник]#
Преобразовать данные X в соответствии с обученной моделью MiniBatchNMF.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Матрица данных для преобразования моделью.
- Возвращает:
- Wndarray формы (n_samples, n_components)
Преобразованные данные.