For changes to the main Rust package, please see https://github.com/kno10/rust-kmedoids/blob/main/CHANGELOG.md
- no changes, but rebuild binary packages because of compile issue issue in PyO3 PyO3/pyo3#4757
- no functionality changes
- numpy 2.0 and Python 3.13 compatibility
- update to pyo3 0.23, numpy 0.23
- fix clippy warnings
- update to pyo3 0.21, numpy 0.21
- update github action for python 3.13 and musllinux
- DynMSC: best loss reported incorrectly if best k=2
- add minimum k parameter
- bump rayon version (no changes)
- use pointer-sized np.uintp type for medoids, for wasm32 target that should match Rust usize.
- add DynMSC, Silhouette clustering with optimal number of clusters
- update dependency versions
- fix silhouette evaluation for k > 2 (in Rust)
- use np.unique in Python wrapper to ensure labels are 0..k
- fix predict for non-precomputed distances
- add CITATION.cff for github
- update dependency versions
- drop a leftover println, remove Display/Debug traits
- optimize marginally the MSC loss function computation
- fix return value inconsistency in Python wrapper with n_cpu set
- add clustering by optimizing the Silhouette: PAMSIL
- add medoid silhouette
- add medoid silhouette clustering: PAMMEDSIL, FastMSC, FasterMSC
- Improved platform support (prebuilt for manylinux, OSX, Windows) by David Muhr
- Rust: small but fix in PAM BUILD (ignoring the first object)
- Rust: small bug fix in PAM BUILD (noticable for tiny data sets with large k only)
- Rust: return less than k centers in BUILD if the total deviation already is 0 (less than k unique points)
- documentation improvement and packaging improvements in Python bindings
- fix missing import of warnings on bad parameters
- use "choice" instead of "randint" in Python initialization code
- no changes to Rust side, so no 0.3.1 of the Rust module
- add a sklearn compatible API (but keep sklearn an optional dependency)
- improve documentation and installation instructions
- add MNIST example
- add integration tests
- really fix incorrect call to numpy random for seeding
- fix incorrect call to numpy random
- make KMedoidsResult a native Python object, pass a tuple from Rust
- always use i64/f64 loss, even for i32/f32 input
- add random shuffling support
- add parallelization support
- update reference with published journal version
- update dependency versions (no changes)