Clustering no supervisado con K-Means

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

En este laboratorio, exploraremos el clustering, una técnica popular de aprendizaje automático no supervisado. El clustering se utiliza para agrupar puntos de datos similares en función de sus características o atributos, sin la necesidad de datos de entrenamiento etiquetados. Hay varios algoritmos de clustering disponibles, cada uno con sus fortalezas y debilidades. En este laboratorio, nos centraremos en el algoritmo de clustering k-means.

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/cluster("Clustering") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/cluster -.-> lab-71116{{"Clustering no supervisado con K-Means"}} sklearn/datasets -.-> lab-71116{{"Clustering no supervisado con K-Means"}} ml/sklearn -.-> lab-71116{{"Clustering no supervisado con K-Means"}} end

Importar las bibliotecas necesarias

Antes de comenzar, importemos las bibliotecas que necesitaremos para este laboratorio.

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

Generar datos de muestra

A continuación, generemos algunos datos de muestra con los que trabajar. Utilizaremos la función make_blobs del módulo sklearn.datasets para crear un conjunto de datos sintético con clusters.

## Generate sample data
X, y = make_blobs(n_samples=100, centers=4, random_state=0, cluster_std=1.0)

Visualizar los datos

Vamos a visualizar los datos generados utilizando un diagrama de dispersión.

## Plot the data points
plt.scatter(X[:, 0], X[:, 1])
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()

Realizar el clustering k-means

Ahora, apliquemos el algoritmo de clustering k-means a los datos.

## Perform K-Means clustering
kmeans = KMeans(n_clusters=4)
kmeans.fit(X)

Visualizar los clusters

Vamos a visualizar los clusters que se formaron con el algoritmo k-means.

## Get the cluster labels for each data point
labels = kmeans.labels_

## Plot the data points with color-coded clusters
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()

Evaluar el clustering

Para evaluar los resultados del clustering, podemos calcular la inercia de los clusters, que representa la suma de las distancias al cuadrado de las muestras a su centro de cluster más cercano.

## Calculate the inertia of the clusters
inertia = kmeans.inertia_
print("Inertia:", inertia)

Resumen

En este laboratorio, exploramos el algoritmo de clustering k-means. Generamos un conjunto de datos sintético, realizamos el clustering k-means en los datos y visualizamos los clusters resultantes. También calculamos la inercia de los clusters como una medida del rendimiento del clustering. El clustering es una técnica poderosa para encontrar estructura en datos no etiquetados y se puede aplicar a diversos dominios y tipos de datos.