Slide 41
Slide 41 text
Cool
clustering
algorithm
def cluster(data, k, max_it=1000):
labeled = np.append(data, np.zeros((len(data), 1)), axis=1)
random_pts = np.random.choice(len(labeled), k, replace=False
centers = labeled[random_pts]
centers[:, -1] = range(1, k + 1) # Assign labels
it = 0
old_centers = None
while it < max_it and not np.array_equal(old_centers, centers):
it += 1
old_centers = np.copy(centers)
update_labels(labeled, centers)
update_centers(labeled, centers)