Hierarchical clustering is an unsupervised machine learning algorithm that groups similar objects into clusters. It involves creating clusters with a predominant ordering from top to bottom, similar to how files are organized in a hierarchy on a hard disk. The algorithm starts by treating each object as an individual cluster, then iteratively merges the two closest clusters until all clusters have been merged into a single cluster representing the entire dataset. This process can be visualized using a dendrogram, which is a tree diagram that shows the hierarchical relationships between clusters.