Skip to main content

Package for managing IOH data

Project description

IOHinspector

Tests Codacy Badge Codacy Badge PyPI - Version PyPI - Downloads

IOHinspector is a Python package designed for processing, analyzing, and visualizing benchmark data from iterative optimization heuristics (IOHs). Whether you're working with single-objective or multi-objective optimization problems, IOHinspector provides a collection of tools to gain insights into algorithm performance.

IOHinspector is a work-in-progress, and as such some features might be incomplete or have their call signatures changed or expanded when new updates release. As part of the IOHprofiler framework, our aim is to achieve feature parity with the IOHanalyzer web-version. Additionally, this package serves as the basis for large-scale data processing, which is currently unspported on the web version.

Features

  • Data Processing: Efficient import and process benchmark data. We currently only support the file structure from IOHexperimenter, but this will be expanded in future releases. By utlizing polars and the meta-data split, large sets of data can be handled efficiently.
  • Analysis: Perform in-depth analyses of single- and multi-objective optimization results. For the multi-objective scenario, a variety of performance indicators are supported (hypervolume, igd+, R2, epsilon), each with the option to flexibly change reference points/set as required.
  • Visualization: Create informative plots to better understand the optimization process. This included standard fixed-budget and fixed-target plots, EAF and ECDF visualization and more.

Installation

The minamal suported Python version is 3.10. Install IOHinspector via pip:

pip install iohinspector

Basic usage

The basic usage of the framework is through the data manager object. A simple example is given below. This assumes that a folder created via the IOHexperimenter called test_data exists and contains profiling data. This can be generated via the file generate_test_data.py in the tests folder.

import os
from iohinspector import DataManager, plot_ecdf

# Creating a data manager
manager = DataManager()
data_folders = [os.path.join('test_data', x) for x in os.listdir('test_data')]
manager.add_folders(data_folders)

# Loading & selecting data 
selection = manager.select(function_ids=[1], algorithms=['algorithm_A', 'algorithm_B'])
df = selection.load(monotonic=True, include_meta_data=True)

# Creating an ECDF plot
plot_ecdf(df)

ecdf

Tutorials

To highlight the usage of IOHinspector, we have created two tutorials in the form of jupyter notebooks:

License

This project is licensed under a standard BSD-3 clause License. See the LICENSE file for details.

Acknowledgments

This work has been estabilished as a collaboration between:

  • Diederick Vermetten
  • Jeroen Rook
  • Oliver L. Preuß
  • Jacob de Nobel
  • Carola Doerr
  • Manuel López-Ibañez
  • Heike Trautmann
  • Thomas Bäck

Cite us

Citation information coming soon!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iohinspector-0.0.3.tar.gz (26.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iohinspector-0.0.3-py3-none-any.whl (25.4 kB view details)

Uploaded Python 3

File details

Details for the file iohinspector-0.0.3.tar.gz.

File metadata

  • Download URL: iohinspector-0.0.3.tar.gz
  • Upload date:
  • Size: 26.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for iohinspector-0.0.3.tar.gz
Algorithm Hash digest
SHA256 eb7d368015caa77373560df0f4e91aa8afbcb70a311d0db3ef298943e227c22d
MD5 3c643250b45aefd1903d21f4ed557cbf
BLAKE2b-256 b608aaf9e115a998f07b7f5e1afdd261366abf36f687daf1e41556141fe30cd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for iohinspector-0.0.3.tar.gz:

Publisher: python-publish.yml on IOHprofiler/IOHinspector

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iohinspector-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: iohinspector-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 25.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for iohinspector-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ae51f759ae19423c3ef17c164b4fd8691d91fe3ebb1dfccdf8791a7f68cf5157
MD5 ae9a0ef2909d481b77dd683c839d252b
BLAKE2b-256 02eb2947d786c2053f5613ce984ca6d10b2ccf99eb0f99580a03a064e197dff9

See more details on using hashes here.

Provenance

The following attestation bundles were made for iohinspector-0.0.3-py3-none-any.whl:

Publisher: python-publish.yml on IOHprofiler/IOHinspector

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page