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}