Subset Partitioning via Anticlustering

The method of anticlustering partitions a pool of elements into groups (i.e., anticlusters) in such a way that the between-group similarity is maximized and -- at the same time -- the within-group heterogeneity is maximized. This reverses the logic of cluster analysis that strives for high within-group homogeneity and low similarity of the different groups. Computationally, anticlustering is accomplished by maximizing instead of minimizing a clustering objective function, such as the intra-cluster variance (used in k-means clustering) or the sum of pairwise distances within clusters. The function anticlustering() implements exact and heuristic anticlustering algorithms as described in Papenberg and Klau (2020; ). The exact approach requires that the GNU linear programming kit (<>) is available and the R package 'Rglpk' (<>) is installed. Some other functions are available to solve classical clustering problems. The function balanced_clustering() applies a cluster analysis under size constraints, i.e., creates equal-sized clusters. The function matching() can be used for (unrestricted, bipartite, or K-partite) matching. The function wce() can be used optimally solve the (weighted) cluster editing problem, also known as correlation clustering, clique partitioning problem or transitivity clustering.


Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.5.6 by Martin Papenberg, 10 months ago

Report a bug at

Browse source code at

Authors: Martin Papenberg [aut, cre] , Meik Michalke [ctb] (centroid based clustering algorithm) , Gunnar W. Klau [ths] , Juliane V. Tkotz [ctb] (package logo)

Documentation:   PDF Manual  

MIT + file LICENSE license

Imports Matrix, RANN

Suggests knitr, Rglpk, rmarkdown, testthat

System requirements: The exact (anti)clustering algorithms require that the GNU linear programming kit (GLPK library) is installed (<>). Rendering the vignette requires pandoc.

See at CRAN