{"id":13751553,"url":"https://github.com/d-ailin/GDN","last_synced_at":"2025-05-09T18:31:35.226Z","repository":{"id":38367287,"uuid":"337311971","full_name":"d-ailin/GDN","owner":"d-ailin","description":"Implementation code for the paper \"Graph Neural Network-Based Anomaly Detection in Multivariate Time Series\" (AAAI 2021)","archived":false,"fork":false,"pushed_at":"2023-07-28T03:00:05.000Z","size":395,"stargazers_count":482,"open_issues_count":44,"forks_count":141,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-11-16T04:31:54.391Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/d-ailin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-02-09T06:21:42.000Z","updated_at":"2024-11-14T08:38:21.000Z","dependencies_parsed_at":"2022-07-12T17:28:03.695Z","dependency_job_id":"137fd8e9-ecd0-4b70-a5ec-fecc5343d05a","html_url":"https://github.com/d-ailin/GDN","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-ailin%2FGDN","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-ailin%2FGDN/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-ailin%2FGDN/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-ailin%2FGDN/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d-ailin","download_url":"https://codeload.github.com/d-ailin/GDN/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253303024,"owners_count":21886873,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T09:00:48.417Z","updated_at":"2025-05-09T18:31:34.395Z","avatar_url":"https://github.com/d-ailin.png","language":"Python","funding_links":[],"categories":["异常检测","2021"],"sub_categories":[],"readme":"# GDN\n\nCode implementation for : [Graph Neural Network-Based Anomaly Detection in Multivariate Time Series(AAAI'21)](https://arxiv.org/pdf/2106.06947.pdf)\n\n\n# Installation\n### Requirements\n* Python \u003e= 3.6\n* cuda == 10.2\n* [Pytorch==1.5.1](https://pytorch.org/)\n* [PyG: torch-geometric==1.5.0](https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html)\n\n### Install packages\n```\n    # run after installing correct Pytorch package\n    bash install.sh\n```\n\n### Quick Start\nRun to check if the environment is ready\n```\n    bash run.sh cpu msl\n    # or with gpu\n    bash run.sh \u003cgpu_id\u003e msl    # e.g. bash run.sh 1 msl\n```\n\n\n# Usage\nWe use part of msl dataset(refer to [telemanom](https://github.com/khundman/telemanom)) as demo example. \n\n## Data Preparation\n```\n# put your dataset under data/ directory with the same structure shown in the data/msl/\n\ndata\n |-msl\n | |-list.txt    # the feature names, one feature per line\n | |-train.csv   # training data\n | |-test.csv    # test data\n |-your_dataset\n | |-list.txt\n | |-train.csv\n | |-test.csv\n | ...\n\n```\n\n### Notices:\n* The first column in .csv will be regarded as index column. \n* 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.\n* test.csv should have a column named \"attack\" which contains ground truth label(0/1) of being attacked or not(0: normal, 1: attacked)\n\n## Run\n```\n    # using gpu\n    bash run.sh \u003cgpu_id\u003e \u003cdataset\u003e\n\n    # or using cpu\n    bash run.sh cpu \u003cdataset\u003e\n```\nYou can change running parameters in the run.sh.\n\n# Others\nSWaT and WADI datasets can be requested from [iTrust](https://itrust.sutd.edu.sg/)\n\n\n# Citation\nIf you find this repo or our work useful for your research, please consider citing the paper\n```\n@inproceedings{deng2021graph,\n  title={Graph neural network-based anomaly detection in multivariate time series},\n  author={Deng, Ailin and Hooi, Bryan},\n  booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},\n  volume={35},\n  number={5},\n  pages={4027--4035},\n  year={2021}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-ailin%2FGDN","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd-ailin%2FGDN","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-ailin%2FGDN/lists"}