Skip to content

kdis-lab/dantis

Repository files navigation

DANTIS logo

GitHub Followers PyPI version License: MIT Code style: black


DANTIS brings together 50+ anomaly detection algorithms—from classical statistical methods and machine learning to deep learning—under a unified scikit-learn–style API. It consolidates models from diverse libraries and includes proprietary algorithms developed by our team.

Installation

pip install dantis              # From PyPI (recommended)

Quick start

from dantis.machine_learning import DecisionTreeClassifier
from dantis.deep_learning import ALAD
from sklearn.metrics import accuracy_score
import pandas as pd

# Load your time series data
df = pd.read_csv("anomaly_datasets/anomaly_dataset_1.csv")

X = df.drop(columns=["is_anomaly"])
y = df["is_anomaly"]

# Split data chronologically for time series (no shuffling)
split_idx = int(len(df) * 0.8)
X_train, X_test = X.iloc[:split_idx], X.iloc[split_idx:]
y_train, y_test = y.iloc[:split_idx], y.iloc[split_idx:]

decision_tree_model = DecisionTreeClassifier()
decision_tree_model.fit(X_train, y_train)



y_pred = decision_tree_model.predict(X_test)
acc = accuracy_score(y_test, y_pred)
print(f"DecisionTree Accuracy: {acc:.3f}")

alad_model = ALAD()
alad_model.fit(X_train, y_train)

y_pred = alad_model.predict(X_test)
acc = accuracy_score(y_test, y_pred)
print(f"ALAD Accuracy: {acc:.3f}")

Key features

  • Wide algorithm coverage – 50+ detectors across deep learning, machine learning, and statistical methods.
  • Consistent API – all detectors follow the scikit-learn fit/predict paradigm and expose decision_scores_, predict_proba, …
  • Pipeline & preprocessing layer – compose detectors with built-in scalers, transforms, and windowing utilities.
  • Comprehensive evaluation – metrics and visualisation helpers for rapid benchmarking.
  • Extensibility – subclass AlgorithBase and plug your own model into the ecosystem.

GUI: Desktop interface for model training & evaluation

DANTIS includes a full-featured graphical interface to simplify the use of the library for users without programming experience. Inspired by tools like Weka and KNIME, this desktop application enables:

  • Training and testing of anomaly detection models
  • Preprocessing pipelines and parameter tuning
  • Quantitative comparison of models using the StaTDS library

DANTIS GUI

Developed in:

Python PyQT5

Documentación

Documentation is currently available on GitHub.

📚 A full documentation site with tutorials and API reference is being developed at https://dantis.readthedocs.io.

Funding & affiliations

DANTIS has been developed within the research activities of the DaSCI Institute (Andalusian Inter-University Institute in Data Science and Computational Intelligence), by members of the research groups KDISLAB (Knowledge Discovery and Intelligent Systems, University of Córdoba) and SCI2S (Soft Computing and Intelligent Information Systems, University of Granada).

This work has been supported by the following projects:

  • TED2021-132702B-C22 - Mantenimiento Predictivo basado en Detección de Anomalías: Framework y Mantenimiento de Camiones de Alto Tonelaje (PREMAD-Truck)

We gratefully acknowledge this support.

DaSCI         
KDISLAB      SCI2S

Available algorithms:

Deep Learning

Name Function
ALAD anomaly_lib.deep_learning.alad.ALAD
AnoGAN anomaly_lib.deep_learning.anogan.AnoGAN
AutoEncoder anomaly_lib.deep_learning.auto_encoder.AutoEncoder
DeepSVDD anomaly_lib.deep_learning.deep_svdd.DeepSVDD
MO_GAAL anomaly_lib.deep_learning.mo_gaal.MO_GAAL
SO_GAAL anomaly_lib.deep_learning.so_gaal.SO_GAAL
VAE anomaly_lib.deep_learning.vae.VAE

Machine Learning

Name Function
DecisionTreeClassifierClassOD anomaly_lib.machine_learning.decision_tree_classifier.DecisionTreeClassifierClassOD
ECOD anomaly_lib.machine_learning.ecod.ECOD
IForest anomaly_lib.machine_learning.iforest.IForest
KNN anomaly_lib.machine_learning.knn.KNN
LOF anomaly_lib.machine_learning.lof.LOF
MLPClassOD anomaly_lib.machine_learning.mlp_classifier.MLPClassOD
MultinomialNBClassOD anomaly_lib.machine_learning.multinomial_nb.MultinomialNBClassOD
GaussianNBClassOD anomaly_lib.machine_learning.naive_bayes.GaussianNBClassOD
OCSVM anomaly_lib.machine_learning.ocsvm.OCSVM
RandomForestClassOD anomaly_lib.machine_learning.random_forest_classifier.RandomForestClassOD
SVMClassOD anomaly_lib.machine_learning.svm.SVMClassOD

Statistical

Name Function
ABOD anomaly_lib.statistical.abod.ABOD
CBLOF anomaly_lib.statistical.cblof.CBLOF
CD anomaly_lib.statistical.cd.CD
COF anomaly_lib.statistical.cof.COF
LUNAR anomaly_lib.statistical.lunar.LUNAR
COPOD anomaly_lib.statistical.copod.COPOD
FeatureBagging anomaly_lib.statistical.feature_bagging.FeatureBagging
GMM anomaly_lib.statistical.gmm.GMM
HBOS anomaly_lib.statistical.hbos.HBOS
INNE anomaly_lib.statistical.inne.INNE
KDE anomaly_lib.statistical.kde.KDE
KPCA anomaly_lib.statistical.kpca.KPCA
LMDD anomaly_lib.statistical.lmdd.LMDD
LOCI anomaly_lib.statistical.loci.LOCI
LODA anomaly_lib.statistical.loda.LODA
LSCP anomaly_lib.statistical.lscp.LSCP
MAD anomaly_lib.statistical.mad.MAD
MCD anomaly_lib.statistical.mcd.MCD
PCA anomaly_lib.statistical.pca.PCA
QMCD anomaly_lib.statistical.qmcd.QMCD
RGraph anomaly_lib.statistical.rgraph.RGraph
ROD anomaly_lib.statistical.rod.ROD
Sampling anomaly_lib.statistical.sampling.Sampling
SOD anomaly_lib.statistical.sod.SOD
SOS anomaly_lib.statistical.sos.SOS
XGBOD anomaly_lib.statistical.xgbod.XGBOD
MatrixProfile anomaly_lib.statistical.matrixprofile.MatrixProfile
ARIMA anomaly_lib.statistical.arima.ARIMA
SARIMAX anomaly_lib.statistical.sarimax.SARIMAX
VARMAX anomaly_lib.statistical.varmax.VARMAX
HoltWinters anomaly_lib.statistical.holt_winters.HoltWinters
SingleExponentialSmoothing anomaly_lib.statistical.singleExponentialSmoothing.SingleExponentialSmoothing

License

DANTIS is distributed under the MIT License. See LICENSE for details.

Acknowledgments

This research was supported in part by the PID2023-148396NB-I00 and TED2021-132702B-C22 projects of Spanish Ministry of Science and Innovation and the European Regional Development Fund, by the ProyExcel-0069 project of the Andalusian University, Research and Innovation Department.

Supported Datasets

DANTIS provides unified loaders for a wide range of Time Series Anomaly Detection (TSAD) datasets, consolidating resources from major benchmarks like TSB-AD, NAB, and UCR.

Dataset Real/Synth Type Domain License Access
CalIt2 Real MTS Urban events Unknown Direct
CAP Real MTS Medical Unknown PhysioNet (Auth)
CATSv2 Unknown UTS Simulated System CC BY 4.0 Direct
CICIDS2017 Real MTS Server/Network Unknown Direct
Credit Card Real MTS Fraud Detection None OpenML
Daphnet Real UTS Medical CC BY 4.0 Direct
DMDS Real MTS ICS Unknown Direct
Dodgers Loop Real UTS Urban Traffic Unknown Direct
Engine Dataset Real MTS ICS Unknown Direct
Exathlon Real MTS Server Monitoring Apache-2.0 GitHub
GECCO IoT Real MTS IoT CC BY 4.0 Direct
Genesis Real MTS ICS CC BY-NC-SA 4.0 Kaggle (Auth)
GHL Synth MTS ICS None Direct
IOPS Real UTS Business None GitHub
Ionosphere Real MTS Astronomy Unknown Direct
KDDCUP99 Real MTS Computer Networks Unknown Direct
Kitsune Real MTS Computer Networks Unknown Direct
KPI AIOPS Real UTS Business Unknown Competition
MBD Real MTS Server Monitoring Unknown GitHub
Metro Real MTS Urban Traffic Unknown Direct
MGAB Synth UTS Medical CC0-1.0 GitHub
MIT-BIH Arrhythmia Real MTS Medical/ECG ODC-By 1.0 PhysioNet (Auth)
MIT-BIH-LTDB Real UTS Medical/ECG ODC-By 1.0 PhysioNet (Auth)
MIT-BIH-SVDB Real MTS Medical/ECG ODC-By 1.0 PhysioNet (Auth)
MMS Real MTS Server Monitoring Unknown GitHub
MSL Real MTS Aerospace Caltech GitHub
NAB (subsets) Real/Synth UTS Multiple GPL GitHub
NASA Shuttle Real MTS Aerospace Unknown Direct
NEK Unknown Unknown Network None Verify Source
NeurIPS-TS Synth UTS Multiple Unknown GitHub
NormA Real/Synth UTS Multiple Unknown Direct
NYC Bike Real Both Urban Transport Unknown Direct
NYC Taxi Real Both Urban Transport Unknown Direct
OPPORTUNITY Real MTS Activity Recog. CC BY 4.0 Direct
Power Demand Real UTS ICS None Direct
PSM Real MTS Server Metrics CC BY 4.0 GitHub
PUMP Real MTS ICS Unknown Kaggle (Auth)
SED Unknown Unknown Industrial None Verify Source
SMAP Real MTS Environmental Caltech GitHub
SMD Real MTS Server Monitoring MIT GitHub
SWAN-SF Real MTS Astronomy Unknown Direct
SWaT Real MTS ICS/Water Request Request Form
SensoreScope Real UTS IoT Unknown Direct
Space Shuttle Real UTS Aerospace Unknown Direct
Stock Unknown Unknown Finance None Verify Source
TODS Synth Unknown Multiple Apache-2.0 GitHub
UCR Real/Synth Both Multiple None Direct
WADI Real MTS ICS/Water Unknown Request Form
WSD Unknown Unknown Web Services None Verify Source
WaterLog Real MTS ICS Unknown Direct
Yahoo Real/Synth UTS Multiple Yahoo Terms Request (Auth)

Note: MTS = Multivariate Time Series, UTS = Univariate Time Series. Access types marked as "Auth" or "Request" may require creating an account or filling out a form on the provider's website. DANTIS provides helper functions to facilitate the loading of these datasets once acquired.

About

Library for anomaly detection in time series.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages