sklearn.decomposition.LatentDirichletAllocation

class sklearn.decomposition.LatentDirichletAllocation

Asignación de Dirichlet Latente con algoritmo Bayes variacional en línea

Nuevo en la versión 0.17.

Lee más en el Manual de usuario.

Parámetros
n_componentsint, default=10

Número de temas.

Distinto en la versión 0.19: n_topics fue renombrado a n_components

doc_topic_priorfloat, default=None

Antes de la distribución de temas del documento theta. Si el valor es None, el valor predeterminado es 1 / n_components. En [1], esto se llama alpha.

topic_word_priorfloat, default=None

Antes de la distribución de palabras del tema beta. Si el valor es None, el valor predeterminado es 1 / n_components. En [1], esto se llama eta.

learning_method{“batch”, “online”}, default=”batch”

Método utilizado para actualizar _component. Solo se utiliza en el método fit. En general, si el tamaño de los datos es grande, la actualización en línea será mucho más rápida que la actualización por lotes.

Opciones válidas:

'batch': Batch variational Bayes method. Use all training data in
    each EM update.
    Old `components_` will be overwritten in each iteration.
'online': Online variational Bayes method. In each EM update, use
    mini-batch of training data to update the ``components_``
    variable incrementally. The learning rate is controlled by the
    ``learning_decay`` and the ``learning_offset`` parameters.

Distinto en la versión 0.20: El método de aprendizaje predeterminado ahora es "batch".

learning_decayfloat, default=0.7

Es un parámetro que controla la tasa de aprendizaje en el método de aprendizaje en línea. El valor debe establecerse entre (0.5, 1.0] para garantizar la convergencia asintótica. Cuando el valor es 0.0 y batch_size es n_samples, el método de actualización es el mismo que el aprendizaje por lotes. En la literatura, esto se llama kappa.

learning_offsetfloat, default=10.

Un parámetro (positivo) que resta peso a las iteraciones tempranas en el aprendizaje en línea. Debe ser mayor que 1.0. En la literatura, esto se llama tau_0.

max_iterint, default=10

El número máximo de iteraciones.

batch_sizeint, default=128

Número de documentos a utilizar en cada iteración de EM. Sólo se utiliza en el aprendizaje en línea.

evaluate_everyint, default=-1

Con qué frecuencia evaluar la perplejidad. Sólo se utiliza en el método fit. Establécelo en 0 o en un número negativo para no evaluar la perplejidad en el entrenamiento. Evaluar la perplejidad puede ayudarte a comprobar la convergencia en el proceso de entrenamiento, pero también incrementará el tiempo total de entrenamiento. Evaluar la perplejidad en cada iteración puede aumentar el tiempo de entrenamiento hasta el doble.

total_samplesint, default=1e6

Número total de documentos. Sólo se utiliza en el método partial_fit.

perp_tolfloat, default=1e-1

Tolerancia de la perplejidad en el aprendizaje por lotes. Sólo se utiliza cuando evaluate_every es mayor que 0.

mean_change_tolfloat, default=1e-3

Detiene la tolerancia para la actualización de la distribución de temas de los documentos en paso E.

max_doc_update_iterint, default=100

Número máximo de iteraciones para actualizar la distribución del tema del documento en el paso E.

n_jobsint, default=None

El número de trabajos a utilizar en el paso E. None significa 1 a menos que esté en un contexto joblib.parallel_backend. -1 significa usar todos los procesadores. Ver Glosario para más detalles.

verboseint, default=0

Nivel de verbosidad.

random_stateentero, instancia de RandomState o None, default=None

Pasa un número entero (int) para que los resultados sean reproducibles a través de múltiples llamadas a la función. Ver Glosario.

Atributos
components_ndarray de forma (n_components, n_features)

Parámetros variacionales para la distribución de palabras del tema. Dado que la condicional completa para la distribución de palabras del tema es una Dirichlet, components_[i, j] puede verse como un pseudoconteo que representa el número de veces que la palabra j fue asignada al tema i. También se puede ver como la distribución sobre las palabras para cada tema después de la normalización: model.components_ / model.components_.sum(axis=1)[:, np.newaxis].

exp_dirichlet_component_ndarray de forma (n_components, n_features)

Valor exponencial de la expectativa de la distribución logarítmica de las palabras del tema. En la literatura, es exp(E[log(beta)]).

n_batch_iter_int

Número de iteraciones del paso EM.

n_iter_int

Número de pasadas sobre el conjunto de datos.

bound_float

Puntuación final de perplejidad en el conjunto de entrenamiento.

doc_topic_prior_float

Antes de la distribución del tema del documento theta. Si el valor es None, es 1 / n_components.

random_state_Instancia RandomState

Instancia de RandomState que se genera a partir de una semilla, el generador de números aleatorios o por np.random.

topic_word_prior_float

Antes de la distribución de palabras del tema theta. Si el valor es None, es 1 / n_components.

Referencias

1(1,2)

«Online Learning for Latent Dirichlet Allocation», Matthew D. Hoffman, David M. Blei, Francis Bach, 2010

[2] «Stochastic Variational Inference», Matthew D. Hoffman, David M. Blei,

Chong Wang, John Paisley, 2013

[3] Matthew D. Hoffman’s onlineldavb code. Enlace:

https://github.com/blei-lab/onlineldavb

Ejemplos

>>> 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  ]])

Métodos

fit

Aprende el modelo para los datos X con el método Bayes variacional.

fit_transform

Ajusta a los datos y luego los transforma.

get_params

Obtiene los parámetros para este estimador.

partial_fit

VB en línea con actualización de mini lotes.

perplexity

Calcula la perplejidad aproximada para los datos X.

score

Calcula el logaritmo de la verosimilitud aproximado como puntuación.

set_params

Establece los parámetros de este estimador.

transform

Transforma los datos X según el modelo ajustado.

fit()

Aprende el modelo para los datos X con el método Bayes variacional.

Cuando learning_method es “online”, utiliza actualización por mini lotes. De lo contrario, utiliza la actualización por lotes.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Matriz de palabras del documento.

yIgnorado
Devuelve
self
fit_transform()

Ajusta a los datos y luego los transforma.

Ajusta el transformador a X e y con los parámetros opcionales fit_params y devuelve una versión transformada de X.

Parámetros
Xarray-like de forma (n_samples, n_features)

Muestras de entrada.

yarray-like de forma (n_samples,) o (n_samples, n_outputs), default=None

Valores objetivo (None para transformaciones no supervisadas).

**fit_paramsdict

Parámetros de ajuste adicionales.

Devuelve
X_newarreglo ndarray de forma (n_samples, n_features_new)

Arreglo transformado.

get_params()

Obtiene los parámetros para este estimador.

Parámetros
deepbool, default=True

Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.

Devuelve
paramsdict

Los nombres de los parámetros mapeados a sus valores.

partial_fit()

VB en línea con actualización de mini lotes.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Matriz de palabras del documento.

yIgnorado
Devuelve
self
perplexity()

Calcula la perplejidad aproximada para los datos X.

La perplejidad se define como exp(-1. * logaritmo de la verosimilitud por palabra)

Distinto en la versión 0.19: El argumento doc_topic_distr ha quedado obsoleto y es ignorado porque el usuario ya no tiene acceso a la distribución no normalizada

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Matriz de palabras del documento.

sub_samplingbool

Hace un submuestreo o no.

Devuelve
scorefloat

Puntuación de perplejidad.

score()

Calcula el logaritmo de la verosimilitud aproximado como puntuación.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Matriz de palabras del documento.

yIgnorado
Devuelve
scorefloat

Utiliza un límite aproximado como puntuación.

set_params()

Establece los parámetros de este estimador.

El método funciona tanto en estimadores simples como en objetos anidados (como Pipeline). Estos últimos tienen parámetros de la forma <component>__<parameter> para que sea posible actualizar cada componente de un objeto anidado.

Parámetros
**paramsdict

Parámetros del estimador.

Devuelve
selfinstancia del estimador

Instancia del estimador.

transform()

Transforma los datos X según el modelo ajustado.

Distinto en la versión 0.18: doc_topic_distr is now normalized

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Matriz de palabras del documento.

Devuelve
doc_topic_distrndarray de forma (n_samples, n_components)

Distribución de los temas del documento para X.