This is the implementation of GCKM proposed in our paper:
Zhihao Wu, Zhao Zhang, and Jicong Fan*. Graph Convolutional Kernel Machine versus Graph Convolutional Networks, NeurIPS 2023.
- Python = 3.9
- PyTorch = 1.11
- Numpy = 1.21
- Scikit-learn = 1.1
- Scipy = 1.8
- Networkx = 2.8
- Tqdm = 4.64
Unzip the dataset files
unzip ./data/datasets.7z
For node classification task, run
python node_classification.py --dataset Cora
For node clustering task, run
python node_clustering.py --dataset Cora
For graph classification task, run
python graph_classification.py --dataset MUTAG
Note that the default parameters may not be the best to reproduce our results in the paper.
For datasets that are not included in our paper, please run
python para_tuning.py --dataset *new_dataset_name*
to search for the best parameters on the validation set.
Running para_tuning.py
requires
Please unzip the datasets folders saved in ./data/node level.7z
and ./data/graph level.7z
first.
data/
│
├── node level/
│ ├── ACM.mat
│ ├── Actor.mat
│ ├── Chameleon.mat
│ ├── Citeseer.mat
│ ├── Cora.mat
│ ├── CoraFull.mat
│ ├── Pubmed.mat
│ ├── Squirrel.mat
│ └── UAI.mat
│
└── graph level/
├── COLLAB
├── IMDBBINARY
├── IMDBMULTI
├── MUTAG
├── PROTEINS
└── PTC
Feel free to contact me via [email protected] for codes regarding OGB-Arxiv (due to the large file). Random data splitting function can be found in Dataloader.py.
@inproceedings{wu2023graph,
title={Graph Convolutional Kernel Machine versus Graph Convolutional Networks},
author={Wu, Zhihao and Zhang, Zhao and Fan, Jicong},
booktitle={Advances in Neural Information Processing Systems},
pages = {19650--19672},
volume = {36},
year={2023}
}