Skip to content

Applying Graph Deep Learning techniques for maximal clique detection in graphs

License

Notifications You must be signed in to change notification settings

ronaldalbrt/clique_detection

Repository files navigation


Clique detection in Graphs with the usage of Graph Neural Networks (GNNs)

Repository for the course on Machine Learning in Graphs at PEE - Programa de Engenharia Elétrica from UFRJ - Federal University of Rio de Janeiro, taught by Prof. João Baptista de Oliveira e Souza Filho.

Developed by Ronald Albert.

The project

The project is an implementation of Learning on Graphs techniques in the well known problem of Clique Detection. The project consists on modeling the clique detection as a node classification problems, where nodes that belong to a clique are classified as 1, and nodes not belonging to a clique are classified as 0.

It's entirely implemented in python and requires several python libraries to be executed. All of the required libraries are listed at requirements.txt as well as their respective versions. In order to install all the necessary package one could run the following command

pip install -r requirements.txt

File list

  • run.py

  • Script that runs the entire project. It's the main file of the project, and generates the results available at the results folder.

  • experiment.py

  • Script where a single experiment is defined. It estimates and evaluates a model on the train, validation and test sets

  • dataset.py

  • Script where the dataset is defined. It's responsible for loading the dataset and generating the train, validation and test sets.

  • eval.py

  • Script where the evaluation of the model is defined. It's responsible for calculating the metrics of the model on the train, validation and test sets.

  • models/

  • Folder where each of the implemented models are defined. All of them are implemented with the PyTorch Geometric package from python.

Execution

After installing all the necessary packages, one can run the project by executing the following command

python run.py

Results

The results obtained by running the project are available at the results folder. The results are in pickle format and can de loaded into a python Dictionary object by perfoming the command

with open('results/<result_file_name>.pkl', 'rb') as f:
    results = pickle.load(f)

About

Applying Graph Deep Learning techniques for maximal clique detection in graphs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages