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.
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.