sklearn.mixture
.GaussianMixture¶
- class sklearn.mixture.GaussianMixture¶
Mezcla Gaussiana.
Representación de una distribución de probabilidad del modelo de mezcla Gaussiana. Esta clase permite estimar los parámetros de una distribución de mezcla Gaussiana.
Lee más en el Manual de usuario.
Nuevo en la versión 0.18.
- Parámetros
- n_componentsint, default=1
El número de componentes de la mezcla.
- covariance_type{“full”, “tied”, “diag”, “spherical”}, default=”full”
Cadena que describe el tipo de parámetros de covarianza a utilizar. Debe ser uno de:
- “full”
cada componente tiene su propia matriz de covarianzas general
- “tied”
todos los componentes comparten la misma matriz de covarianzas general
- “diag”
cada componente tiene su propia matriz de covarianzas diagonal
- “spherical”
cada componente tiene su propia varianza
- tolfloat, default=1e-3
El umbral de convergencia. Las iteraciones de EM se detendrán cuando la ganancia promedio del límite inferior esté por debajo de este umbral.
- reg_covarfloat, default=1e-6
La regularización no negativa añadida a la diagonal de la covarianza. Permite asegurar que las matrices de covarianza son todas positivas.
- max_iterint, default=100
El número de iteraciones de EM a realizar.
- n_initint, default=1
El número de inicializaciones a realizar. Se mantienen los mejores resultados.
- init_params{“kmeans”, “random”}, default=”kmeans”
El método utilizado para inicializar las ponderaciones, las medias y las precisiones. Debe ser uno de los siguientes:
'kmeans' : responsibilities are initialized using kmeans. 'random' : responsibilities are initialized randomly.
- weights_initarray-like de forma (n_components, ), default=None
Las ponderaciones iniciales proporcionadas por el usuario. Si es None, los pesos se inicializan utilizando el método init_params.
- means_initarray-like de forma (n_components, n_features), default=None
Las medias iniciales proporcionadas por el usuario, Si es None, los medias se inicializan utilizando el método init_params.
- precisions_initarray-like, default=None
Las precisiones iniciales proporcionadas por el usuario (inversa de las matrices de covarianza). Si es None, las precisiones se inicializan utilizando el método “init_params”. La forma depende de “covariance_type”:
(n_components,) if 'spherical', (n_features, n_features) if 'tied', (n_components, n_features) if 'diag', (n_components, n_features, n_features) if 'full'
- random_stateint, instancia RandomState o None, default=None
Controla la semilla aleatoria dada al método elegido para inicializar los parámetros (ver
init_params
). Además, controla la generación de muestras aleatorias de la distribución ajustada (ver el métodosample
). Pasa un número entero (int) para una salida reproducible a través de múltiples invocaciones a la función. Ver Glosario.- warm_startbool, default=False
Si “warm_start” es True, la solución del último ajuste se utiliza como inicialización para la siguiente invocación a fit(). Esto puede acelerar la convergencia cuando se invoca a fit varias veces en problemas similares. En ese caso, “n_init” se ignora y sólo se produce una única inicialización en la primera invocación. Ver el Glosario.
- verboseint, default=0
Activa la salida verbosa. Si es 1 entonces imprime la inicialización actual y cada paso de iteración. Si es mayor que 1 entonces imprime también la probabilidad logarítmica y el tiempo necesario para cada paso.
- verbose_intervalint, default=10
Número de iteraciones realizadas antes de la siguiente impresión.
- Atributos
- weights_array-like de forma (n_components,)
Las ponderaciones de cada uno de los componentes de la mezcla.
- means_array-like de forma (n_components, n_features)
La media de cada componente de la mezcla.
- covariances_array-like
La covarianza de cada componente de la mezcla. La forma depende de
covariance_type
:(n_components,) if 'spherical', (n_features, n_features) if 'tied', (n_components, n_features) if 'diag', (n_components, n_features, n_features) if 'full'
- precisions_array-like
Las matrices de precisión para cada componente de la mezcla. Una matriz de precisión es la inversa de una matriz de covarianzas. Una matriz de covarianzas es definida simétrica positiva por lo que la mezcla de Gaussianas se puede parametrizar de forma equivalente por las matrices de precisión. Almacenar las matrices de precisión en lugar de las matrices de covarianzas hace que sea más eficiente calcular el logaritmo de la verosimilitud de las nuevas muestras en el momento de la prueba. La forma depende de
covariance_type
:(n_components,) if 'spherical', (n_features, n_features) if 'tied', (n_components, n_features) if 'diag', (n_components, n_features, n_features) if 'full'
- precisions_cholesky_array-like
La descomposición de Cholesky de las matrices de precisión de cada componente de la mezcla. Una matriz de precisión es la inversa de una matriz de covarianzas. Una matriz de covarianzas es definida simétrica positiva, por lo que la mezcla de Gaussianas puede ser parametrizada de forma equivalente por las matrices de precisión. El almacenamiento de las matrices de precisión en lugar de las matrices de covarianzas hace más eficiente el cálculo del logaritmo de la verosimilitud de las nuevas muestras en el momento de la prueba. La forma depende de
covariance_type
:(n_components,) if 'spherical', (n_features, n_features) if 'tied', (n_components, n_features) if 'diag', (n_components, n_features, n_features) if 'full'
- converged_bool
True cuando se ha alcanzado la convergencia en fit(), False en caso contrario.
- n_iter_int
Número de pasos utilizados por el mejor ajuste de EM para alcanzar la convergencia.
- lower_bound_float
Valor del límite inferior del logaritmo de la verosimilitud (de los datos de entrenamiento con respecto al modelo) del mejor ajuste de EM.
Ver también
BayesianGaussianMixture
Ajuste del modelo de mezcla Gaussiana con una inferencia variacional.
Ejemplos
>>> import numpy as np >>> from sklearn.mixture import GaussianMixture >>> X = np.array([[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]]) >>> gm = GaussianMixture(n_components=2, random_state=0).fit(X) >>> gm.means_ array([[10., 2.], [ 1., 2.]]) >>> gm.predict([[0, 0], [12, 3]]) array([1, 0])
Métodos
Criterio de información de Akaike para el modelo actual en la entrada X.
Criterio de información Bayesiano para el modelo actual en la entrada X.
Estima los parámetros del modelo con el algoritmo EM.
Estima los parámetros del modelo utilizando X y predice las etiquetas para X.
Obtiene los parámetros para este estimador.
Predice las etiquetas de las muestras de datos en X utilizando el modelo entrenado.
Predice la probabilidad a posteriori de cada componente dados los datos.
Genera muestras aleatorias a partir de la distribución Gaussiana ajustada.
Calcula el logaritmo de la verosimilitud promedio por muestra de los datos X dados.
Calcula las probabilidades logarítmicas ponderadas para cada muestra.
Establece los parámetros de este estimador.
- aic()¶
Criterio de información de Akaike para el modelo actual en la entrada X.
- Parámetros
- Xarray de forma (n_samples, n_dimensions)
- Devuelve
- aicfloat
Cuanto más bajo, mejor.
- bic()¶
Criterio de información Bayesiano para el modelo actual en la entrada X.
- Parámetros
- Xarray de forma (n_samples, n_dimensions)
- Devuelve
- bicfloat
Cuanto más bajo, mejor.
- fit()¶
Estima los parámetros del modelo con el algoritmo EM.
El método ajusta el modelo
n_init
veces y establece los parámetros con los que el modelo tiene la mayor verosimilitud o límite inferior. Dentro de cada ensayo, el método itera entre el paso E y el paso M paramax_iter
veces hasta que el cambio de la verosimilitud o el límite inferior sea menor quetol
, de lo contrario, unaConvergenceWarning
se plantea. Siwarm_start
esTrue
, entoncesn_init
se ignora y se realiza una única inicialización en la primera invocación. En las invocaciones consecutivas, el entrenamiento comienza donde se dejó.- Parámetros
- Xarray-like de forma (n_samples, n_features)
Lista de puntos de datos n_features-dimensional. Cada fila corresponde a un único punto de datos.
- Devuelve
- self
- fit_predict()¶
Estima los parámetros del modelo utilizando X y predice las etiquetas para X.
El método ajusta el modelo n_init veces y establece los parámetros con los que el modelo tiene la mayor verosimilitud o límite inferior. Dentro de cada ensayo, el método itera entre el paso E y el paso M para
max_iter
veces hasta que el cambio de la verosimilitud o el límite inferior es menor quetol
, de lo contrario, unConvergenceWarning
se plantea. Después del ajuste, predice la etiqueta más probable para los puntos de datos de entrada.Nuevo en la versión 0.20.
- Parámetros
- Xarray-like de forma (n_samples, n_features)
Lista de puntos de datos n_features-dimensional. Cada fila corresponde a un único punto de datos.
- Devuelve
- labelsarreglo, forma (n_samples,)
Etiquetas de los componentes.
- 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.
- predict()¶
Predice las etiquetas de las muestras de datos en X utilizando el modelo entrenado.
- Parámetros
- Xarray-like de forma (n_samples, n_features)
Lista de puntos de datos n_features-dimensional. Cada fila corresponde a un único punto de datos.
- Devuelve
- labelsarreglo, forma (n_samples,)
Etiquetas de los componentes.
- predict_proba()¶
Predice la probabilidad a posteriori de cada componente dados los datos.
- Parámetros
- Xarray-like de forma (n_samples, n_features)
Lista de puntos de datos n_features-dimensional. Cada fila corresponde a un único punto de datos.
- Devuelve
- resparreglo, forma (n_samples, n_components)
Devuelve la probabilidad de cada Gaussiana (estado) en el modelo dada cada muestra.
- sample()¶
Genera muestras aleatorias a partir de la distribución Gaussiana ajustada.
- Parámetros
- n_samplesint, default=1
Número de muestras a generar.
- Devuelve
- Xarreglo, forma (n_samples, n_features)
Muestra generada aleatoriamente
- yarreglo, forma (n_samples,)
Etiquetas de los componentes
- score()¶
Calcula el logaritmo de la verosimilitud promedio por muestra de los datos X dados.
- Parámetros
- Xarray-like de forma (n_samples, n_dimensions)
Lista de puntos de datos n_features-dimensional. Cada fila corresponde a un único punto de datos.
- Devuelve
- log_likelihoodfloat
Logaritmo de la verosimilitud de la mezcla Gaussiana dada X.
- score_samples()¶
Calcula las probabilidades logarítmicas ponderadas para cada muestra.
- Parámetros
- Xarray-like de forma (n_samples, n_features)
Lista de puntos de datos n_features-dimensional. Cada fila corresponde a un único punto de datos.
- Devuelve
- log_probarreglo, forma (n_samples,)
Probabilidades logarítmicas de cada punto de datos en X.
- 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 de estimador
Instancia del estimador.