Expand description
k-Medoids Clustering with the FasterPAM Algorithm
For details on the implemented FasterPAM algorithm, please see:
Erich Schubert, Peter J. Rousseeuw
Fast and Eager k-Medoids Clustering:
O(k) Runtime Improvement of the PAM, CLARA, and CLARANS Algorithms
Information Systems (101), 2021, 101804
https://doi.org/10.1016/j.is.2021.101804 (open access)
Erich Schubert, Peter J. Rousseeuw:
Faster k-Medoids Clustering: Improving the PAM, CLARA, and CLARANS Algorithms
In: 12th International Conference on Similarity Search and Applications (SISAP 2019), 171-187.
https://doi.org/10.1007/978-3-030-32047-8_16
Preprint: https://arxiv.org/abs/1810.05691
This is a port of the original Java code from ELKI to Rust. But it does not include all functionality in the original benchmarks.
If you use this in scientific work, please consider citing above articles.
§Example
Given a dissimilarity matrix of size 4 x 4, use:
let data = ndarray::arr2(&[[0,1,2,3],[1,0,4,5],[2,4,0,6],[3,5,6,0]]);
let mut meds = kmedoids::random_initialization(4, 2, &mut rand::thread_rng());
let (loss, assi, n_iter, n_swap): (f64, _, _, _) = kmedoids::fasterpam(&data, &mut meds, 100);
println!("Loss is: {}", loss);
Re-exports§
pub use crate::arrayadapter::ArrayAdapter;
Modules§
- arrayadapter
- Adapter trait for accessing different types of arrays.
Functions§
- alternating
- Run the Alternating algorithm, a k-means-style alternate optimization.
- dynmsc
- Run the DynMSC algorithm.
- fastermsc
- Run the FasterMSC algorithm.
- fasterpam
- Run the FasterPAM algorithm.
- fastmsc
- Run the FastMSC algorithm, which yields the same results as the original PAMMEDSIL.
- fastpam1
- Run the FastPAM1 algorithm, which yields the same results as the original PAM.
- first_k
- Use the first objects as initial medoids.
- medoid_
silhouette - Compute the Medoid Silhouette of a clustering.
- pam
- Run the original PAM algorithm (BUILD and SWAP).
- pam_
build - Run the original PAM BUILD algorithm.
- pam_
swap - Run the original PAM SWAP algorithm (no BUILD, but given initial medoids).
- pammedsil
- Run the original PAM BUILD algorithm combined with the PAMMEDSIL SWAP.
- pammedsil_
swap - Run the original PAMMEDSIL SWAP algorithm (no initialization, but given initial medoids).
- pamsil
- Run the original PAM BUILD algorithm combined with the PAMSIL SWAP.
- pamsil_
swap - Run the original PAMSIL SWAP algorithm (no BUILD, but given initial medoids).
- par_
fasterpam - Run the FasterPAM algorithm (parallel version).
- par_
silhouette - Compute the Silhouette of a strict partitional clustering (parallel implementation).
- rand_
fasterpam - Run the FasterPAM algorithm with additional randomization.
- random_
initialization - Random initialization (requires the
rand
crate) - silhouette
- Compute the Silhouette of a strict partitional clustering.