Project Repository for DD2430 in colloboration with SEB.
In this project we intend to run some experiments to test the performance of graphons as embedding methods for downstream tasks (eg. classification, clustering) in relation to Graph2Vec, a common graph embedding framework.
Fig: Graphon functions we used to generate data.We ran our experiments on both Synthetic data (generated using the graphons) and Real data, using the framework Weights & Biases to efficiently store the results using the "Sweep" function.
Whaw we could find out is that graphons are impressively faster at finding an embedding compared to G2V, and the performance is always comparable if not higher in most cases.
As extra task we evaluated the use of graphons to perform augmentation on data. Useful in the case of unbalanced datasets.
Fig: Idea behind data augmentation using graphons.To use the code it is necessary to set up the config.yaml
file first, it contains descriptions of what each variable is used for; the sweep_config.yaml
file has to be set up only if you intend to run a sweep over different parameters; in this case we have to set SWEEP: True
in the previous file and set up the variables we want to sweep over following the same format as the ones present in the file.
After this the code can be run from the main.py
function.
Note that if you intend to use the real data you have to uncomment the lines at the end of main.py
and set DOWNLOAD_DATA: True
in the first config file.