Classification non supervisée avec K-Means

Beginner

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

Introduction

Dans ce laboratoire, nous allons explorer le clustering, une technique populaire d'apprentissage automatique non supervisé. Le clustering est utilisé pour regrouper des points de données similaires ensemble sur la base de leurs caractéristiques ou attributs, sans avoir besoin de données d'entraînement étiquetées. Il existe diverses algorithmes de clustering disponibles, chacun avec ses propres avantages et inconvénients. Dans ce laboratoire, nous allons nous concentrer sur l'algorithme de clustering k-means.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limites de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez des commentaires après la session, et nous résoudrons rapidement le problème pour vous.

Importez les bibliothèques requises

Avant de commencer, importons les bibliothèques dont nous aurons besoin pour ce laboratoire.

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

Générer des données d'échantillonnage

Ensuite, générons quelques données d'échantillonnage avec lesquelles travailler. Nous utiliserons la fonction make_blobs du module sklearn.datasets pour créer un ensemble de données synthétiques avec des clusters.

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

Visualiser les données

Visualisons les données générées à l'aide d'un graphique à points de dispersion.

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

Effectuer un clustering K-Means

Maintenant, appliquons l'algorithme de clustering K-Means aux données.

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

Visualiser les clusters

Visualisons les clusters formés par l'algorithme 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()

Évaluer le clustering

Pour évaluer les résultats du clustering, nous pouvons calculer l'inertie des clusters, qui représente la somme des distances au carré des échantillons à leur centre de cluster le plus proche.

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

Sommaire

Dans ce laboratoire, nous avons exploré l'algorithme de clustering K-Means. Nous avons généré un ensemble de données synthétiques, effectué un clustering K-Means sur les données et visualisé les clusters résultants. Nous avons également calculé l'inertie des clusters comme mesure de la performance du clustering. Le clustering est une technique puissante pour trouver une structure dans les données non étiquetées et peut être appliqué à divers domaines et types de données.