transformers Module#

Data transformation utilities for epidemiological analysis.

This module provides transformer classes and functions for cleaning, normalizing, and preparing epidemiological data for analysis, with scikit-learn compatible interfaces.

Classes#

Functions#

Examples#

Date transformation:

from episia.data.transformers import DateTransformer

transformer = DateTransformer(date_columns=['date_col'], extract_features=True)
df_transformed = transformer.fit_transform(df)
# New columns: date_col_year, date_col_month, date_col_day, etc.

Categorical encoding:

from episia.data.transformers import CategoricalTransformer

transformer = CategoricalTransformer(
    categorical_columns=['district', 'disease'],
    encoding='onehot'
)
df_encoded = transformer.fit_transform(df)

Outlier handling:

from episia.data.transformers import OutlierTransformer

transformer = OutlierTransformer(
    numeric_columns=['age', 'bmi'],
    method='iqr',
    threshold=1.5,
    action='clip'
)
df_cleaned = transformer.fit_transform(df)

Feature engineering:

from episia.data.transformers import FeatureEngineer

transformer = FeatureEngineer()
df_features = transformer.fit_transform(df)
# Creates age_groups, bmi categories, interaction terms

Pipeline creation:

from episia.data.transformers import create_pipeline, DateTransformer, CategoricalTransformer

pipeline = create_pipeline([
    DateTransformer(date_columns=['date']),
    CategoricalTransformer(categorical_columns=['district']),
    OutlierTransformer(numeric_columns=['cases'])
])

df_processed = pipeline(df)

Normalization:

from episia.data.transformers import normalize_data

df_norm = normalize_data(df, columns=['age', 'bmi'], method='standard')