Skip to main content

incremental_rs/
lib.rs

1pub mod error;
2pub mod learning_rate;
3pub mod linear_regression;
4pub mod logistic_regression;
5pub mod minibatch_kmeans;
6pub mod monitoring;
7pub mod naive_bayes;
8
9#[cfg(feature = "polars-streaming")]
10pub mod streaming;
11
12pub use error::IncrementalError;
13pub use learning_rate::LearningRateSchedule;
14pub use linear_regression::IncrementalLinearRegression;
15pub use logistic_regression::{IncrementalLogisticRegression, MulticlassStrategy};
16pub use minibatch_kmeans::MiniBatchKMeans;
17pub use monitoring::{BatchStats, MonitoredEstimator};
18pub use naive_bayes::IncrementalGaussianNaiveBayes;
19
20#[cfg(feature = "polars-streaming")]
21pub use streaming::{fit_streaming_supervised, StreamingConfig, StreamingShuffleBuffer};
22
23use ndarray::{Array1, Array2};
24
25pub trait IncrementalSupervisedEstimator {
26    fn partial_fit(
27        &mut self,
28        batch_x: &Array2<f64>,
29        batch_y: &Array1<f64>,
30    ) -> Result<(), IncrementalError>;
31
32    fn predict(&self, x: &Array2<f64>) -> Result<Array1<f64>, IncrementalError>;
33}
34
35pub trait IncrementalUnsupervisedEstimator {
36    fn partial_fit(&mut self, batch_x: &Array2<f64>) -> Result<(), IncrementalError>;
37    fn predict_labels(&self, x: &Array2<f64>) -> Result<Array1<usize>, IncrementalError>;
38}