Quand K-Means échoue
Fait partie de la section Apprentissage non supervisé du Journey Machine Learning de Coddy. Leçon 14 sur 51.
K-means représente chaque cluster comme une boule ronde autour de son centre. Les fléchettes forment une cible avec un anneau autour, et k-means les coupe en deux :
Chaque point est associé à son centre le plus proche, donc la frontière entre deux groupes est une droite située à mi-chemin entre les centres. Aucune droite ne sépare un anneau de son milieu.
Les groupes longs, courbés ou très irréguliers posent le même problème à k-means. Il renvoie quand même des groupes, alors regarde toujours le graphique.
Défi
MoyenUn drone a repéré 200 phoques sur deux bancs de sable incurvés. Le code de démarrage dessine la vérité sur le panneau left.
- Regroupe les phoques avec k-means, k = 2.
- Sur le panneau
right, affiche chaque groupe en nuage de points, étiquetécluster 0oucluster 1. - Marque les centres avec des marqueurs noirs
"X"étiquetéscenters. Ajoute une légende, puis affiche le graphique.
Coddy décrit ton graphique et compte les phoques qui sont restés avec leur propre banc de sable. Comme ici, pour deux groupes :
Essayez vous-même
import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
from sklearn.cluster import KMeans
# 200 phoques se reposant sur deux bancs de sable incurvés, vus depuis un drone (positions en 100 m)
X, sandbar = make_moons(n_samples=200, noise=0.07, random_state=4)
# Trace les véritables bancs de sable sur ax
def draw_truth(ax):
ax.scatter(X[sandbar == 0, 0], X[sandbar == 0, 1], s=12, label="north bar")
ax.scatter(X[sandbar == 1, 0], X[sandbar == 1, 1], s=12, label="south bar")
ax.set_title("The truth")
ax.legend()
fig, (left, right) = plt.subplots(1, 2, figsize=(9, 4))
draw_truth(left)
right.set_title("K-means, k = 2")
# Écrivez votre code ci-dessous
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Apprentissage non supervisé
1Découvrir des groupes
Apprendre sans étiquettesMesurer la similaritéK-Means à la mainK-Means avec scikit-learnRécapitulatif : les membres de la salle de sport4Classification hiérarchique
Fusion étape par étapeModèles agglomératifsDendrogrammesRécapitulatif : races de chiens7L’ACP en pratique
Visualiser 64 dimensionsLes composantes comme motifsCompresser et reconstruireL’ACP avant un modèleRécapitulatif : scanner de visages10Projet : Explorateur de chiffres
Observer les chiffresRéduire avec la PCARegrouper les chiffresNommer les groupesRepérer les intrus2Choisir k
InertieLa méthode du coudeScores de silhouetteMettre à l’échelle avant le clusteringRécapitulatif : zones de livraison3Interpréter les clusters
Caractériser les clustersCentres dans les unités réellesClusters et étiquettes connuesQuand K-Means échoueRécapitulatif : dégustation de théEntraînez-vous par vous-même : Compilateur Python en ligne