# K-Means

Learn how to use the k-means algorithm for clustering tasks.

## We'll cover the following

The** k-means** algorithm is a popular unsupervised clustering algorithm that partitions the data into k clusters, where k is a user-specified parameter. The goal of k-means is to minimize the total within-cluster variance, also known as the inertia, which measures the compactness of the clusters.

Its simplicity and interpretability make it a great choice for customer segmentation since the different clusters can be easily explained to the marketing department.

## Classic k-means implementation

The algorithm starts by randomly initializing k centroids from the data points and then iteratively assigns each data point to the nearest centroid based on a distance metric, such as Euclidean distance. After assigning the data points, the algorithm updates the centroids by computing the mean of the data points in each cluster. This process of assigning and updating centroids is repeated until convergence, where the centroids no longer change significantly or a maximum number of iterations is reached.

During each iteration, the k-means algorithm improves the clustering solution by minimizing the within-cluster variance and maximizing the separation between clusters. However, the algorithm is sensitive to the initial centroid positions, which can lead to different clusterings. To mitigate this issue, k-means is often run multiple times with different initializations, and the best clustering solution is selected based on the minimum inertia.

Get hands-on with 1200+ tech skills courses.