(In progress) Network science laboratories. Covers graph theory, random graphs and ML on graphs
Jupyter Notebook
Network science 2023
Note
nbviewer might have prettier math and image rendering than github
Photos are taken from the resources (most of them from Stanford's cs224w and Graph representation learning – William Hamilton 2020) or the extra resources linked in the notebooks.
Prerequisites
Programming: OOP, being able to read and change functions to do something else.
Math: Probabilities, statistics and linear algebra
Graph theory – data structures
Split
Part 1. Labs 1-5 -- Traditional generative methods, community detection.
Part 2 -- ML on graphs -- Embeddings, Classification, GNNs
Environment
Either make an anaconda env or a venv and install the requirements (Please do this before the lab)
Colab links
Lab
Link
1 Intro
Linalg recap networkx tutorial short probs recap python tutorial tutorial
2 Graph measurements
Graph measurements
3 Random_network_models
Random graphs
4 Small worlds
Small worlds
5 Communities
Communities
6 DL intro
PyG intro Torch intro
7 Embeddings
Node embeddings
8 Node classification
Node classification
9 Graph neural networks
GNN intro
10 Graph neural networks
GNN2 Training GNN2 Training deepsnap Graph prediction Link prediction