Unsupervised Learning techniques are designed to the reduce the dimension of a dataset. This reduction may consist of reducing either the number of features or the number of data points. This consists as a pre-processing step to the learning procedure. Clustering is a type of unsupervised learning method that aims to reduce the number of points in the dataset, which helps in understanding its underlying structure. Clustering is used in many real-life applications including recommendation engines, market and customer segmentation, search result clustering, etc.