anticlust: Subset Partitioning via Anticlustering

The method of anticlustering partitions a pool of elements into groups (i.e., anticlusters) with the goal of maximizing between-group similarity or within-group heterogeneity. The anticlustering approach thereby reverses the logic of cluster analysis that strives for high within-group homogeneity and clear separation between 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 main function anticlustering() gives access to exact and heuristic anticlustering methods described in Papenberg and Klau (2021; <doi:10.1037/met0000301>), Brusco et al. (2020; <doi:10.1111/bmsp.12186>), and Papenberg (2024; <doi:10.1111/bmsp.12315>). The exact algorithms require that an integer linear programming solver is installed, either the GNU linear programming kit (<>) together with the interface package 'Rglpk' (<>), or the SYMPHONY ILP solver (<>) together with the interface package 'Rsymphony' (<>). Full access to the bicriterion anticlustering method proposed by Brusco et al. (2020) is given via the function bicriterion_anticlustering(), while kplus_anticlustering() implements the full functionality of the k-plus anticlustering approach proposed by Papenberg (2024). 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.

Version: 0.8.5
Depends: R (≥ 3.6.0)
Imports: Matrix, RANN (≥ 2.6.0)
Suggests: knitr, palmerpenguins, Rglpk, rmarkdown, Rsymphony, tinytest
Published: 2024-05-05
DOI: 10.32614/CRAN.package.anticlust
Author: Martin Papenberg ORCID iD [aut, cre], Meik Michalke [ctb] (centroid based clustering algorithm), Gunnar W. Klau [ths], Juliane V. Nagel [ctb] (package logo), Martin Breuer [ctb] (Bicriterion algorithm by Brusco et al.), Marie L. Schaper [ctb] (Example data set), Max Diekhoff [ctb] (Optimal maximum dispersion algorithm)
Maintainer: Martin Papenberg <martin.papenberg at>
License: MIT + file LICENSE
NeedsCompilation: yes
SystemRequirements: The exact (anti)clustering algorithms require that either the GNU linear programming kit (GLPK library) is installed (<>) or the SYMPHONY open source MILP solver (<>). Rendering the vignette requires pandoc (<>).
Citation: anticlust citation info
CRAN checks: anticlust results


Reference manual: anticlust.pdf
Vignettes: Some best practices for anticlustering
Using categorical variables with anticlustering
Speeding up anticlustering
Using the R package anticlust for stimulus selection in experiments


Package source: anticlust_0.8.5.tar.gz
Windows binaries: r-devel:, r-release:, r-oldrel:
macOS binaries: r-release (arm64): anticlust_0.8.5.tgz, r-oldrel (arm64): anticlust_0.8.5.tgz, r-release (x86_64): anticlust_0.8.5.tgz, r-oldrel (x86_64): anticlust_0.8.5.tgz
Old sources: anticlust archive

Reverse dependencies:

Reverse imports: CEGO


Please use the canonical form to link to this page.