pub mod embedding;
pub mod fuzzy_graph;
pub mod label_prop;
use crate::prelude::*;
pub const UMAP_BETA1: f64 = 0.5;
pub const UMAP_BETA2: f64 = 0.9;
#[derive(Clone, Debug)]
pub struct EvocEmbeddingParams<T> {
pub n_label_prop_iter: usize,
pub base_init_threshold: usize,
pub scaling: T,
pub n_epochs: usize,
pub noise_level: T,
pub negative_sample_rate: T,
pub initial_alpha: T,
pub beta1: T,
pub beta2: T,
pub eps: T,
}
impl<T: EvocFloat> Default for EvocEmbeddingParams<T> {
fn default() -> Self {
Self {
n_label_prop_iter: 20,
base_init_threshold: 64,
scaling: T::from(0.1).unwrap(),
n_epochs: 50,
noise_level: T::from(0.5).unwrap(),
negative_sample_rate: T::one(),
initial_alpha: T::from(0.1).unwrap(),
beta1: T::from(UMAP_BETA1).unwrap(),
beta2: T::from(UMAP_BETA2).unwrap(),
eps: T::from(1e-7).unwrap(),
}
}
}