# K-Means

## K-Means :

K-means is a popular clustering algorithm that groups similar data points together into clusters. It is an iterative process that involves dividing a dataset into a specified number of clusters (K) and then assigning each data point to the cluster with the closest mean.
For example, let’s say we have a dataset of five 2D points, represented by the coordinates (x,y): (1,2), (3,4), (5,6), (7,8), and (9,10). If we want to group these points into two clusters, we can use the K-means algorithm to find the cluster centers and assign each point to the closest cluster.
First, we need to randomly select two points as the initial cluster centers. Let’s say we choose (1,2) and (9,10) as the initial cluster centers. We then calculate the distance between each point and the two cluster centers using the Euclidean distance formula. This will give us the following distances:
Point (1,2): distance to (1,2) = 0, distance to (9,10) = 13.4
Point (3,4): distance to (1,2) = 2.8, distance to (9,10) = 10.6
Point (5,6): distance to (1,2) = 5.7, distance to (9,10) = 8.6
Point (7,8): distance to (1,2) = 8.5, distance to (9,10) = 6.4
Point (9,10): distance to (1,2) = 13.4, distance to (9,10) = 0
Since the distances are different, each point will be assigned to the cluster with the closest center. In this case, (1,2) and (3,4) will be assigned to the first cluster, while (5,6), (7,8), and (9,10) will be assigned to the second cluster.
Once the initial assignment is made, the algorithm will then update the cluster centers by calculating the mean of all the points assigned to each cluster. In this example, the first cluster center will be updated to (2,3) and the second cluster center will be updated to (7,8).
The K-means algorithm then repeats this process of assignment and update until the cluster centers converge, meaning they no longer change with each iteration. This can be determined using a stopping criterion, such as a maximum number of iterations or a threshold for the change in the cluster centers.
Once the algorithm has converged, the final cluster centers and assignments will be the result of the K-means algorithm. In our example, the final cluster centers would be (2,3) and (7,8) and the final assignments would be (1,2) and (3,4) in the first cluster, and (5,6), (7,8), and (9,10) in the second cluster.
Another example of K-means clustering can be seen in the context of customer segmentation. Imagine a retail company with a large customer base that wants to group its customers into different segments based on their purchasing behavior. The company collects data on the products each customer has purchased, the amount they have spent, and the frequency of their purchases.
Using the K-means algorithm, the company can group its customers into different segments, such as high-value customers, frequent shoppers, and occasional buyers. The algorithm will use the data on customer purchases to find the cluster centers for each segment and assign each customer to the appropriate cluster.
The K-means algorithm is a simple and effective way to group similar data points together into clusters. It can be applied to a wide range of problems, from clustering 2D points to customer segmentation. By iteratively updating the cluster centers and assignments, K-means can quickly and accurately group data into meaningful clusters.