forked from JointCloud/JCC-DeepOD
77 lines
2.4 KiB
ReStructuredText
77 lines
2.4 KiB
ReStructuredText
Python Deep Outlier/Anomaly Detection (DeepOD)
|
|
==================================================
|
|
|
|
**DeepOD** is an open-source python framework for deep learning-based anomaly detection on multivariate data. DeepOD provides unified low-code implementation of different detection models based on PyTorch.
|
|
|
|
|
|
DeepOD includes nine popular deep outlier detection / anomaly detection algorithms (in unsupervised/weakly-supervised paradigm) for now. More baseline algorithms will be included later.
|
|
|
|
|
|
|
|
Installation
|
|
~~~~~~~~~~~~~~
|
|
The DeepOD framework can be installed via:
|
|
|
|
install a stable version (we have six models in this version, please clone this repository for more models)
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
pip install deepod
|
|
|
|
|
|
install a developing version
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
git clone https://github.com/xuhongzuo/DeepOD.git
|
|
cd DeepOD
|
|
pip install .
|
|
|
|
|
|
Supported 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
|
|
DevNet, KDD, 2019, weakly-supervised, Deep Anomaly Detection with Deviation Networks
|
|
PReNet, ArXiv, 2020, weakly-supervised, Deep 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)
|
|
|