Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started
Implement K-Means Clustering
00:00
5 left

Implement K-Means Clustering

MediumPython

Problem

Given a list of n points in d dimensions as points, an integer k, a maximum number of iterations max_iters, a tolerance tol, and an optional random seed seed, implement K-means clustering from scratch. Return the final centroids, the cluster assignment for each point, and the number of iterations performed. Use Euclidean distance, initialize centroids by sampling k distinct points, and stop when centroid movement is at most tol or when max_iters is reached. If a cluster becomes empty, reinitialize its centroid to the point farthest from its currently assigned centroid.

Constraints

  • 1 <= n <= 10^4
  • 1 <= d <= 50
  • 1 <= k <= n
  • 1 <= max_iters <= 300
  • 0 <= tol <= 1
  • All points have the same dimension

Function Signature

def k_means(points, k, max_iters=100, tol=1e-4, seed=None):
Interviewer

Your question is Implement K-Means Clustering. Start with the requirements in the Question tab.

Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.

You need to log in / sign up to run or submit.
CodePython 3
You need to log in / sign up to run or submit.Ln 2
Run your code to see test output here.