LatentDirichletAllocation
- классsklearn.decomposition.LatentDirichletAllocation(n_components=10, *, doc_topic_prior=None, topic_word_prior=None, learning_method='batch', learning_decay=0.7, learning_offset=10.0, max_iter=10, batch_size=128, evaluate_every=-1, total_samples=1000000.0, perp_tol=0.1, mean_change_tol=0.001, max_doc_update_iter=100, n_jobs=None, verbose=0, random_state=None)[источник]
-
Распределение Латента Дирихле с алгоритмом онлайн-вариационного Байеса.
Реализация основана на [1] и [2].
Добавлена в версии 0.17.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- n_componentsint, по умолчанию=10
-
Число тем.
Изменено в версии 0.19:
n_topicsбыло переименовано вn_components - doc_topic_priorfloat, по умолчанию=None
-
Априорное распределение темы документа
theta. Если значение None, по умолчанию1 / n_components. В [1] это называетсяalpha. - topic_word_priorfloat, по умолчанию=None
-
Априорное распределение слов темы
beta. Если значение None, по умолчанию1 / n_components. В [1] это называетсяeta. - learning_method{‘batch’, ‘online’}, по умолчанию=’batch’
-
Метод обновления
_component. Используется только в методеfit. В целом, если размер данных большой, онлайн-обновление будет намного быстрее, чем пакетное.Допустимые значения:
- ‘batch’: Метод пакетного вариационного Байеса. Использует все обучающие данные при каждом обновлении EM. Старое значение
components_будет перезаписано на каждой итерации. - ‘online’: Метод онлайн-вариационного Байеса. При каждом обновлении EM используется мини-пакет обучающих данных для инкрементного обновления
components_переменной. Скорость обучения контролируется параметрамиlearning_decayиlearning_offset.
Изменено в версии 0.20: По умолчанию метод обучения теперь
"batch". - ‘batch’: Метод пакетного вариационного Байеса. Использует все обучающие данные при каждом обновлении EM. Старое значение
- learning_decayfloat, по умолчанию=0.7
-
Это параметр, который контролирует скорость обучения в методе онлайн-обучения. Значение должно быть в диапазоне (0.5, 1.0] для обеспечения асимптотической сходимости. Когда значение равно 0.0, а размер пакета
n_samples, метод обновления такой же, как при пакетном обучении. В литературе это называется каппа. - learning_offsetfloat, по умолчанию=10.0
-
Параметр (положительный), который уменьшает вес ранних итераций в онлайн-обучении. Он должен быть больше 1.0. В литературе это называется tau_0.
- max_iterint, по умолчанию=10
-
Максимальное количество проходов по обучающим данным (эпох). Это влияет только на поведение в методе
fit, а не в методеpartial_fit. - batch_sizeint, по умолчанию=128
-
Количество документов, используемых на каждой итерации EM. Используется только в онлайн-обучении.
- evaluate_everyint, по умолчанию=-1
-
Частота оценки перплексии. Используется только в методе
fit. Установите его в 0 или отрицательное значение, чтобы вообще не оценивать перплексию во время обучения. Оценка перплексии может помочь проверить сходимость в процессе обучения, но также увеличит общее время обучения. Оценка перплексии на каждой итерации может увеличить время обучения вдвое. - total_samplesint, по умолчанию=1e6
-
Общее количество документов. Используется только в методе
partial_fit. - perp_tolfloat, по умолчанию=1e-1
-
Пороговое значение перплексии. Используется только когда
evaluate_everyбольше 0. - mean_change_tolfloat, по умолчанию=1e-3
-
Пороговое значение изменения среднего для обновления распределения темы документа на шаге E.
- max_doc_update_iterint, по умолчанию=100
-
Максимальное количество итераций для обновления распределения темы документа на шаге E.
- n_jobsint, по умолчанию=None
-
Количество задач для использования на шаге E.
Noneозначает 1, за исключением контекстаjoblib.parallel_backend.-1означает использование всех процессоров. Смотрите Словарь для получения дополнительной информации. - verboseint, по умолчанию=0
-
Уровень подробности.
- random_stateint, RandomState instance или None, по умолчанию=None
-
Передайте целое число для воспроизводимых результатов при многократном вызове функций. Смотрите Словарь.
- Атрибуты:
-
- components_массив формы (n_components, n_features)
-
Вариационные параметры распределения слов темы. Поскольку полное условное распределение для распределения слов темы — это Дирихле,
components_[i, j]может быть представлен как псевдосчёт, который представляет количество раз, когда словоjбыло назначено темеi. Его также можно рассматривать как распределение по словам для каждой темы после нормализации:model.components_ / model.components_.sum(axis=1)[:, np.newaxis]. - exp_dirichlet_component_массив формы (n_components, n_features)
-
Экспоненциальное значение ожидаемого значения логарифмического распределения слов темы. В литературе это
exp(E[log(beta)]). - n_batch_iter_int
-
Число итераций шага EM.
- n_features_in_int
-
Количество признаков, увиденных во время fit.
Добавлена в версии 0.24.
-
feature_names_in_массив формы (
n_features_in_,) -
Имена признаков, увиденных во время fit. Определено только если у
Xесть имена признаков, которые являются строками.Добавлена в версии 1.0.
- n_iter_int
-
Количество проходов по набору данных.
- bound_float
-
Окончательное значение перплексии на обучающей выборке.
- doc_topic_prior_float
-
Априорное распределение темы документа
theta. Если значение None, оно равно1 / n_components. - random_state_RandomState instance
-
Инстанс RandomState, сгенерированный либо из семени, либо из генератора случайных чисел, либо из
np.random. - topic_word_prior_float
-
Априорное распределение слов темы
beta. Если значение None, оно равно1 / n_components.
См. также
sklearn.discriminant_analysis.LinearDiscriminantAnalysis-
Классификатор с линейной границей принятия решения, полученный путём подгонки условных плотностей классов к данным и использования правила Байеса.
Ссылки
[1] (1,2,3)«Online Learning for Latent Dirichlet Allocation», Matthew D. Hoffman, David M. Blei, Francis Bach, 2010 blei-lab/onlineldavb
[2]«Stochastic Variational Inference», Matthew D. Hoffman, David M. Blei, Chong Wang, John Paisley, 2013
Примеры
>>> from sklearn.decomposition import LatentDirichletAllocation >>> from sklearn.datasets import make_multilabel_classification >>> # This produces a feature matrix of token counts, similar to what >>> # CountVectorizer would produce on text. >>> X, _ = make_multilabel_classification(random_state=0) >>> lda = LatentDirichletAllocation(n_components=5, ... random_state=0) >>> lda.fit(X) LatentDirichletAllocation(...) >>> # get topics for some given samples: >>> lda.transform(X[-2:]) array([[0.00360392, 0.25499205, 0.0036211 , 0.64236448, 0.09541846], [0.15297572, 0.00362644, 0.44412786, 0.39568399, 0.003586 ]])
- fit(X, y=None)[source]
-
Обучение модели для данных X с использованием вариационного метода Байеса.
Если
learning_methodравно ‘online’, используется обновление мини-пакета. В противном случае используется пакетное обновление.- Параметры:
-
- X{массив, разреженная матрица} формы (n_samples, n_features)
-
Матрица слов документов.
- yИгнорируется
-
Не используется, присутствует здесь для согласованности API по соглашению.
- Возвращает:
-
- self
-
Обученная модель.
- fit_transform(X, y=None, *, normalize=True)[source]
-
Обучение на данных, а затем преобразование их.
Обучает преобразователь на
Xиyи возвращает преобразованную версиюX.- Параметры:
-
- Xмассив формы (n_samples, n_features)
-
Входные образцы.
- yмассив формы (n_samples,) или (n_samples, n_outputs), по умолчанию None
-
Целевые значения (None для без учителя преобразований).
- normalizebool, по умолчанию True
-
Нормализовать ли распределение тем документов в
transform.
- Возвращает:
-
- 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массив str объектов
-
Преобразованные имена признаков.
- get_metadata_routing()[source]
-
Получить метаданные маршрутизации данного объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
MetadataRequestencapsulating routing information.
- get_params(deep=True)[source]
-
Получить параметры данного оценщика.
- Параметры:
-
- deepbool, по умолчанию True
-
Если True, вернёт параметры данного оценщика и вложенных под-объектов, являющихся оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные с их значениями.
- partial_fit(X, y=None)[source]
-
Онлайновая VB с обновлением мини-пакета.
- Параметры:
-
- X{массив, разреженная матрица} формы (n_samples, n_features)
-
Матрица слов документов.
- yИгнорируется
-
Не используется, присутствует здесь для согласованности API по соглашению.
- Возвращает:
-
- self
-
Частично обученный оценщик.
- perplexity(X, sub_sampling=False)[source]
-
Вычислить приближенную сложность для данных X.
Сложность определяется как exp(-1. * логарифмическая правдоподобие на слово).
Изменено в версии 0.19: аргумент doc_topic_distr устарел и игнорируется, потому что пользователь больше не имеет доступа к ненормализованному распределению
- Параметры:
-
- X{массив, разреженная матрица} формы (n_samples, n_features)
-
Матрица слов документов.
- sub_samplingbool
-
Использовать субдискретизацию или нет.
- Возвращает:
-
- scorefloat
-
Оценка сложности.
- score(X, y=None)[source]
-
Вычислить приближенное логарифмическое правдоподобие как оценку.
- Параметры:
-
- X{массив, разреженная матрица} формы (n_samples, n_features)
-
Матрица слов документов.
- yИгнорируется
-
Не используется, присутствует здесь для согласованности API по соглашению.
- Возвращает:
-
- scorefloat
-
Использовать приближенную границу в качестве оценки.
- 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экземпляр оценщика
-
Экземпляр оценщика.
- set_transform_request(*, normalize:bool|None|str='$UNCHANGED$') LatentDirichletAllocation[source]
-
Запрос метаданных, передаваемых методу
transform.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, см. Руководство пользователя о том, как работает механизм маршрутизации.Варианты для каждого параметра:
-
True: метаданные запрашиваются и передаютсяtransformесли предоставлены. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-оценщик не передаст ихtransform. -
None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь предоставит их. -
str: метаданные должны передаваться мета-оценщику с этим псевдонимом вместо исходного имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров и не для других.Добавлен в версии 1.3.
Примечание
Этот метод актуален только если этот оценщик используется в качестве под-оценщика мета-оценщика, например, внутри
Pipeline. В противном случае он не оказывает никакого влияния.- Параметры:
-
- normalizestr, True, False, или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
normalizeвtransform.
- Возвращает:
-
- selfобъект
-
Обновленный объект.
-
- transform(X, *, normalize=True)[source]
-
Преобразовать данные X в соответствии с обученной моделью.
Изменено в версии 0.18:
doc_topic_distrтеперь нормализован.- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Матрица слов документа.
- normalizebool, по умолчанию=True
-
Нормализовать распределение темы документа.
- Возвращает:
-
- doc_topic_distrмассив формы (n_samples, n_components)
-
Распределение темы документа для X.
Примеры галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.decomposition.LatentDirichletAllocation.html