Es un algoritmo que busca construir una jerarquía de agrupamientos. Puede ser dividido en dos categorías: métodos aglomeradores en el que cada observación inicia en su propia agrupación y los pares de agrupamientos son fusionados a medida que se asciende en la jerarquía; y métodos divisivos en los que todas las observaciones inician en un agrupamiento y se van haciendo divisiones a medida que se desciende en la jerarquía