Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gabriel Graph Network Ensemble (GGNE)

The Gabriel Graph Network Ensemble (GGNE) is a non-iterative ensemble method designed to train ChipClass efficiently on large datasets. It applies a divide-and-conquer strategy inspired by Breiman's RVote, splitting the dataset into disjoint subsets without replacement to preserve the structural properties of the Gabriel graph.

Each subset is used to:

  1. Construct a Gabriel graph
  2. Train a ChipClass model on that graph

Since models are trained independently, GGNE supports parallel computation and reduces both training time and memory usage. Final predictions are obtained through majority voting across all trained models.

The subset size is controlled by the hyperparameter:

$$ \tau = \alpha \cdot N, \quad \alpha \in (0, 0.5] $$

where:

  • N = total number of samples
  • τ = number of samples per subset

Key Advantages

  • Preserves the original Gabriel graph topology
  • Supports distributed and parallel training
  • Speeds up training time up to 7000 times [article]

This repository accompanies the publication at ESANN 2026:

@inproceedings{souza2026scaling,
  title     = {Scaling up graph-based classifiers with a divide and conquer approach},
  author    = {Souza, Caius and Almeida, Rafael Lopes and Coelho, Frederico Gualberto Ferreira and Braga, Antonio Padua},
  booktitle = {Proceedings of the 34th European Symposium on Artificial Neural Networks, Computational Intelligence and Machine Learning (ESANN 2026)},
  year      = {2026},
  doi       = {10.14428/esann/2026.ES2026-222}
}

⚙️ Installation

  1. Clone the repository:

    git clone git@github.com:litc-ufmg/ggne.git
    cd ggne
  2. Create and activate your virtual environment with Python 3.12, for example as described here for virtualenv.

  3. Install GNNE using:

    pip install .

    or for development:

    pip install -e .

📄 Configuration

All model parameters and runtime settings are defined in a YAML configuration file.
An example file, parameters.yaml, is provided.

Example: Defining hyperparameter ranges for tuning

To enable hyperparameter optimization, define parameters using min, max, or choices:

tune_svm:
C:
    min: 0.001
    max: 15
kernel:
    choices: [rbf, sigmoid]

Example: Setting fixed parameter values

If you want to specify fixed values without optimization, use value:

tune_svm:
C:
    value: 1
kernel:
    value: rbf

🔎 Usage

Once the configuration file is ready, you can run GGNE from the terminal (with your virtual environment activated). Please remember to replace parameters.yaml with your own configuration file path.

  • Run hyperparameter optimization

    ggne_tune -c parameters.yaml
  • Run model training

    ggne_train -c parameters.yaml

Computational Intelligence Laboratory (LITC)






This project was developed at the Computational Intelligence Laboratory of the Federal University of Minas Gerais (LITC-UFMG).

About

The Gabriel Graph Network Ensemble (GGNE) is a non-iterative ensemble method designed to train ChipClass efficiently on large datasets.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages