anticlust
anticlust partitions a pool of elements into anticlusters by maximizing heterogeneity within subsets to produce partitions that are mutually similar for applications such as balanced assignments and cross-validation.
Key Features:
- Reversal of clustering objectives: Reverses traditional clustering objectives such as intra-cluster variance (as used in k-means) and the sum of pairwise distances within clusters to maximize within-subset heterogeneity.
- Dual anticlustering criteria: Implements two primary anticlustering criteria by reversing the methodologies of k-means clustering and cluster editing.
- Implementation: Provided as an open-source extension to the R programming language.
- Performance: Simulation studies reported superior performance relative to random assignment and matching in producing balanced partitions.
Scientific Applications:
- Educational assignment: Assigns students to parallel courses to balance groups in terms of skills or knowledge levels.
- Experimental psychology: Assembles equivalent stimulus sets (e.g., from norming data) across experimental conditions to support validity and reliability.
- Test construction: Splits achievement tests into parts with equal item difficulty and discrimination.
- Cross-validation data partitioning: Divides large datasets into subsets for cross-validation while maintaining similar statistical properties across subsets.
Methodology:
Computationally reverses k-means and cluster-editing objectives by maximizing intra-cluster variance or the sum of pairwise distances within clusters, implementing two anticlustering criteria derived from those methods.
Topics
Details
- License:
- MIT
- Tool Type:
- library
- Programming Languages:
- R, C
- Added:
- 1/18/2021
- Last Updated:
- 1/23/2021
Operations
Publications
Papenberg M, Klau GW. Using anticlustering to partition data sets into equivalent parts.. Psychological Methods. 2021;26(2):161-174. doi:10.1037/met0000301. PMID:32567870.
DOI: 10.1037/MET0000301
PMID: 32567870
Links
Repository
https://github.com/m-Py/anticlustIssue tracker
https://github.com/m-Py/anticlust/issues