# What is k-means clustering?

K-Means Clustering is an Unsupervised Learning Algorithm, which groups the unlabeled dataset into different clusters. Here K defines the number of pre-defined clusters that need to be created in the process, as if K=2, there will be two clusters, and for K=3, there will be three clusters, and so on.

How does the K-Means Algorithm Work?

The working of the K-Means algorithm is explained in the below steps:

Step-1: Select the number K to decide the number of clusters.

Step-2: Select random K points or centroids. (It can be other from the input dataset).

Step-3: Assign each data point to their closest centroid, which will form the predefined K clusters.

Step-4: Calculate the variance and place a new centroid of each cluster.

Step-5: Repeat the third steps, which means reassign each datapoint to the new closest centroid of each cluster.

Step-6: If any reassignment occurs, then go to step-4 else go to FINISH.

# K-means Clustering — Example :

It is a simple example to understand how k-means works. In this example, we are going to first generate a 2D dataset containing 4 different blobs and after that will apply the k-means algorithm to see the result.

First, we will start by importing the necessary packages −

`%matplotlib inlineimport matplotlib.pyplot as pltimport seaborn as sns; sns.set()import numpy as npfrom sklearn.cluster import KMeans`

The following code will generate the 2D, containing four blobs −

`from sklearn.datasets.samples_generator import make_blobsX, y_true = make_blobs(n_samples = 400, centers = 4, cluster_std = 0.60, random_state = 0)`

Next, the following code will help us to visualize the dataset −

`plt.scatter(X[:, 0], X[:, 1], s = 20);plt.show()`

Next, make an object of KMeans along with providing number of clusters, train the model and do the prediction as follows −

`kmeans = KMeans(n_clusters = 4)kmeans.fit(X)y_kmeans = kmeans.predict(X)`

Now, with the help of the following code, we can plot and visualize the cluster’s centers picked by k-means Python estimator −

`from sklearn.datasets.samples_generator import make_blobsX, y_true = make_blobs(n_samples = 400, centers = 4, cluster_std = 0.60, random_state = 0)`

Next, the following code will help us to visualize the dataset −

`plt.scatter(X[:, 0], X[:, 1], c = y_kmeans, s = 20, cmap = 'summer')centers = kmeans.cluster_centers_plt.scatter(centers[:, 0], centers[:, 1], c = 'blue', s = 100, alpha = 0.9);plt.show()`

# Use-Cases in the Security Domain

Here is a list of some of the interesting use cases of K-means in Security Domain:

1. Identifying crime localities

With data related to crimes available in specific localities in a city, the category of crime, the area of the crime, and the association between the two can give quality insight into crime-prone areas within a city or a locality.

2. Insurance fraud detection

Machine Learning has a critical role to play in fraud detection and has numerous applications in automobile, healthcare, and insurance fraud detection. utilizing past historical data on fraudulent claims, it is possible to isolate new claims based on its proximity to clusters that indicate fraudulent patterns. Since insurance fraud can potentially have a multi-million dollar impact on a company, the ability to detect frauds is crucial.

3. Cyber-profiling criminals

Cyber profiling is the process of collecting data from individuals and groups to identify significant correlations. The idea of cyber profiling is derived from criminal profiles, which provide information on the investigation division to classify the types of criminals who were at the crime scene.

4. Call record detail analysis

A call detail record (cdr) is the information captured by telecom companies during the call, SMS, and internet activity of a customer. This information provides greater insights about the customer’s needs when used with customer demographics. We can cluster customer activities for 24 hours by using the unsupervised k-means clustering algorithm. It is used to understand segments of customers with respect to their usage by hours.

5. Automatic clustering of it alerts

Large enterprise infrastructure technology components such as network, storage, or database generate large volumes of alert messages. Because alert messages potentially point to operational issues, they must be manually screened for prioritization for downstream processes. Clustering of data can provide insight into categories of alerts and mean time to repair, and help in failure predictions.

THANKYOU