Skip to main content

torsh_cluster/initialization/
mod.rs

1//! Initialization strategies for clustering algorithms
2
3pub mod forgy;
4pub mod kmeans_plus_plus;
5pub mod random_partition;
6
7pub use forgy::Forgy;
8pub use kmeans_plus_plus::KMeansPlusPlus;
9pub use random_partition::RandomPartition;
10
11use crate::error::ClusterResult;
12use torsh_tensor::Tensor;
13
14/// Trait for initialization strategies
15pub trait InitializationStrategy {
16    /// Initialize cluster centers
17    fn initialize(
18        &self,
19        data: &Tensor,
20        n_clusters: usize,
21        seed: Option<u64>,
22    ) -> ClusterResult<Tensor>;
23
24    /// Get strategy name
25    fn name(&self) -> &str;
26}