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 (<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 (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
[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,
https://m-py.github.io/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:
Downloads:
Reverse dependencies:
Linking:
Please use the canonical form
https://CRAN.R-project.org/package=anticlust
to link to this page.