Detect fraud in transactions graphs using various ready-to-use models and datasets.
Models:
- GAT
- GCN
- GIN
- GraphSAGE
- MPNN
- GTN
Datasets:
First install the requirements.
pip install -r requirements.txt
Download and extract the required datasets. This project currently only supports Elliptic. A dataset must have 3 files:
- Edge list
- Classes
- Features
Then provide the required torch.utils.data.Dataset
class for your own dataset like here
To train a model you need a config file. By default, these files are located at configs/
. For example to train a GAT model
on Elliptic run:
python train --config configs/elliptic_gat.yaml
The models are trained for 100 epochs and results are verbosed every 10 epochs and logged to Tensorboard.
To visualize model predictions on the graph on each step, run:
python visualize.py --config configs/elliptic_gat.yaml --step 30 --weights_file weigths/elliptic_gat.pt
This is my final project for the course Complex Networks during my Masters' in Shahid Beheshti University instructed by Dr. Sadegh Ali Akbari (Spring 2023). I've also written a Persian blog post on this project here