Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/d-ailin/GDN
Implementation code for the paper "Graph Neural Network-Based Anomaly Detection in Multivariate Time Series" (AAAI 2021)
https://github.com/d-ailin/GDN
Last synced: about 1 month ago
JSON representation
Implementation code for the paper "Graph Neural Network-Based Anomaly Detection in Multivariate Time Series" (AAAI 2021)
- Host: GitHub
- URL: https://github.com/d-ailin/GDN
- Owner: d-ailin
- License: mit
- Created: 2021-02-09T06:21:42.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-07-28T03:00:05.000Z (over 1 year ago)
- Last Synced: 2024-06-14T01:26:19.242Z (6 months ago)
- Language: Python
- Homepage:
- Size: 386 KB
- Stars: 444
- Watchers: 5
- Forks: 139
- Open Issues: 41
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- StarryDivineSky - d-ailin/GDN
README
# GDN
Code implementation for : [Graph Neural Network-Based Anomaly Detection in Multivariate Time Series(AAAI'21)](https://arxiv.org/pdf/2106.06947.pdf)
# Installation
### Requirements
* Python >= 3.6
* cuda == 10.2
* [Pytorch==1.5.1](https://pytorch.org/)
* [PyG: torch-geometric==1.5.0](https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html)### Install packages
```
# run after installing correct Pytorch package
bash install.sh
```### Quick Start
Run to check if the environment is ready
```
bash run.sh cpu msl
# or with gpu
bash run.sh msl # e.g. bash run.sh 1 msl
```# Usage
We use part of msl dataset(refer to [telemanom](https://github.com/khundman/telemanom)) as demo example.## Data Preparation
```
# put your dataset under data/ directory with the same structure shown in the data/msl/data
|-msl
| |-list.txt # the feature names, one feature per line
| |-train.csv # training data
| |-test.csv # test data
|-your_dataset
| |-list.txt
| |-train.csv
| |-test.csv
| ...```
### Notices:
* The first column in .csv will be regarded as index column.
* The column sequence in .csv don't need to match the sequence in list.txt, we will rearrange the data columns according to the sequence in list.txt.
* test.csv should have a column named "attack" which contains ground truth label(0/1) of being attacked or not(0: normal, 1: attacked)## Run
```
# using gpu
bash run.sh# or using cpu
bash run.sh cpu
```
You can change running parameters in the run.sh.# Others
SWaT and WADI datasets can be requested from [iTrust](https://itrust.sutd.edu.sg/)# Citation
If you find this repo or our work useful for your research, please consider citing the paper
```
@inproceedings{deng2021graph,
title={Graph neural network-based anomaly detection in multivariate time series},
author={Deng, Ailin and Hooi, Bryan},
booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
volume={35},
number={5},
pages={4027--4035},
year={2021}
}
```