Modelo Mixtos Gausianos

Machine LearningMachine LearningBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Esta práctica te guiará a través de la implementación de Modelos Mixtos Gausianos (GMM, por sus siglas en inglés) utilizando la biblioteca scikit-learn en Python. Los GMM son modelos probabilísticos que asumen que los datos se generan a partir de una mezcla de varias distribuciones gaussianas. Se utilizan ampliamente en diversos campos como la visión por computadora, las finanzas y la bioinformática para tareas de agrupamiento y estimación de densidad.

Consejos sobre la VM

Una vez que se haya iniciado la VM, haz clic en la esquina superior izquierda para cambiar a la pestaña Notebook y acceder a Jupyter Notebook para practicar.

A veces, es posible que tengas que esperar algunos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tienes problemas durante el aprendizaje, no dudes en preguntar a Labby. Proporciona retroalimentación después de la sesión y resolveremos rápidamente el problema para ti.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills ml/sklearn -.-> lab-49139{{"Modelo Mixtos Gausianos"}} end

Importar bibliotecas

En este paso, importaremos las bibliotecas necesarias para esta práctica. Usaremos NumPy para el cálculo numérico, Matplotlib para la visualización de datos y scikit-learn para la implementación de GMM.

import numpy as np
import matplotlib.pyplot as plt
from sklearn import mixture

Generar datos

En este paso, generaremos un conjunto de datos de muestra que consta de dos distribuciones gaussianas con medias y covarianzas diferentes.

n_samples = 500

np.random.seed(0)
C = np.array([[0.0, -0.1], [1.7, 0.4]])
X = np.r_[
    np.dot(np.random.randn(n_samples, 2), C),
    0.7 * np.random.randn(n_samples, 2) + np.array([-6, 3]),
]

Implementar el Modelo Mixtos Gausianos

En este paso, implementaremos el Modelo Mixtos Gausianos utilizando la clase GaussianMixture de scikit-learn. Ajustaremos el modelo a nuestro conjunto de datos y predeciremos las etiquetas de clúster para cada punto de datos. Finalmente, graficaremos los resultados.

## Crea un objeto GMM con 5 componentes
gmm = mixture.GaussianMixture(n_components=5, covariance_type="full")

## Ajusta el GMM a los datos
gmm.fit(X)

## Predice las etiquetas de clúster
Y_ = gmm.predict(X)

## Grafica los resultados
color_iter = ["navy", "c", "cornflowerblue", "gold", "darkorange"]

Para i, color en enumera(color_iter):
    plt.scatter(
        X[Y_ == i, 0], X[Y_ == i, 1], 0.8, color=color, label="Cluster {}".format(i)
    )

plt.legend(loc="best")
plt.title("Modelo Mixtos Gausianos")
plt.show()

Tenga en cuenta que en el código original, la línea Para i, color en enumera(color_iter): tiene un error de sintaxis. Debería ser for i, color in enumerate(color_iter): en Python. La traducción asume que se corregirá este error en el código final.

Implementar el Modelo Mixtos Gausianos Bayesiano

En este paso, implementaremos el Modelo Mixtos Gausianos Bayesiano utilizando la clase BayesianGaussianMixture de scikit-learn. Este modelo tiene una distribución a priori de proceso de Dirichlet que se adapta automáticamente al número de clusters en función de los datos. Ajustaremos el modelo a nuestro conjunto de datos y predeciremos las etiquetas de cluster para cada punto de datos. Finalmente, graficaremos los resultados.

## Crea un objeto de GMM Bayesiano con 5 componentes
dpgmm = mixture.BayesianGaussianMixture(n_components=5, covariance_type="full")

## Ajusta el GMM Bayesiano a los datos
dpgmm.fit(X)

## Predice las etiquetas de cluster
Y_ = dpgmm.predict(X)

## Grafica los resultados
color_iter = ["navy", "c", "cornflowerblue", "gold", "darkorange"]

Para i, color en enumera(color_iter):
    plt.scatter(
        X[Y_ == i, 0], X[Y_ == i, 1], 0.8, color=color, label="Cluster {}".format(i)
    )

plt.legend(loc="best")
plt.title("Modelo Mixtos Gausianos Bayesiano con una distribución a priori de proceso de Dirichlet")
plt.show()

Tenga en cuenta que en el código original, la línea Para i, color en enumera(color_iter): tiene un error de sintaxis. Debería ser for i, color in enumerate(color_iter): en Python. La traducción asume que se corregirá este error en el código final.

Resumen

En esta práctica, hemos aprendido cómo implementar los Modelos Mixtos Gausianos utilizando la biblioteca scikit-learn en Python. También hemos aprendido cómo generar un conjunto de datos, ajustar los modelos a los datos y graficar los resultados. Los GMM son herramientas poderosas para tareas de agrupamiento y estimación de densidad y se utilizan ampliamente en diversos campos.