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étodo sample). 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

aic

Criterio de información de Akaike para el modelo actual en la entrada X.

bic

Criterio de información Bayesiano para el modelo actual en la entrada X.

fit

Estima los parámetros del modelo con el algoritmo EM.

fit_predict

Estima los parámetros del modelo utilizando X y predice las etiquetas para X.

get_params

Obtiene los parámetros para este estimador.

predict

Predice las etiquetas de las muestras de datos en X utilizando el modelo entrenado.

predict_proba

Predice la probabilidad a posteriori de cada componente dados los datos.

sample

Genera muestras aleatorias a partir de la distribución Gaussiana ajustada.

score

Calcula el logaritmo de la verosimilitud promedio por muestra de los datos X dados.

score_samples

Calcula las probabilidades logarítmicas ponderadas para cada muestra.

set_params

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 para max_iter veces hasta que el cambio de la verosimilitud o el límite inferior sea menor que tol, de lo contrario, una ConvergenceWarning se plantea. Si warm_start es True, entonces n_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 que tol, de lo contrario, un ConvergenceWarning 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.

Ejemplos utilizando sklearn.mixture.GaussianMixture