Recent Releases of anticlust
anticlust - Version 0.8.11-1
anticlust 0.8.11-1
- Fixes some edges cases of functionality introduced in last update
- R
Published by m-Py 10 months ago
anticlust - Version 0.8.11
anticlust 0.8.11
- In
anticlustering(), argument cannot_link can now be a vector, via 93158fb98a375, inspiration thanks to @einGlasRotwein- Makes the computation potentially much faster (and does not rely on a solver) if cannnot-link constraints are induced via a grouping variable.
- R
Published by m-Py 10 months ago
anticlust - Version 0.8.10-1
anticlust 0.8.10-1
- Minor: Fixed uncatched potential error in tests for CRAN "additional issues" via 75cb7d5760be08b0bb
- R
Published by m-Py about 1 year ago
anticlust - Version 0.8.10
anticlust 0.8.10
- The commercial Gurobi solver is now available as backened for the exact anticlustering methods
- The documentation refers to a new anticlustering paper, available from bioRxiv
- R
Published by m-Py about 1 year ago
anticlust - Version 0.8.9-1
anticlust 0.8.9-1
- Minor fix in
three_phase_search_anticlustering()forobjective = "dispersion"to address CRAN issue
- R
Published by m-Py about 1 year ago
anticlust - Version 0.8.9
anticlust 0.8.9
User visible changes
categories_to_binary()no longer uses dummy coding with a reference category, but instead codes each levels of a categorical variable with a separate variable (thanks to Gunnar Klau for spotting potential problems with dummy coding).anticlustering()has newmethod = "2PML", which is an improved heuristic when using must-link constraints
- R
Published by m-Py about 1 year ago
anticlust - Version 0.8.8
anticlust 0.8.8
three_phase_search_anticlustering()implements the three phase search algorithm by Yang et al., contributed by Hannah Hengelbrock (@HanneyAI)
- R
Published by m-Py about 1 year ago
anticlust - Version 0.8.7
anticlust 0.8.7
User visible changes
anticlustering()now has an argumentmust_link, which can be used force elements into the same cluster- It is now possible that a cluster (e.g., in
anticlustering()) only has 1 member (this threw an error before)
Bug fixes
diversity_objective()is now computed correctly when a cluster only has one member (fixed via 8403fab1461b2cda8)- Fixed a memory leak in
anticlustering(..., objective = "diversity")thanks to @Hanney100 (via 24c244faf8b2c0774071)
- R
Published by m-Py over 1 year ago
anticlust - Version 0.8.6
New features
bicriterion_anticlustering()has new arguments:dispersion_distances,average_diversity,init_partitions,return.anticlustering()now has newobjective = "average-diversity"- In
anticlustering(),method = "brusco"now works forobjective = "variance"and"objective = kplus" - Added
lpSolvesolver as backend for the optimal methods, and it is now the default solver optimal_anticlustering()andoptimal_dispersion()now have an additional argumenttime_limitanticlustering()now has an argumentcannot_link, which can be used to forbid pairs of elements from being assigned to the same cluster. When used, this solves the same (NP hard) graph coloring problem asoptimal_dispersion(). Unlike the other optimal methods, it uses the Symphony solver with priority, when it is found (otherwise thelpSolve)
Bug fixes
- Bug fix in
optimal_dispersion(): Output element$edgesno longer includes edges that were investigated in the last iteration of the algorithm (and which are not relevant for finding the optimal dispersion)
Internal changes / Other
- Speed improvements for
anticlustering(..., objective = "diversity")when usingmethod = "local-maximum"andrepetitions(the restart algorithm is now entirely implemented in C and does not callmethod = "exchange"repeatedly from R) anticlustnow depends on packagelpSolve
- R
Published by m-Py over 1 year ago
anticlust - Version 0.8.5
anticlust 0.8.5
New features
optimal_anticlustering()is a new exported function that gathers all currently (and in the future) implemented optimal algorithms for anticlusteringbalanced_clustering()now has an argumentsolver, which can be used to specify the ILP solver when usingmethod = "ilp"
Internal changes
- The default selection of ILP solvers in
anticlustering(),balanced_clustering()andoptimal_dispersion()was changed due to a reoccurring CRAN issue: If both the Rglpk and the Rsymphony packages are available, the GLPK will now be prioritized. This is because the SYMPHONY solver sometimes crashes on Macs (or at least on one CRAN test station). Theoptimal_anticlustering(),optimal_dispersion(), andbalanced_clustering()functions have an argumentsolverthat can be used to circumvent this default behaviour. anticlustnow usestinytestinstead oftestthatfor unit tests.
- R
Published by m-Py almost 2 years ago
anticlust - Version 0.8.3
Documentation
- Some minor updates to documentation and vignettes
- Updating all references to the k-plus anticlustering paper after its "actual" publication:
Papenberg, M. (2024). K-plus Anticlustering: An Improved k-means Criterion for Maximizing Between-Group Similarity. British Journal of Mathematical and Statistical Psychology, 77(1), 80--102. https://doi.org/10.1111/bmsp.12315
Internal changes
fast_anticlustering()received another internal change to improve the speed of the re-computation of the objective during the optimization. In particular, updating the objective is now done by only inspecting the two clusters between which an exchange actually took place, instead of re-computing a sum across all clusters.- A bug in
fast_anticlustering()was fixed; the computation of the objective did not incoorporate the cluster sizes
- R
Published by m-Py almost 2 years ago
anticlust - Version 0.8.0
anticlust 0.8.0
New features
fast_anticlustering()now has an additional argumentexchange_partners, which can be used to pass custom exchange partners instead of using the default nearest neighbour search.-
generate_exchange_partners()is a new exported function that can be used to address the new argumentexchange_partnersinfast_anticlustering().
Internal changes
anticlustering()received internal changes to ensure that it no longer crashes the computer for about N > 250000 elements.fast_anticlustering()has been re-implemented in C, which is much faster than the previous R implementation.fast_anticlustering()now uses an alternative computation of the k-means objective, which reduces run time by an order of magnitude as compared to before.
Documentation
- Expanded documentation of
fast_anticlustering(). - The vignette "Speeding up anticlustering" has been rewritten to reflect that
fast_anticlustering()is now again the best choice for processing (very) large data sets.
- R
Published by m-Py over 2 years ago
anticlust - Version 0.7.0
- An exact ILP method is now available for maximizing the dispersion, contributed by Max Diekhoff.
optimal_dispersion()is a new exported function implementing the methodanticlustering()makes it available when usingmethod = "ilp"andobjective = "dispersion"
-
kplus_moment_variables()is a new exported function that generates k-plus variables from a data set- Offers some additional flexibility as compared to calling
kplus_anticlustering(), which generates these variables internally (e.g., use k-plus augmentation on some variables but not all -- such as binary variables)
- Offers some additional flexibility as compared to calling
categories_to_binary()is a new exported function that converts one or several categorical variables into a binary representation- Can be used to include categorical variables as part of the optimization criterion in k-means / k-plus anticlustering, see new vignette "Using categorical variables with anticlustering"
- 3 new vignettes have been added to the
anticlustdocumentation - Fixed a bug in
kplus_anticlustering()that did not correctly implementpreclustering = TRUE - It is now possible to use the SYMPHONY solver as backend for the optimal ILP methods.
- R
Published by m-Py over 2 years ago
anticlust - Version 0.6.4-3
Mostly synchronizes version number with latest commit on Github.
- R
Published by m-Py almost 3 years ago
anticlust - Version 0.6.4-2
Another problem fixed with categories
- R
Published by m-Py almost 3 years ago
anticlust - Version 0.6.4-1
fixed potential infinite loop for categories argument with uneven group sizes
- R
Published by m-Py almost 3 years ago
anticlust - Version 0.6.4
- kplus_anticlustering() now has an argument "T" instead of "moments"
- R
Published by m-Py almost 3 years ago
anticlust - Version 0.6.3
New exported function: kplus_anticlustering()
- R
Published by m-Py about 3 years ago
anticlust - Version 0.6.2
Very minor release with some changes in docs. Might be for Github only, not sure if will be pushed to CRAN.
- R
Published by m-Py about 4 years ago
anticlust - Version 0.6.0
Primary new feature: Implements the bicriterion anticlustering algorithm by Brusco, Cradit & Steinley (2020; Britisch Journal of Mathematical and Statistical Psychology). Implementation by Martin Breuer (@ManaLama).
- R
Published by m-Py over 4 years ago
anticlust - Version 0.5.7
New version, only updated the relevant Papenberg&Klau citation to its "actual" publication (not just online) in PsychMethods.
- R
Published by m-Py almost 5 years ago
anticlust - Version 0.5.2
Some new features, such as local maximum search algorithm as of classical exchange method.
- R
Published by m-Py over 5 years ago
anticlust - Version 0.5.1
Fixes a bug in anticlustering(), that led to an incorrect computation of cluster centers with option objective = "variance" for unequal cluster sizes, see 2ef6547
- R
Published by m-Py over 5 years ago
anticlust - Version 0.5.0
First version to be submitted to CRAN
- R
Published by m-Py almost 6 years ago
anticlust - Version 0.3.0
Package version associated with the submission of the manuscript »Using anticlustering to partition a stimulus pool into equivalent parts« (https://psyarxiv.com/3razc/)
- R
Published by m-Py over 6 years ago