               (dissoc :positions)))))
 
 
-(defnp recenter-clusters
+(defn recenter-clusters
   "Replace cluster centers with a center computed from new positions"
   [data clusters]
   (greedy

    clusters)))


(defnp safe-recenter-clusters
  "Replace cluster centers with a center computed from new positions"
  [data clusters]
  (as-> clusters clsts


 
; Each cluster should have the shape {:id :members :center}
(defn kmeans
  "Performs a k-means clustering."
  [data k & {:keys [last-clusters max-iters] :or {max-iters 20}}]
  (let [data-iter (zip (rownames data) (matrix (get-matrix data)))
