Regroupement K-Means++ avec Scikit-Learn

Machine LearningMachine LearningBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons apprendre à initialiser K-Means++ à l'aide de la bibliothèque scikit-learn en Python. K-Means++ est un algorithme populaire pour regrouper des données en fonction de leurs similitudes. Il est utilisé comme initialisation par défaut pour k-means. Dans ce laboratoire, nous allons générer des données d'échantillonnage, calculer les graines à partir de K-Means++ et tracer les graines d'initialisation en même temps que les données d'échantillonnage.

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 Carnet de notes pour accéder au carnet Jupyter Notebook pour pratiquer.

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

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


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-49181{{"Regroupement K-Means++ avec Scikit-Learn"}} end

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

Nous allons utiliser la fonction make_blobs de la bibliothèque scikit-learn pour générer des données d'échantillonnage. Cette fonction génère des grappes gaussiennes isotrope pour le regroupement. Nous allons générer 4000 échantillons avec 4 centres.

## Générer des données d'échantillonnage
n_samples = 4000
n_components = 4

X, y_true = make_blobs(
    n_samples=n_samples, centers=n_components, cluster_std=0.60, random_state=0
)
X = X[:, ::-1]

Calculer les graines à partir de K-Means++

Nous allons utiliser la fonction kmeans_plusplus de la bibliothèque scikit-learn pour calculer les graines à partir de K-Means++. Cette fonction renvoie les centres initiaux de cluster utilisés pour le regroupement K-Means. Nous allons calculer 4 clusters à l'aide de K-Means++.

## Calculer les graines à partir de K-Means++
centers_init, indices = kmeans_plusplus(X, n_clusters=4, random_state=0)

Tracer les graines d'initialisation en même temps que les données d'échantillonnage

Nous allons utiliser la bibliothèque matplotlib pour tracer les graines d'initialisation en même temps que les données d'échantillonnage. Les graines d'initialisation seront représentées comme des points bleus, et les données d'échantillonnage seront représentées comme des points colorés.

## Tracer les graines d'initialisation en même temps que les données d'échantillonnage
plt.figure(1)
colors = ["#4EACC5", "#FF9C34", "#4E9A06", "m"]

for k, col in enumerate(colors):
    cluster_data = y_true == k
    plt.scatter(X[cluster_data, 0], X[cluster_data, 1], c=col, marker=".", s=10)

plt.scatter(centers_init[:, 0], centers_init[:, 1], c="b", s=50)
plt.title("Initialisation K-Means++")
plt.xticks([])
plt.yticks([])
plt.show()

Sommaire

Dans ce laboratoire, nous avons appris à initialiser K-Means++ à l'aide de la bibliothèque scikit-learn en Python. Nous avons généré des données d'échantillonnage, calculé les graines à partir de K-Means++ et tracé les graines d'initialisation en même temps que les données d'échantillonnage. K-Means++ est un algorithme populaire pour regrouper des données en fonction de leurs similitudes, et il est utilisé comme initialisation par défaut pour k-means.