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.
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:
Aggregation sorts the data and greedily groups nearby samples around representative starting points.
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:
radiusControls 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.
minPtsSets the minimum valid cluster size. Clusters smaller than this threshold are dissolved and their groups are reassigned when possible.
Contents
- Quick start
- Features and concepts
- Examples
- Example 1: Fast clustering with a scikit-learn-like API
- Example 2: Non-convex structure with density merging
- Example 3: Explain why two points are in the same cluster
- Example 4: Manhattan distance for L1 geometry
- Example 5: Tanimoto distance for binary or count data
- Practical comparison with common alternatives
- Clustering Tutorial
- MATLAB’s users
- Performance Comparison
- Outlier Detection
API Reference
Project
Indices and tables