Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Implement K-Means Clustering

MediumPython00:00
Practice interviewer
In session
5 left
00:00

Your question is Implement K-Means Clustering. Start with the requirements on the right.

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.

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):
Your solutionPython 3
You need to log in / sign up to run or submit.
Run your code to see test output