Explorando el agrupamiento K-Means con Python

Beginner

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

Introducción

En este laboratorio, exploraremos el algoritmo de agrupamiento K-Means y su implementación en Python utilizando la biblioteca scikit-learn. El agrupamiento es un tipo de aprendizaje no supervisado que implica agrupar puntos de datos en clusters basados en sus similitudes. El agrupamiento K-Means es un algoritmo popular para el agrupamiento y se utiliza ampliamente en varios campos como el procesamiento de imágenes, la bioinformática y la investigación de mercadeo.

Consejos sobre la VM

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

A veces, es posible que tenga que esperar unos 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 tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importar bibliotecas

Primero, necesitamos importar las bibliotecas necesarias para este laboratorio. Vamos a utilizar NumPy, Matplotlib y scikit-learn.

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn import datasets

Cargar datos

A continuación, cargaremos el conjunto de datos iris, que es un conjunto de datos popular en el aprendizaje automático. Este conjunto de datos contiene información sobre las características de diferentes tipos de flores de iris. Utilizaremos este conjunto de datos para demostrar el algoritmo de agrupamiento K-Means.

iris = datasets.load_iris()
X = iris.data
y = iris.target

Visualizar datos

Antes de aplicar el algoritmo de agrupamiento K-Means, primero visualicemos los datos para entenderlos mejor. Utilizaremos un diagrama de dispersión 3D para visualizar los datos.

fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection="3d")
ax.scatter(X[:, 0], X[:, 1], X[:, 2])
ax.set_xlabel("Sepal length")
ax.set_ylabel("Sepal width")
ax.set_zlabel("Petal length")
plt.show()

Aplicar el agrupamiento K-Means

Ahora, aplicaremos el algoritmo de agrupamiento K-Means a nuestros datos. Inicializaremos el algoritmo con 3 clusters y lo ajustaremos a nuestros datos.

kmeans = KMeans(n_clusters=3)
kmeans.fit(X)

Visualizar los clusters

Después de aplicar el algoritmo de agrupamiento K-Means, visualicemos los clusters que se formaron. Utilizaremos un diagrama de dispersión 3D para visualizar los puntos de datos y sus respectivos clusters.

fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection="3d")
ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=kmeans.labels_)
ax.set_xlabel("Sepal length")
ax.set_ylabel("Sepal width")
ax.set_zlabel("Petal length")
plt.show()

Evaluar el agrupamiento

Para evaluar el rendimiento del algoritmo de agrupamiento K-Means, podemos calcular la puntuación de inercia. La puntuación de inercia mide la suma de las distancias entre cada punto de datos y el centro de su cluster asignado. Una puntuación de inercia más baja indica un mejor agrupamiento.

print("Inertia Score:", kmeans.inertia_)

Resumen

En este laboratorio, aprendimos sobre el algoritmo de agrupamiento K-Means y su implementación en Python utilizando la biblioteca scikit-learn. Cargamos el conjunto de datos iris, visualizamos los datos, aplicamos el algoritmo de agrupamiento K-Means y evaluamos su rendimiento. El agrupamiento es una técnica poderosa para el análisis de datos y se puede utilizar en una variedad de aplicaciones.