parameters
[imago.git] / src / k_means.py
index 119f576..5260601 100644 (file)
@@ -15,8 +15,10 @@ def cluster(k, d, data, i_centers=None):
     while delta(old_centers, centers) > 0:
         old_centers = centers
         clusters, centers = next_step(old_centers, data)
-
-    return clusters
+    dst = lambda c, p: sum((a - b) ** 2 for (a, b) in zip(p, c)) ** 0.5
+    score = sum([sum(map(lambda p: dst(c, p[0]), clus)) for clus, c in
+                 zip(clusters, centers)])
+    return clusters, score
 
 def next_step(centers, data):
     """Compute new clusters and centers."""