This repository hosts the Cora Node Classification Challenge, a graph machine learning competition based on the Cora citation network. Participants are required to design and train Graph Neural Network (GNN) models to classify scientific papers into research topics using node features and graph structure.
This implementation does not follow the standard Cora benchmark.
To increase task difficulty, Gaussian noise (σ = 0.4) has been applied to the node features.
- Leaderboard scores are automatically updated based on accuracy.
- View the live leaderboard:
👉 Leaderboard
- Each node represents a scientific publication.
- Edges represent citation relationships between papers.
- Each node belongs to one of 7 classes.
Train a model that accurately predicts the class labels of unlabeled test nodes, using:
- Node features
- Graph connectivity
The dataset is derived from the Cora citation network.
| Property | Value |
|---|---|
| Nodes | 2,708 |
| Edges | 5,429 (undirected) |
| Node features | 1,433 (bag-of-words) |
| Classes | 7 |
- Training nodes: 140 (20 per class)
- Validation nodes: 500
- Test nodes: 1,000 (labels hidden)
1- edge_index.csv — edges between nodes
2- x.csv — node features
3- y_train.csv — labels for the training nodes
4- y_val.csv — labels for validation nodes
5- test_ID _ id of testing nodes
- Test_label → Hidden ground-truth data used for automatic evaluation
Follow the steps below to submit your predictions to the competition leaderboard.
Participants must submit a CSV file named submission.csv with the following format:
id,target
1708,3
1709,1
1710,6
...idmust match the provided test node IDstargetmust be an integer in{0, 1, 2, 3, 4, 5, 6}
Make sure you have:
1- encrypt_submission.py
2- public_key.pem
3- Your CSV file submission.csv
Open CMD/terminal in the folder containing these files and run the command:
python encrypt_submission.py submission.csv submission.enc public_key.pem
This will generate two files:
submission.enc → the encrypted submission
submission.enc.key → encryption key
Both files are required for submission. Do not submit the original CSV.
Upload these files to the submission folder in your forked repo
✅ Your submission will be reviewed and evaluated, and the results will be added to the leaderboard.
Only one submission is allowed for each participant. Subsequent submissions will be automatically rejected
Submissions are evaluated using:
- Accuracy
Evaluation is performed on a hidden test set to prevent data leakage.
- Any Graph Neural Network architecture
- Feature preprocessing and normalization
- Hyperparameter tuning
- Using test labels
- Modifying test node IDs
- Training on test nodes
The provided starter code implements a 2-layer Graph Convolutional Network (GCN) as a baseline.
Participants are encouraged to improve upon this baseline using:
- Deeper architectures
- Attention mechanisms
- Regularization techniques
- Kipf, T. N., & Welling, M. (2017). Semi-Supervised Classification with Graph Convolutional Networks. ICLR.
-
GNNs Tutorials (YouTube) – BASIRA Lab:
https://www.youtube.com/@BASIRALab -
GNN Tutorials (GitHub) – BASIRA Lab:
https://github.com/basiralab
Tasneem Selim Teaching Assistant & Researcher in Computer Vision and Graph Machine Learning If you face issues with the repository or evaluation:
- Contact me at tasneem.mselim@gmail.com
Good luck, and happy graph learning 🚀