Clustering algorithms group similar objects together by identifying commonalities between data points. There are several types of clustering algorithms, including connectivity-based hierarchical clustering which connects objects into clusters based on distance; centroid-based clustering which represents clusters by central vectors like k-means; distribution-based clustering which models clusters as belonging to the same statistical distribution; and density-based clustering which identifies clusters as dense regions separated by sparse areas. Clustering has applications across many domains including biology, market research, medicine, social science, and computer science.