mod column_transformer;
mod encoder;
mod imputer;
mod normalizer;
mod one_hot;
mod pca;
mod polynomial;
mod scaler;
pub use column_transformer::ColumnTransformer;
pub use encoder::LabelEncoder;
pub use imputer::{SimpleImputer, Strategy};
pub use normalizer::{Norm, Normalizer};
pub use one_hot::{DropStrategy, OneHotEncoder, UnknownStrategy};
pub use pca::Pca;
pub use polynomial::PolynomialFeatures;
pub use scaler::{MinMaxScaler, RobustScaler, StandardScaler};
use crate::dataset::Dataset;
use crate::error::Result;
pub trait Transformer {
fn fit(&mut self, data: &Dataset) -> Result<()>;
fn transform(&self, data: &mut Dataset) -> Result<()>;
fn fit_transform(&mut self, data: &mut Dataset) -> Result<()> {
self.fit(data)?;
self.transform(data)
}
fn inverse_transform(&self, data: &mut Dataset) -> Result<()>;
}