This document discusses hierarchical clustering algorithms. It begins by defining hierarchical clustering as producing a hierarchy of clusterings rather than a single partitioning. There are two main types of hierarchical algorithms: agglomerative, which start with each data point as a separate cluster and merge them iteratively, and divisive, which start with all points in one cluster and split them iteratively.
The document focuses on agglomerative algorithms. It describes the basic agglomerative algorithm, which initializes each point as a cluster, calculates the similarity between all cluster pairs at each step, and merges the most similar pair. This enforces the nesting property, where clusters merged at one step remain together in subsequent steps. However, problems with agglomerative