K-MEANS CLUSTERING ALGORITHM

The most often used clustering algorithm is K-means clustering. It is the simplest unsupervised learning method and is centroid-based. The goal of this approach is to reduce the variation of data points inside a cluster. It's also how most people get their first taste of unsupervised machine learning. Because it iterates over all of the data points, K-means is best employed on smaller data sets. That implies it will take longer to categorize data points if the data collection has a big number of them. Because k-means clumps data points in this manner, it does not scale well.
K-Means clustering is the most common unsupervised machine learning algorithm. It is widely used for many applications which include- 1. Image segmentation 2. Customer segmentation 3. Species clustering 4. Anomaly detection 5. Clustering languages
K-Means Clustering intuition
K-Means clustering is used to identify and infer inherent categories within an unlabeled dataset. It employs centroid-based clustering. A centroid is a data point at the center of a cluster. Clusters are represented by a centroid in centroid-based clustering. It is an iterative technique that determines similarity based on how near a data point is to the cluster's centroid. The following is how K-Means clustering works: To get a final result, the K-Means clustering technique employs an iterative approach. As input, the method requires the number of clusters K and the data set. Each data point's data set is a collection of features. The process begins with estimations for the first K centroids.
The algorithm then cycles through two steps: The first stage is data assignment. One of the clusters is defined by each centroid. Each data point is allocated to its nearest centroid based on the squared Euclidean distance in this stage. So, if set C is a collection of centroids, then each data point is allocated to a cluster based on the shortest Euclidean distance. The second step is to update the Centroid. The centroids are recomputed and updated in this stage. This is accomplished by averaging all data points allocated to that centroid's cluster. The algorithm then loops back and forth between steps 1 and 2 until a stopping requirement is reached. Stopping criteria indicate that no data points affect the clusters, that the sum of the distances is reduced, or that a certain number of iterations has been attained. This algorithm will always provide a result. The conclusion may be a local optimum, which means that evaluating more than one run of the method with randomized starting centroids may yield a better result. The K-Means idea may be expressed using the diagram below.

Choosing the value of K
The K-Means algorithm is based on determining the number of clusters and data labels for a given value of K. To determine the number of clusters in the data, we must run the K-Means clustering method for various values of K and compare the results. As a result, the performance of the K-Means algorithm is determined by the value of K. We should select the ideal K value that provides the best performance. There are several methods for determining the ideal value of K. The elbow approach, which is explained here, is the most commonly used technique.
The elbow method
In K-means clustering, the elbow approach is used to estimate the ideal number of clusters. The elbow technique depicts the value of the cost function as a function of K. The elbow approach is seen in the diagram below. As we can see, as K grows, the average distortion decreases. Each cluster will thus have fewer member instances, which will be closer to their respective centroids. However, as K grows, the benefits in average distortion will diminish. The value of K at which the improvement in distortion decreases the maximum is known as the elbow, and it is at this value that we should cease splitting the data into additional clusters.

THE MAIN CODE OF K-MEANS CLUSTERING ALGORITHM
Full Code Of Implementing K-means Clustering Algorithm
It's time to put our coding hats on! In this part, we'll look at how to apply Support Vector Regression with a dataset. In this case, we must forecast an employee's wage based on a few independent variables. This is a standard HR analytics project! (Download the dataset here)
from sklearn.cluster import KMeans