Go to file
Hongzuo Xu 40ce05f6ba
Create LICENSE
2023-06-18 13:32:49 +08:00
.github/workflows fix bug 2023-04-11 20:31:22 +08:00
data add ts data for testing 2022-12-04 17:59:12 +08:00
deepod remove dev file 2023-06-05 20:59:08 +08:00
examples add some cases in the test module 2023-06-05 13:59:44 +08:00
.gitignore remove dev file 2023-06-05 20:59:08 +08:00
.travis.yml Update .travis.yml 2022-11-16 17:30:36 +08:00
LICENSE Create LICENSE 2023-06-18 13:32:49 +08:00
README.rst Update README.rst 2023-06-18 13:21:59 +08:00
TODO.md commit to merge 2022-12-10 15:26:19 +08:00
environment.yml add tqdm into requirements.yml 2022-12-01 13:39:01 +08:00
requirements.txt modify requirements.txt 2023-03-27 09:48:02 +08:00
requirements_ci.yml Merge branch 'main' into dev 2022-12-01 14:18:28 +08:00
setup.py add some cases in the test module 2023-06-05 14:29:51 +08:00

README.rst

Python Deep Outlier/Anomaly Detection (DeepOD)
==================================================

.. image:: https://github.com/xuhongzuo/DeepOD/actions/workflows/testing_conda.yml/badge.svg
   :target: https://github.com/xuhongzuo/DeepOD/actions/workflows/testing_conda.yml
   :alt: testing

.. image:: https://github.com/xuhongzuo/DeepOD/actions/workflows/testing.yml/badge.svg
   :target: https://github.com/xuhongzuo/DeepOD/actions/workflows/testing.yml
   :alt: testing2

.. image:: https://coveralls.io/repos/github/xuhongzuo/DeepOD/badge.svg?branch=main
    :target: https://coveralls.io/github/xuhongzuo/DeepOD?branch=main
    :alt: coveralls

.. image:: https://static.pepy.tech/personalized-badge/deepod?period=total&units=international_system&left_color=black&right_color=orange&left_text=Downloads
   :target: https://pepy.tech/project/deepod
   :alt: downloads
   

**DeepOD** is an open-source Python framework for deep learning-based anomaly detection on multivariate/time-series data. DeepOD provides a unified implementation of different detection models based on PyTorch.


DeepOD includes 13 deep outlier detection / anomaly detection algorithms (in unsupervised/weakly-supervised paradigm) for now. More baseline algorithms will be included later.


🔭 *We are working on a new feature -- by simply setting a few parameters, different deep anomaly detection models can handle different data types.*   

- We have finished some attempts on partial models like Deep SVDD, DevNet, Deep SAD, PReNet, and DIF. These models can use temporal networks like LSTM, GRU, TCN, Conv, and Transformer to handle time series data. 
- *Future work*: we also want to implement several network structures, so as to process more data types like graphs and images by simply plugging in corresponding network architecture. 


Installation
~~~~~~~~~~~~~~
The DeepOD framework can be installed via:


.. code-block:: bash


    pip install deepod


install a developing version (strongly recommend)


.. code-block:: bash


    git clone https://github.com/xuhongzuo/DeepOD.git
    cd DeepOD
    pip install .


Supported Models
~~~~~~~~~~~~~~~~~

**Detection models:**

.. csv-table:: 
 :header: "Model", "Venue", "Year", "Type", "Title"
 :widths: 4, 4, 4, 8, 20 

 Deep SVDD, ICML, 2018, unsupervised, Deep One-Class Classification  
 REPEN, KDD, 2018, unsupervised, Learning Representations of Ultrahigh-dimensional Data for Random Distance-based Outlier Detection
 RDP, IJCAI, 2020, unsupervised, Unsupervised Representation Learning by Predicting Random Distances  
 RCA, IJCAI, 2021, unsupervised, RCA: A Deep Collaborative Autoencoder Approach for Anomaly Detection
 GOAD, ICLR, 2020, unsupervised, Classification-Based Anomaly Detection for General Data
 NeuTraL, ICML, 2021, unsupervised, Neural Transformation Learning for Deep Anomaly Detection Beyond Images
 ICL, ICLR, 2022, unsupervised, Anomaly Detection for Tabular Data with Internal Contrastive Learning
 DIF, TKDE, 2023, unsupervised, Deep Isolation Forest for Anomaly Detection
 SLAD, ICML, 2023, unsupervised, Fascinating Supervisory Signals and Where to Find Them: Deep Anomaly Detection with Scale Learning
 DevNet, KDD, 2019, weakly-supervised, Deep Anomaly Detection with Deviation Networks
 PReNet, KDD, 2023, weakly-supervised, Deep Weakly-supervised Anomaly Detection
 Deep SAD, ICLR, 2020, weakly-supervised, Deep Semi-Supervised Anomaly Detection
 FeaWAD, TNNLS, 2021, weakly-supervised, Feature Encoding with AutoEncoders for Weakly-supervised Anomaly Detection


Usages
~~~~~~~~~~~~~~~~~


DeepOD can be used in a few lines of code. This API style is the same with sklearn and PyOD.


.. code-block:: python


    # unsupervised methods
    from deepod.models.dsvdd import DeepSVDD
    clf = DeepSVDD()
    clf.fit(X_train, y=None)
    scores = clf.decision_function(X_test)

    # weakly-supervised methods
    from deepod.models.devnet import DevNet
    clf = DevNet()
    clf.fit(X_train, y=semi_y) # semi_y uses 1 for known anomalies, and 0 for unlabeled data
    scores = clf.decision_function(X_test)



Citation
~~~~~~~~~~~~~~~~~
If you use this library in your work, please use the BibTex entry below for citation.

.. code-block:: bibtex

   @misc{deepod,
      author = {{Xu, Hongzuo}},
      title = {{DeepOD: Python Deep Outlier/Anomaly Detection}},
      url = {https://github.com/xuhongzuo/DeepOD}
   }