Production-oriented anomaly detection project with:
- SKAB-style dataset processing
- multiple model backends (
isolation_forest,conv_ae,lstm_ae) - MLflow experiment tracking and optional model registry
- drift metrics (data, target, concept proxy)
- Prometheus + Grafana monitoring dashboards
make requirements
make dataset DATA_SCENARIO=valve1
make features DATA_SCENARIO=valve1
make train MODEL=isolation_forest DATA_SCENARIO=valve1
make predict MODEL=isolation_forest DATA_SCENARIO=valve1Start local monitoring:
make monitoring_upEndpoints:
- Grafana:
http://localhost:3000 - Prometheus:
http://localhost:9090 - MLflow UI:
make mlflow_ui(default port5000)
Detailed docs live in docs/ and are split by topic:
Getting StartedDataset (SKAB)ModelsMLflowMonitoringPublish Docs
make requirements- install dependenciesmake dataset DATA_SCENARIO=<scenario>- build train/val/test splitsmake features DATA_SCENARIO=<scenario>- build scaled feature datasetsmake train MODEL=<model> DATA_SCENARIO=<scenario>- train and evaluate modelmake predict MODEL=<model> DATA_SCENARIO=<scenario>- generate predictionsmake mlflow_ui- start MLflow tracking UImake monitoring_up/make monitoring_down- start/stop monitoring stack
Raw CSV files are discovered recursively under data/raw and are expected to
contain:
datetime- numeric feature columns
anomaly(0/1)changepoint(0/1)
If a file is missing required label columns, dataset creation fails for that scenario.
anomaly_detection/- core packageanomaly_detection/modeling/- model training and inferenceanomaly_detection/monitoring/- drift and metrics integrationmonitoring/- Prometheus/Grafana configs and dashboardsdata/processed/- generated splits and feature datamodels/- saved model artifacts and metadata