A Python Library for Graph Outlier Detection (Anomaly Detection)

Overview

PyGOD Logo

PyPI version Documentation status GitHub stars GitHub forks testing Coverage Status License

PyGOD is a Python library for graph outlier detection (anomaly detection). This exciting yet challenging field has many key applications, e.g., detecting suspicious activities in social networks [1] and security systems [2].

PyGOD includes more than 10 latest graph-based detection algorithms, such as DOMINANT (SDM'19) and GUIDE (BigData'21). For consistency and accessibility, PyGOD is developed on top of PyTorch Geometric (PyG) and PyTorch, and follows the API design of PyOD. See examples below for detecting outliers with PyGOD in 5 lines!

PyGOD is featured for:

  • Unified APIs, detailed documentation, and interactive examples across various graph-based algorithms.
  • Comprehensive coverage of more than 10 latest graph outlier detectors.
  • Full support of detections at multiple levels, such as node-, edge- (WIP), and graph-level tasks (WIP).
  • Scalable design for processing large graphs via mini-batch and sampling.
  • Streamline data processing with PyG--fully compatible with PyG data objects.

Outlier Detection Using PyGOD with 5 Lines of Code:

# train a dominant detector
from pygod.models import DOMINANT

model = DOMINANT(num_layers=4, epoch=20)  # hyperparameters can be set here
model.fit(data)  # data is a Pytorch Geometric data object

# get outlier scores on the input data
outlier_scores = model.decision_scores # raw outlier scores on the input data

# predict on the new data in the inductive setting
outlier_scores = model.decision_function(test_data) # raw outlier scores on the input data  # predict raw outlier scores on test

Citing PyGOD:

PyGOD paper is available on arxiv. If you use PyGOD in a scientific publication, we would appreciate citations to the following paper:

@article{pygod2022,
  author  = {Liu, Kay and Dou, Yingtong and Zhao, Yue and Ding, Xueying and Hu, Xiyang and Zhang, Ruitong and Ding, Kaize and Chen, Canyu and Peng, Hao and Shu, Kai and Chen, George H. and Jia, Zhihao and Yu, Philip S.},
  title   = {PyGOD: A Python Library for Graph Outlier Detection},
  journal = {arXiv preprint arXiv:2204.12095},
  year    = {2022},
}

or:

Liu, K., Dou, Y., Zhao, Y., Ding, X., Hu, X., Zhang, R., Ding, K., Chen, C., Peng, H., Shu, K., Chen, G.H., Jia, Z., and Yu, P.S. 2022. PyGOD: A Python Library for Graph Outlier Detection. arXiv preprint arXiv:2204.12095.

Installation

It is recommended to use pip or conda (wip) for installation. Please make sure the latest version is installed, as PyGOD is updated frequently:

pip install pygod            # normal install
pip install --upgrade pygod  # or update if needed

Alternatively, you could clone and run setup.py file:

git clone https://github.com/pygod-team/pygod.git
cd pygod
pip install .

Required Dependencies:

  • Python 3.6 +
  • numpy>=1.19.4
  • scikit-learn>=0.22.1
  • scipy>=1.5.2
  • setuptools>=50.3.1.post20201107

Note on PyG and PyTorch Installation: PyGOD depends on PyTorch Geometric (PyG), PyTorch, and networkx. To streamline the installation, PyGOD does NOT install these libraries for you. Please install them from the above links for running PyGOD:

  • torch>=1.10
  • pytorch_geometric>=2.0.3
  • networkx>=2.6.3

API Cheatsheet & Reference

Full API Reference: (https://docs.pygod.org). API cheatsheet for all detectors:

  • fit(X): Fit detector.
  • decision_function(G): Predict raw anomaly score of PyG data G using the fitted detector.

Key Attributes of a fitted model:

  • decision_scores_: The outlier scores of the training data. The higher, the more abnormal. Outliers tend to have higher scores.
  • labels_: The binary labels of the training data. 0 stands for inliers and 1 for outliers/anomalies.

For the inductive setting:

  • predict(G): Predict if nodes in PyG data G is an outlier or not using the fitted detector.
  • predict_proba(G): Predict the probability of nodes in PyG data G being outlier using the fitted detector.
  • predict_confidence(G): Predict the model's node-wise confidence (available in predict and predict_proba) [3].

Input of PyGOD: Please pass in a PyTorch Geometric (PyG) data object. See PyG data processing examples.

Implemented Algorithms

PyGOD toolkit consists of two major functional groups:

(i) Node-level detection :

Type Backbone Abbr Year Sampling Ref
Unsupervised MLP MLPAE 2014 Yes [4]
Unsupervised GNN GCNAE 2016 Yes [5]
Unsupervised MF ONE 2019 No [6]
Unsupervised GNN DOMINANT 2019 Yes [7]
Unsupervised GNN DONE 2020 Yes [8]
Unsupervised GNN AdONE 2020 Yes [8]
Unsupervised GNN AnomalyDAE 2020 Yes [9]
Unsupervised GAN GAAN 2020 Yes [10]
Unsupervised GNN OCGNN 2021 Yes [11]
Unsupervised/SSL GNN CoLA (beta) 2021 In progress [12]
Unsupervised/SSL GNN ANEMONE (beta) 2021 In progress [13]
Unsupervised GNN GUIDE 2021 Yes [14]
Unsupervised/SSL GNN CONAD 2022 Yes [15]

(ii) Utility functions :

Type Name Function Documentation
Metric eval_precision_at_k Calculating [email protected] eval_precision_at_k
Metric eval_recall_at_k Calculating [email protected] eval_recall_at_k
Metric eval_roc_auc Calculating ROC-AUC Score eval_roc_auc
Metric eval_average_precision Calculating average precision eval_average_precision
Data gen_structure_outliers Generating structural outliers gen_structure_outliers
Data gen_attribute_outliers Generating attribute outliers gen_attribute_outliers

Quick Start for Outlier Detection with PyGOD

"A Blitz Introduction" demonstrates the basic API of PyGOD using the dominant detector. It is noted that the API across all other algorithms are consistent/similar.


How to Contribute

You are welcome to contribute to this exciting project:

See contribution guide for more information.


PyGOD Team

PyGOD is a great team effort by researchers from UIC, IIT, BUAA, ASU, and CMU. Our core team members include:

Kay Liu (UIC), Yingtong Dou (UIC), Yue Zhao (CMU), Xueying Ding (CMU), Xiyang Hu (CMU), Ruitong Zhang (BUAA), Kaize Ding (ASU), Canyu Chen (IIT),

Reach out us by submitting an issue report or send an email to [email protected].


Reference

[1] Dou, Y., Liu, Z., Sun, L., Deng, Y., Peng, H. and Yu, P.S., 2020, October. Enhancing graph neural network-based fraud detectors against camouflaged fraudsters. In Proceedings of the 29th ACM International Conference on Information & Knowledge Management (CIKM).
[2] Cai, L., Chen, Z., Luo, C., Gui, J., Ni, J., Li, D. and Chen, H., 2021, October. Structural temporal graph neural networks for anomaly detection in dynamic graphs. In Proceedings of the 30th ACM International Conference on Information & Knowledge Management (CIKM).
[3] Perini, L., Vercruyssen, V., Davis, J. Quantifying the confidence of anomaly detectors in their example-wise predictions. In Joint European Conference on Machine Learning and Knowledge Discovery in Databases (ECML-PKDD), 2020.
[4] Sakurada, M. and Yairi, T., 2014, December. Anomaly detection using autoencoders with nonlinear dimensionality reduction. In Proceedings of the MLSDA 2014 2nd workshop on machine learning for sensory data analysis.
[5] Kipf, T.N. and Welling, M., 2016. Variational graph auto-encoders. arXiv preprint arXiv:1611.07308.
[6] Bandyopadhyay, S., Lokesh, N. and Murty, M.N., 2019, July. Outlier aware network embedding for attributed networks. In Proceedings of the AAAI conference on artificial intelligence (AAAI).
[7] Ding, K., Li, J., Bhanushali, R. and Liu, H., 2019, May. Deep anomaly detection on attributed networks. In Proceedings of the SIAM International Conference on Data Mining (SDM).
[8] (1, 2) Bandyopadhyay, S., Vivek, S.V. and Murty, M.N., 2020, January. Outlier resistant unsupervised deep architectures for attributed network embedding. In Proceedings of the International Conference on Web Search and Data Mining (WSDM).
[9] Fan, H., Zhang, F. and Li, Z., 2020, May. AnomalyDAE: Dual autoencoder for anomaly detection on attributed networks. In Proceedings of the IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP).
[10] Chen, Z., Liu, B., Wang, M., Dai, P., Lv, J. and Bo, L., 2020, October. Generative adversarial attributed network anomaly detection. In Proceedings of the 29th ACM International Conference on Information & Knowledge Management (CIKM).
[11] Wang, X., Jin, B., Du, Y., Cui, P., Tan, Y. and Yang, Y., 2021. One-class graph neural networks for anomaly detection in attributed networks. Neural computing and applications.
[12] Liu, Y., Li, Z., Pan, S., Gong, C., Zhou, C. and Karypis, G., 2021. Anomaly detection on attributed networks via contrastive self-supervised learning. IEEE transactions on neural networks and learning systems (TNNLS).
[13] Jin, M., Liu, Y., Zheng, Y., Chi, L., Li, Y. and Pan, S., 2021. ANEMONE: Graph Anomaly Detection with Multi-Scale Contrastive Learning. In Proceedings of the 30th ACM International Conference on Information & Knowledge Management (CIKM).
[14] Yuan, X., Zhou, N., Yu, S., Huang, H., Chen, Z. and Xia, F., 2021, December. Higher-order Structure Based Anomaly Detection on Attributed Networks. In 2021 IEEE International Conference on Big Data (Big Data).
[15] Xu, Z., Huang, X., Zhao, Y., Dong, Y., and Li, J., 2022. Contrastive Attributed Network Anomaly Detection with Data Augmentation. In Proceedings of the 26th Pacific-Asia Conference on Knowledge Discovery and Data Mining (PAKDD).
Comments
  • Query on Anomaly Prediction and Outlier labels

    Query on Anomaly Prediction and Outlier labels

    Hi,

    Given a graph object in the prediction API, What does the outlier labels mentioned hereas outlier_labels (numpy array of shape (n_samples,)) indicate from a graph perspective?

    Does the contents in the numpy array as 1 or 0 indicate the Nodes in the graph that are normal or anomalous? for example Labels: [0 0 0 ... 0 0 0] . Does each 0 value pertain to a node in graph?

    So, How should this prediction output be interpreted from a graph perspective? Thanks in advance.

    opened by nsankar 7
  • remove external (non-core-python) library `argparse` as a dependency

    remove external (non-core-python) library `argparse` as a dependency

    Describe the bug

    The current dependencies include installing an external library: argparse.

    It must be noted that argparse is a part of the core python libraries. There is no need for installing it alike other external libraries.

    • docs for core-library, argparse: https://docs.python.org/3/library/argparse.html

    :fire: EDIT: The library (argparse) that you are installing from PyPI is no longer maintained as it is now a part of standard python3. See my comment here.

    See further details:

    • https://gitter.im/conda-forge/conda-forge.github.io?at=62598b5b0466b352a46afd25

    https://github.com/pygod-team/pygod/blob/d037b67bd3001f4d45be5093b3717700aa79d953/requirements.txt#L1-L5

    opened by sugatoray 4
  • adone get unexpected keyword argument

    adone get unexpected keyword argument

    Running examples\adone.py for replication

    C:\Users\yuezh\Anaconda3\envs\torch19\python.exe C:/Users/yuezh/PycharmProjects/pygod/examples/adone.py training... Traceback (most recent call last): File "C:/Users/yuezh/PycharmProjects/pygod/examples/adone.py", line 35, in model.fit(data) File "C:\Users\yuezh\PycharmProjects\pygod\pygod\models\adone.py", line 158, in fit act=self.act).to(self.device) File "C:\Users\yuezh\PycharmProjects\pygod\pygod\models\adone.py", line 331, in init act=act) TypeError: init() got an unexpected keyword argument 'in_channels'

    todo 
    opened by yzhao062 3
  • A problem about structural reconstruction

    A problem about structural reconstruction

    When I am reading paper and PyGOD code, I find a problem when some algorithms aim to reconstruct structural infomation:

    $$ \hat{A}=\sigma(\pmb z\pmb z^T) $$

    where z is the graph embedding we have learnt, $\sigma$ is sigmoid function, and $\hat{A}$ is reconstructed adjacency matrix. One term of objective function is

    $$ \Vert A-\hat{A}\Vert_F^2 $$

    where $A$ is the adjacency matrix. But we should find that the diagonal elements of $\hat{A}$ is closed to 1 because

    $$ \hat{A}_{ii}=\sigma(z_iz_i^T) $$

    So I think we should add a self-loop on $A$ when reconstruction:

    $$ \Vert(A+I)-\hat{A}\Vert_F^2 $$

    In PyGOD code, I haven't found this consideration. I modified the code of DOMINANT in this way, and found performance improvement in some dataset.

    opened by Kaslanarian 2
  • Pygod does not work in a subprocess

    Pygod does not work in a subprocess

    Describe the bug Hi, I am trying to run example of PyGOD in a subprocess and it does not work for me

    To Reproduce

    from torch.multiprocessing import Process
    
    import torch_geometric.transforms as T
    from torch_geometric.datasets import Planetoid
    
    import torch
    from pygod.generator import gen_contextual_outliers, gen_structural_outliers
    from pygod.utils import load_data
    from pygod.models import AnomalyDAE
    
    
    
    def f(data):
        model = AnomalyDAE()
        print('started model fitting')
        model.fit(data)
        print('model fit succesful')
    
    if __name__ == '__main__':
        data = Planetoid('./data/Cora', 'Cora', transform=T.NormalizeFeatures())[0]
        data, ya = gen_contextual_outliers(data, n=100, k=50)
        data, ys = gen_structural_outliers(data, m=10, n=10)
        data.y = torch.logical_or(ys, ya).int()
    
        data = load_data('inj_cora')
        data.y = data.y.bool()
        p = Process(target=f, args=(data,))
        p.start()
        p.join()
    
    

    Expected behavior

    The model does not fit for me

    Desktop (please complete the following information):

    • OS: all os and systems
    • python: 3.8
    opened by prabhant 2
  • When I use 1080ti GPU, there is an out of memory problem in all datasets except Cora, which is inconsistent with the description in the benchmark paper.

    When I use 1080ti GPU, there is an out of memory problem in all datasets except Cora, which is inconsistent with the description in the benchmark paper.

    When I use 1080ti GPU, there is an out of memory problem in all datasets except Cora, which is inconsistent with the description in the benchmark paper.

    opened by 1017027994zjj 2
  • ONE does not accept negative value

    ONE does not accept negative value

    It appears that it would throw an error if the input x contains negative values. If this is expected, we should probably mention it somewhere. image

    check pygod/test/test_one.py

    opened by yzhao062 2
  • Update for v0.3.1

    Update for v0.3.1

    • add edge drop probability to structural outlier injection.
    • update benchmark script with more datasets.
    • multiple minor fixes by @cshjin @YingtongDou @kayzliu
    opened by kayzliu 1
  • Enabling different hidden dimension for attribute autoencoder and structure autoencoder

    Enabling different hidden dimension for attribute autoencoder and structure autoencoder

    Is your feature request related to a problem? Please describe. For now, some detectors (e.g., GUIDE) has two separate autoencoders for attribute and structure, but two autoencoders share the same hidden layer dimension. In many cases, there are a significant difference between the dimension of the node attributes and the dimension of structure information (e.g., adjacency matrix). Using the same hidden dimension may hampers the performance of the detectors.

    Describe the solution you'd like Enabling different hidden dimension for attribute autoencoder and structure autoencoder

    opened by kayzliu 1
  • Add tutorial for load the data from other formats

    Add tutorial for load the data from other formats

    We can add a tutorial in the document about loading data from numpy, scipy, matlab, networkx and other common data formats. Some of the data loaders can be found in https://pytorch-geometric.readthedocs.io/en/latest/modules/utils.html

    opened by YingtongDou 1
  • GUIDE Bug on Cora dataset

    GUIDE Bug on Cora dataset

    File "/hdisk2/pygod_benchmark/pygod/models/guide.py", line 158, in fit
        x_, s_ = self.model(x, s, edge_index)
      File "/hdisk2/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
        return forward_call(*input, **kwargs)
      File "/hdisk2/pygod_benchmark/pygod/models/guide.py", line 369, in forward
        s_ = self.struct_ae(s, edge_index)
      File "/hdisk2/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
        return forward_call(*input, **kwargs)
      File "/hdisk2/pygod_benchmark/pygod/models/guide.py", line 394, in forward
        s = layer(s, edge_index)
      File "/hdisk2/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
        return forward_call(*input, **kwargs)
      File "/hdisk2/pygod_benchmark/pygod/models/guide.py", line 411, in forward
        out = self.propagate(edge_index, s=self.w2(s))
      File "/hdisk2/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
        return forward_call(*input, **kwargs)
      File "/hdisk2/anaconda3/lib/python3.7/site-packages/torch/nn/modules/linear.py", line 103, in forward
        return F.linear(input, self.weight, self.bias)
      File "/hdisk2/anaconda3/lib/python3.7/site-packages/torch/nn/functional.py", line 1848, in linear
        return torch._C._nn.linear(input, weight, bias)
    RuntimeError: expected scalar type Float but found Long
    
    bug 
    opened by YingtongDou 1
  • Flickr is not consistent with the

    Flickr is not consistent with the "Flickr" dataset in pyg

    The Flickr dataset used in some god papers is the Flickr in pyg. And inj_ Flickr implemented in your library has a very different dataset. I hope you can use a correct data set.

    opened by goldenNormal 4
  • Problem for CoLA and ANEMONE models.

    Problem for CoLA and ANEMONE models.

    The codes for masking the target nodes is wrong. The target node is the first node in subgraph after the RandomWalk sample, while you mask the last node. The performance of CoLa and ANEMONE will improve 2% by fixing the bug.

    Wrong codes in CoLA(line 361~364) batch_feature = torch.cat( (batch_feature[:, :-1, :], added_feat_zero_row, batch_feature[:, -1:, :]), dim=1)

    Correct codes: batch_feature = torch.cat( (added_feat_zero_row, batch_feature[:, 1:, :], batch_feature[:, 0:1, :]), dim=1)

    Wrong codes in ANEMONE(line 288~289 and 429~430) bf = torch.cat( (bf[:, :-1, :], added_feat_zero_row, bf[:, -1:, :]), dim=1)

    Correct codes: bf = torch.cat( (added_feat_zero_row, bf[:, 1:, :], bf[:, 0 : 1, :]), dim=1)

    opened by 1017027994zjj 1
  • About node embedding function

    About node embedding function

    Hi, could you please provide the function that returns the trained node embeddings so that I can input the embeddings to machine learning classifier such as SVM.

    Best wish!

    enhancement 
    opened by wubo2180 2
  • Add tutorials for hyperparamer tuning

    Add tutorials for hyperparamer tuning

    Hi, wide collection of unsupervised algorithms is amazing. But if there aren't sufficient examples on tuning them, other developers may never use it.

    I am planning to use these algorithms on publicly available graphs and write tutorials on the same.

    I have major experience in deep learning but not in graph neural networks. I can pull this off with sufficient amount of help on underlying algorithms

    opened by INF800 4
Releases(v0.3.1)
  • v0.3.1(Sep 6, 2022)

    What's Changed

    • add edge drop probability to structural outlier injection
    • update benchmark script with more datasets.
    • multiple minor fixes by @cshjin @YingtongDou @kayzliu

    New Contributors

    • @cshjin made their first contribution in https://github.com/pygod-team/pygod/pull/40
    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Jun 25, 2022)

  • v0.2.0(Apr 30, 2022)

    What's New

    • Our paper is available on arXiv.
    • We enable most of the models to train with minbatch, see model list for supported models. @kayzliu @xyvivian @aha12345678
    • Add new models CoLA (beta) and ANEMONE (beta) by @harvardchen
    • The first community contributor @zhiming-xu add a new model CONAD.
    • Add new metric eval_average_precision by @YingtongDou.
    • Improved device setting by @yzhao062
    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Apr 4, 2022)

    Many key applications depend on graph data. To tailor this need, we just open-sourced the first comprehensive graph outlier detection library--PyGOD.

    PyGOD contains more than 10 latest graph outlier detectors, which are built on PyTorch and PyG. It features:

    • unified and simple API as PyOD: using GNNs for outlier detection within 5 lines of code
    • full documentation and examples
    • for both academic use and industry app, all you need to prepare is the data in PyG format.

    PyGOD is a collaborative effort among UIC, CMU, ASU, IIT, and BUAA. We commit to providing long-term maintenance and keep adding new models to the library. It is also our goal to promote graph outlier detection methods to broader audiences. If you encounter a bug or have any suggestions please fill an issue or reach us via email [email protected]. Also, feel free to try it out with your code!

    We appreciate every star, fork, and follow.

    Source code(tar.gz)
    Source code(zip)
Owner
PyGOD Team
Maintaining A Python Library for Graph Outlier Detection (Anomaly Detection)
PyGOD Team
Streaming Anomaly Detection Framework in Python (Outlier Detection for Streaming Data)

Python Streaming Anomaly Detection (PySAD) PySAD is an open-source python framework for anomaly detection on streaming multivariate data. Documentatio

Selim Firat Yilmaz 174 Sep 5, 2022
Deep Anomaly Detection with Outlier Exposure (ICLR 2019)

Outlier Exposure This repository contains the essential code for the paper Deep Anomaly Detection with Outlier Exposure (ICLR 2019). Requires Python 3

Dan Hendrycks 455 Sep 20, 2022
Anomaly Transformer: Time Series Anomaly Detection with Association Discrepancy" (ICLR 2022 Spotlight)

About Code release for Anomaly Transformer: Time Series Anomaly Detection with Association Discrepancy (ICLR 2022 Spotlight)

THUML @ Tsinghua University 141 Sep 21, 2022
Official Implementation of "LUNAR: Unifying Local Outlier Detection Methods via Graph Neural Networks"

LUNAR Official Implementation of "LUNAR: Unifying Local Outlier Detection Methods via Graph Neural Networks" Adam Goodge, Bryan Hooi, Ng See Kiong and

Adam Goodge 17 Sep 19, 2022
SSD: A Unified Framework for Self-Supervised Outlier Detection [ICLR 2021]

SSD: A Unified Framework for Self-Supervised Outlier Detection [ICLR 2021] Pdf: https://openreview.net/forum?id=v5gjXpmR8J Code for our ICLR 2021 pape

Princeton INSPIRE Research Group 107 Sep 4, 2022
Outlier Exposure with Confidence Control for Out-of-Distribution Detection

OOD-detection-using-OECC This repository contains the essential code for the paper Outlier Exposure with Confidence Control for Out-of-Distribution De

Nazim Shaikh 61 Aug 14, 2022
(Py)TOD: Tensor-based Outlier Detection, A General GPU-Accelerated Framework

(Py)TOD: Tensor-based Outlier Detection, A General GPU-Accelerated Framework Background: Outlier detection (OD) is a key data mining task for identify

Yue Zhao 112 Sep 15, 2022
A PyTorch implementation of "ANEMONE: Graph Anomaly Detection with Multi-Scale Contrastive Learning", CIKM-21

ANEMONE A PyTorch implementation of "ANEMONE: Graph Anomaly Detection with Multi-Scale Contrastive Learning", CIKM-21 Dependencies python==3.6.1 dgl==

Graph Analysis & Deep Learning Laboratory, GRAND 27 Aug 11, 2022
A gesture recognition system powered by OpenPose, k-nearest neighbours, and local outlier factor.

OpenHands OpenHands is a gesture recognition system powered by OpenPose, k-nearest neighbours, and local outlier factor. Currently the system can iden

Paul Treanor 12 Jan 10, 2022
Certifiable Outlier-Robust Geometric Perception

Certifiable Outlier-Robust Geometric Perception About This repository holds the implementation for certifiably solving outlier-robust geometric percep

null 76 Aug 30, 2022
VOS: Learning What You Don’t Know by Virtual Outlier Synthesis

VOS This is the source code accompanying the paper VOS: Learning What You Don’t

null 238 Sep 18, 2022
Demo project for real time anomaly detection using kafka and python

kafkaml-anomaly-detection Project for real time anomaly detection using kafka and python It's assumed that zookeeper and kafka are running in the loca

Rodrigo Arenas 31 Jul 30, 2022
Real-world Anomaly Detection in Surveillance Videos- pytorch Re-implementation

Real world Anomaly Detection in Surveillance Videos : Pytorch RE-Implementation This repository is a re-implementation of "Real-world Anomaly Detectio

seominseok 54 Sep 28, 2022
Paper list of log-based anomaly detection

Paper list of log-based anomaly detection

Weibin Meng 414 Jul 21, 2022
This is an unofficial implementation of the paper “Student-Teacher Feature Pyramid Matching for Unsupervised Anomaly Detection”.

This is an unofficial implementation of the paper “Student-Teacher Feature Pyramid Matching for Unsupervised Anomaly Detection”.

haifeng xia 32 Aug 18, 2022
Unofficial implementation of PatchCore anomaly detection

PatchCore anomaly detection Unofficial implementation of PatchCore(new SOTA) anomaly detection model Original Paper : Towards Total Recall in Industri

Changwoo Ha 246 Sep 30, 2022
MemStream: Memory-Based Anomaly Detection in Multi-Aspect Streams with Concept Drift

MemStream Implementation of MemStream: Memory-Based Anomaly Detection in Multi-Aspect Streams with Concept Drift . Siddharth Bhatia, Arjit Jain, Shivi

Stream-AD 58 Sep 22, 2022
USAD - UnSupervised Anomaly Detection on multivariate time series

USAD - UnSupervised Anomaly Detection on multivariate time series Scripts and utility programs for implementing the USAD architecture. Implementation

null 95 Sep 11, 2022
LogDeep is an open source deeplearning-based log analysis toolkit for automated anomaly detection.

LogDeep is an open source deeplearning-based log analysis toolkit for automated anomaly detection.

donglee 267 Sep 23, 2022