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 an_components
- doc_topic_priorfloat, default=None
Antes de la distribución de temas del documento
theta
. Si el valor es None, el valor predeterminado es1 / n_components
. En [1], esto se llamaalpha
.- topic_word_priorfloat, default=None
Antes de la distribución de palabras del tema
beta
. Si el valor es None, el valor predeterminado es1 / n_components
. En [1], esto se llamaeta
.- learning_method{“batch”, “online”}, default=”batch”
Método utilizado para actualizar
_component
. Solo se utiliza en el métodofit
. 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 contextojoblib.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 palabraj
fue asignada al temai
. 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, es1 / 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, es1 / 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:
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
Aprende el modelo para los datos X con el método Bayes variacional.
Ajusta a los datos y luego los transforma.
Obtiene los parámetros para este estimador.
VB en línea con actualización de mini lotes.
Calcula la perplejidad aproximada para los datos X.
Calcula el logaritmo de la verosimilitud aproximado como puntuación.
Establece los parámetros de este estimador.
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
ey
con los parámetros opcionalesfit_params
y devuelve una versión transformada deX
.- 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.