Implement K-means clustering: (1) Randomly initialize k centroids, (2) Assign each point to nearest centroid, (3) Update centroids to mean of assigned points, (4) Repeat until convergence. Visualize each iteration with matplotlib (points colored by cluster, centroids as X). Test with k=3 on blob dataset. Show elbow method for choosing k.