---
kind: concept
slug: hierarchical-clustering
title: Hierarchical clustering
summary: >-
  Grouping rows into nested clusters that form a tree, so each split can be inspected and no cluster count is fixed in advance. Covers mixed numeric and categorical tables, where the one paper here reports a pretopology-based tree (PretopoMD) with mixed results against Gower-based and embedding-based baselines.
tags: [clustering, hierarchy, mixed-data]
papers: ["2512.03070"]
related: [clustering-evaluation, dimensionality-reduction, k-means-clustering, spectral-clustering]
status: draft
updated_at: 2026-11-06
---

## Overview

Hierarchical clustering arranges groups in a tree, so a user can read the
structure at several levels instead of picking one flat partition. The paper
motivates its method with exactly this property: hierarchical, explainable
outputs matter for decisions [arxiv:2512.03070 §1] [arxiv:2512.03070 §8.5].

Most clustering methods assume a Euclidean space, so they do not apply
directly to tables that mix numeric and categorical columns [arxiv:2512.03070
§1] [arxiv:2512.03070 §2]. The one source on this page targets that case.
Its method is the only tree-producing variant with a card here. Hierarchical
clustering in general (linkage rules, dendrogram cuts and similar) is not
covered by any card yet, so this page will grow as more papers are compiled.

## Variants

### PretopoMD: pretopology-based hierarchy

The paper's own method. It works on the raw mixed columns, without a shared
numeric space. Single rows seed sets, each set is grown to a fixed point under
a pseudoclosure operator, and the resulting sets are arranged into a tree by
attraction between them [arxiv:2512.03070 §4.8]. The paper gives the
pretopological definitions in words, with no numbered equation for the
attraction step [arxiv:2512.03070 §4.8]. Card: [Mixed Data Clustering Survey
and Challenges](/papers/2512.03070).

It takes no cluster count k, and the paper's own table of method properties
marks it as needing no k [arxiv:2512.03070 tab. 2] [arxiv:2512.03070 §4.8].
Its missing-value handling is not listed in that table [arxiv:2512.03070 tab.
2].

Reported results are mixed. On Penguins it gives CH 105.17 with two clusters
[arxiv:2512.03070 tab. 6] [arxiv:2512.03070 §7.3]. On Heart Disease it gives
CH 67.88 and a Davies-Bouldin of 1.31, the paper's text reports clusters of
206 and 64 rows [arxiv:2512.03070 tab. 8] [arxiv:2512.03070 §7.3]. On the
1000-row sparse synthetic case it has a negative Silhouette
[arxiv:2512.03070 tab. 12].

### Tandem pretopology variants (FAMD, UMAP, PaCMAP)

The paper calls these Pretopo-FAMD, Pretopo-UMAP and Pretopo-PaCMAP. Each
first embeds the mixed table in a Euclidean space and then runs the
pretopology procedure on that embedding [arxiv:2512.03070 §7.3]
[arxiv:2512.03070 §3.1] [arxiv:2512.03070 §3.3] [arxiv:2512.03070 §3.4]. The
paper does not state whether these tandem variants return a tree, so this
page does not claim one. The tandem variants win some tables and lose others;
see the results under "When to use which".

### Gower-based hierarchical method (Phillip and Ottaway)

A baseline built on Gower similarity for mixed data [arxiv:2512.03070 §4.6].
This page does not state its linkage rule, because the source does not
record one. Across the benchmark it is competitive on Silhouette with Gower
distance: on Heart Disease it reaches 0.457 against PretopoMD's 0.416, while
PretopoMD has the higher CH and lower Davies-Bouldin [arxiv:2512.03070 tab.
8]. Baselines in that comparison were run with k chosen by the Elbow method
[arxiv:2512.03070 §7.3].

### Named but not covered

The paper's related work names DIVCLUS-T and Unsupervised Binary Trees as
further tree-based methods for comparison [arxiv:2512.03070 §4.8]. No card
exists for either, so this page says nothing about how they work or perform.

## When to use which

| Situation | Use | Why |
|---|---|---|
| Mixed numeric and categorical table, k unknown, a tree you can inspect is wanted | PretopoMD | Needs no k and builds a tree [arxiv:2512.03070 §4.8] [arxiv:2512.03070 tab. 2]. Results depend on the dataset; it was not the best row on every table [arxiv:2512.03070 §7.3]. |
| Mixed table and you need a Gower-distance hierarchy baseline to compare against | Gower-based method (Phillip and Ottaway) | Competitive Gower Silhouette on Heart Disease [arxiv:2512.03070 tab. 8]. Its k is set by the Elbow method [arxiv:2512.03070 §7.3]. |
| Very many rows and a tight memory budget | Check the scaling figures before choosing the pretopology family | The paper reports pretopology memory grows faster with rows than most baselines [arxiv:2512.03070 §7.1.1] [arxiv:2512.03070 fig. 4]. |
| Choosing k by Elbow is acceptable but time is tight | A method that does not need k | The paper says the Elbow step can cost more time than clustering itself [arxiv:2512.03070 §7.1.3]. |
| Data with missing values | Verify before use | The paper's property table lists no missing-value handling for the pretopology method [arxiv:2512.03070 tab. 2]. |
| Numeric-only data | Not covered by this page | The paper's motivation is mixed tables [arxiv:2512.03070 §1]. |

## Implementation sketch

The steps below follow the paper's verbal description of PretopoMD. The
paper gives no formula for attraction, no rule for overlapping sets and no
parameter values for the pretopology method [arxiv:2512.03070 §4.8]. Any
implementation must fill those in from elsewhere and check the result against
the paper's tables.

```pseudocode
# Pretopology-based hierarchy over the rows of a mixed table
# [arxiv:2512.03070 §4.8]
# Input:  N rows, with numeric and categorical columns
# Output: sets of rows arranged as a tree

def pretopo_hierarchy(rows, graphs, thresholds):
    # One weighted directed graph and threshold per family of tests
    # (the families are described in words, not as formulas)
    seeds = [{x} for x in rows]

    # Grow each seed to a fixed point under the pseudoclosure, where a row
    # joins set A when a positive DNF over the graph tests holds
    closures = [fixed_point(pseudoclosure, A, graphs, thresholds)
                for A in seeds]

    # Arrange sets into a tree by attraction between them
    # (attraction has no formula in the paper)
    return arrange_as_tree(closures, attraction)
```

## Contradictions

- **Summary versus tables.** The conclusion says the PaCMAP variant performs
  best "consistently" [arxiv:2512.03070 §9]. The tables do not support this on
  every dataset: Pretopo-UMAP is best on the 10-cluster synthetic case
  [arxiv:2512.03070 tab. 10], and Pretopo-FAMD is best on Penguins by
  Calinski-Harabasz [arxiv:2512.03070 tab. 6]. This page uses the tables.
- **Paper and linked code.** The paper's linked code is not used as a source
  here. Its main repository returned "Repository not found" at compile time,
  and the card records further differences between the paper's description and
  the code. Implementations that follow only the paper's text may not reproduce
  its tables. See the card's "Paper vs code" section
  [arxiv:2512.03070 §4.8].

## Papers

- [Mixed Data Clustering Survey and Challenges](/papers/2512.03070): survey and
  benchmark of clustering for mixed numeric and categorical tables, with the
  PretopoMD tree-producing method and a pretopology-based tandem family.
