Data clustering is an unsupervised technique that distributes unlabeled data into groups based upon dissimilarity measures. Clustering techniques are applied to a wide variety of application such as image segmentation, data compression, pattern recognition, and machine learning.