The k-means algorithm
Assignments
Assume the data lives in a
Euclidean space.
Assume we want k classes.
Assume we start with randomly
located cluster centers
    The algorithm alternates between
two steps:
     Assignment step: Assign each
datapoint to the closest cluster.
     Refitting step: Move each cluster
center to the center of gravity of
the data assigned to it.
Refitted
means