impl<M: OnlineLearner + std::fmt::Debug> OrchestratorBuilder<M> {
pub fn new(model: M, n_features: usize) -> Self {
Self {
model,
n_features,
config: RetrainConfig::default(),
delta: 0.002,
}
}
pub fn min_samples(mut self, min: usize) -> Self {
self.config.min_samples = min;
self
}
pub fn max_buffer_size(mut self, max: usize) -> Self {
self.config.max_buffer_size = max;
self
}
pub fn incremental_updates(mut self, enable: bool) -> Self {
self.config.incremental_updates = enable;
self
}
pub fn curriculum_learning(mut self, enable: bool) -> Self {
self.config.curriculum_learning = enable;
self
}
pub fn curriculum_stages(mut self, stages: usize) -> Self {
self.config.curriculum_stages = stages;
self
}
pub fn learning_rate(mut self, lr: f64) -> Self {
self.config.learning_rate = lr;
self
}
pub fn retrain_epochs(mut self, epochs: usize) -> Self {
self.config.retrain_epochs = epochs;
self
}
pub fn adwin_delta(mut self, delta: f64) -> Self {
self.delta = delta;
self
}
pub fn build(self) -> RetrainOrchestrator<M, ADWIN> {
let detector = ADWIN::with_delta(self.delta);
RetrainOrchestrator::with_config(self.model, detector, self.n_features, self.config)
}
}