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 (2023; <doi:10.1111/bmsp.12315>). The exact algorithms require that an integer linear programming solver is installed, either the GNU linear programming kit (<https://www.gnu.org/software/glpk/glpk.html>) together with the interface package 'Rglpk' (<https://cran.R-project.org/package=Rglpk>), or the SYMPHONY ILP solver (<https://github.com/coin-or/SYMPHONY>) together with the interface package 'Rsymphony' (<https://cran.r-project.org/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 (2023). 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.1
Depends: R (≥ 3.6.0)
Imports: Matrix, RANN (≥ 2.6.0)
Suggests: knitr, palmerpenguins, Rglpk, rmarkdown, Rsymphony, testthat
Published: 2023-10-26
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 hhu.de>
BugReports: https://github.com/m-Py/anticlust/issues
License: MIT + file LICENSE
URL: https://github.com/m-Py/anticlust
NeedsCompilation: yes
SystemRequirements: The exact (anti)clustering algorithms require that either the GNU linear programming kit (GLPK library) is installed (<http://www.gnu.org/software/glpk/>) or the SYMPHONY open source MILP solver (<https://github.com/coin-or/SYMPHONY>). Rendering the vignette requires pandoc (<https://pandoc.org/>).
Citation: anticlust citation info
CRAN checks: anticlust results

Documentation:

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

Downloads:

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

Reverse dependencies:

Reverse imports: CEGO

Linking:

Please use the canonical form https://CRAN.R-project.org/package=anticlust to link to this page.