CLASSIX documentation

Fast, scalable, explainable clustering

CLASSIX turns sorted data into interpretable clusters.

CLASSIX combines a familiar scikit-learn-like API with a two-stage sorting, aggregation, and merging workflow. It is designed for large exploratory clustering tasks where speed and explanation both matter.

1SortPCA, norm, sum, or metric-aware order
2AggregateGroup nearby samples around starting points
3MergeConnect groups by distance or density
4ExplainInspect groups, paths, and assignments

CLASSIX is a fast, scalable, and explainable clustering package with a scikit-learn-like estimator interface. The algorithm is built around a simple two-stage idea:

  1. Aggregation sorts the data and greedily groups nearby samples around representative starting points.

  2. Merging connects those aggregation groups into final clusters by either a distance criterion or, for Euclidean data, a density-overlap criterion.

This design gives CLASSIX its main strengths: it is easy to tune, uses only a small number of interpretable parameters, can process large datasets with low memory overhead, and can explain cluster assignments through groups, starting points, and connecting paths.

Highlights

Small parameter surface

Start with radius and minPts instead of selecting the number of clusters in advance.

Fast sorted aggregation

Reduce the clustering problem to representative groups before the final merge step.

Multiple metrics

Use Euclidean, Manhattan, or Tanimoto distance without leaving the CLASSIX estimator workflow.

Readable explanations

Trace samples through groups, starting points, connected paths, and final cluster labels.

Compared with common clustering algorithms, CLASSIX is designed for the intersection of speed, simple tuning, and interpretability. It does not require n_clusters like k-means, it keeps an explicit explanation structure that many density methods do not expose, and it can use sorted aggregation to reduce the amount of work carried into the merge stage.

Introductory video

The short video below gives a visual introduction to the idea behind CLASSIX: sorting data, aggregating points around starting points, and merging those groups into explainable clusters. It is a useful companion to the examples in this documentation because it shows why CLASSIX keeps intermediate groups available for interpretation instead of returning only final labels.

When to use CLASSIX

CLASSIX is especially useful when you need a clustering method that is fast enough for large exploratory workflows but still transparent enough to explain. It is a good fit for numerical feature data, low-dimensional segmentation tasks, large scatter-like datasets, and non-negative binary or count vectors where Tanimoto distance is meaningful.

The two most important parameters are:

radius

Controls how far a sample may be from a starting point during aggregation. Smaller values create more groups and finer clusters; larger values create fewer, coarser groups.

minPts

Sets the minimum valid cluster size. Clusters smaller than this threshold are dissolved and their groups are reassigned when possible.

Contents

API Reference

Project

Indices and tables

_images/nla_group.png