measuring performance
[imago.git] / src / k_means.py
index f429824..119f576 100644 (file)
@@ -4,11 +4,11 @@ import random
 
 def cluster(k, d, data, i_centers=None):
     """Find *k* clusters on *d* dimensional *data*."""
 
 def cluster(k, d, data, i_centers=None):
     """Find *k* clusters on *d* dimensional *data*."""
-    borders = [(min(p[0][i] for p in data), max(p[0][i] for p in data))
-               for i in range(d) ]
     if i_centers:
         old_centers = i_centers
     else:
     if i_centers:
         old_centers = i_centers
     else:
+        borders = [(min(p[0][i] for p in data), max(p[0][i] for p in data))
+               for i in range(d)]
         old_centers = [[(h - l) * random.random() + l for (l, h) in borders]
                for _ in range(k)]
     clusters, centers = next_step(old_centers, data)
         old_centers = [[(h - l) * random.random() + l for (l, h) in borders]
                for _ in range(k)]
     clusters, centers = next_step(old_centers, data)