Clustering is an unsupervised machine learning technique that groups similar objects together. There are several clustering techniques including partitioning methods like k-means, hierarchical methods like agglomerative and divisive clustering, density-based methods, graph-based methods, and model-based clustering. Clustering is used in applications such as pattern recognition, image processing, bioinformatics, and more to split data into meaningful subgroups.