Skip to content
Alessio Faraci edited this page Sep 11, 2025 · 4 revisions

Welcome to the GPhub-kit wiki!

GPhub-kit is a Python toolkit for benchmarking and evaluating Gaussian Process (GP) regression libraries across multiple programming languages.


Package Structure

Core benchmarking functionality, including predefined problems and custom benchmark creation.

  • Data Preprocessing: Automatic scaling and standardization using scikit-learn

  • Standard Benchmarks: BM01-BM07 covering various dimensionalities and complexities

  • Composite Benchmark: Multi-dimensional benchmark with configurable parameters (2-64D, 100-3000 training samples)

  • Custom Benchmarks: Create benchmarks from user-provided datasets

Tools for loading, generating, and splitting datasets.

  • Dataset Loading: Load training/test splits from CSV files with automatic validation using Polars
  • Dataset Splitting: Split existing datasets using scikit-learn with automatic dimensionality handling
  • Synthetic Generation: Create datasets by sampling mathematical functions with uniform/LHS methods using pyDOE

Comprehensive metrics computation.

  • Regression Metrics: MAE, RMSE, MSE, MedAE, R² coefficient computed with scikit-learn

  • Probabilistic Metrics: NLPD (Negative Log Predictive Density), MSLL (Mean Standardized Log Loss)

  • Performance Profiling: Training/prediction time and memory usage tracking

  • Rich Console Output: Formatted tables with Rich console and colorized metrics display

Multi-language benchmark execution engine.

  • Python Executor: Dynamic loading with PythonGPLibrary abstract base class for standardized interfaces

  • R Executor: rpy2-based execution

  • Julia Executor: juliacall integration for running Julia GP implementations

  • MATLAB Executor: MATLAB Engine API for executing MATLAB GP toolboxes

Results visualization with LaTeX integration for mathematical notation.

  • Cross-Validation Plots: Dual-panel actual vs predicted with residual analysis and density comparisons

  • Prediction Visualization: Automatic 1D/2D/3D plotting with uncertainty bands, contour, and surface plots

  • Radar Charts: Multi-metric comparative analysis with normalized metrics and transparency

Essential utilities providing multi-language template generation.

  • Template System: Multi-language code templates for Python, R, Julia, and MATLAB

Clone this wiki locally