Prépa Code Connexion Inscription

Exercices de programmation pour classes préparatoires

← Retour aux exercices

k-moyennes : une iteration

python ★★★★☆

L'algorithme des k-moyennes (k-means) regroupe un nuage de points en k clusters. A chaque iteration :

  1. Chaque point est affecte au cluster dont le centre est le plus proche (distance euclidienne).
  2. Chaque centre est deplace au barycentre (moyenne) des points qui lui sont affectes.

Ecrire une fonction kmeans_etape(points, centres) qui effectue une seule iteration et renvoie la nouvelle liste de centres obtenus.

Cas particulier : si un cluster se retrouve vide (aucun point ne lui est affecte), son centre conserve les memes coordonnees (converties en liste [x, y]).

En cas d'egalite de distance entre un point et plusieurs centres, affecter le point au centre d'indice le plus petit.

Exemples

AppelRésultat attendu
kmeans_etape([(0, 0), (2, 0)], [(0, 0), (2, 0)]) [[0.0, 0.0], [2.0, 0.0]]
kmeans_etape([(0, 0), (0, 2), (10, 10), (10, 12)], [(0, 0), (10, 10)]) [[0.0, 1.0], [10.0, 11.0]]

Votre code

Connectez-vous pour soumettre du code.