← Tous les exercices
k-means : affecter puis recalculer
Partie 2 · ★★★★
Points 1D [1, 2, 9, 10, 11], centres [1, 2]. Écris affecter(points, centres) (indice du centre le plus proche de chaque point) et recalculer(points, etiq, k) (nouveau centre = moyenne des points de chaque groupe). Tu exécutes ensuite deux tours : c1 après un tour, c2 après deux.
def affecter(points, centres): return [min(range(len(centres)), key=lambda j: abs(p - centres[j])) for p in points] def recalculer(points, etiq, k): res = [] for j in range(k): g = [p for p, e in zip(points, etiq) if e == ___] res.append(sum(g) / len(g)) return res points = [1, 2, 9, 10, 11] c1 = recalculer(points, affecter(points, [1, 2]), 2) c2 = recalculer(points, affecter(points, ___), 2)
Ctrl/⌘+Entrée