Skip to main content

A flexible and generic framework for explainable landscape analysis (xLA).

Project description

pyXla

Documentation: pyxla-wg-e5eff5.gitlab.io


Overview

pyXla (Python package for eXplainable landscape analysis) is a flexible and generic framework for explainable landscape analysis (xLA).

Explainability is achieved by incorporating landscape analysis (LA) features that are meant for intuitive interpretation, and accompanied by visualisations alongside metrics whenever possible. Flexibility and generality are achieved by separating sampling from the actual analysis such that all the techniques implemented operate on a unified input format. As a result, the proposed framework can produce results even with a minimum of input components.

The focus of other landscape analysis branches such as exploratory landscape analysis (ELA), has leaned more towards automated problem analysis, where low-level features are used to train machine learning models to distinguish between problems for the purpose of automated algorithm selection.

The use of machine learning techniques for analysis of uninterpretable low-level features entails a loss of explainability, where focus has shifted from intuitively understanding the nature of optimisation problems and associated algorithmic performance to reliance on black-box problem characterisation and algorithm selection. Explainability is a key aim of LA, and a desirable property, more so in the context of explainable artificial intelligence (xAI). ELA's dependence on machine learning pipelines in LA limits its explainability.

In pyXla, inputs are either provided in designated files or by specifying functions to generate the inputs. The inputs are: F for objective values, X for solutions, V for violation values, D for pairwise distances between solutions, N for neighbourhood relationships between solutions, and I for any other additional input. Additionally, the following sampling algorithms for continuous problems are implemented: random walk sampling, adaptive walk sampling, and Hilbert curve sampling.

A total of 16 explainable landscape analysis features grouped into 4 categories are implemented comprising:

  • the statistical features: distribution of objective values (distr_F), distribution of violation values (distr_V), correlation of values (corr), correlation of ranks (corr_ranks), and variable importance (X_imp);

  • the ranking-based features: distribution of Pareto ranks (distr_Par) and distribution of Deb's ranks (distr_Deb);

  • the distance-based features: fitness distance correlation (FDC), violation distance correlation (VDC), rank distance correlation (RDC), pairwise distance correlation (PDC), and dispersion of the best solutions (disp_best); and

  • the neighbourhood features: neighbouring solutions' objective values correlation (NFC), neighbouring solutions' violation value of correlation (NVC), neighbouring solutions' ranks correlation (NRC), and neighbouring change in feasibility (NCF).

The pyXla framework conveniently composes the 16 landscape analysis features and three sampling algorithms, thus simplifying explainable landscape analysis. The figure below is a high-level diagram of the framework:

High-level diagram of the pyXla framework

A high-level diagram of the pyXla framework.

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

pyxla-0.0.8.tar.gz (80.6 MB view details)

Uploaded Source

Built Distribution

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

pyxla-0.0.8-py3-none-any.whl (30.1 kB view details)

Uploaded Python 3

File details

Details for the file pyxla-0.0.8.tar.gz.

File metadata

  • Download URL: pyxla-0.0.8.tar.gz
  • Upload date:
  • Size: 80.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

File hashes

Hashes for pyxla-0.0.8.tar.gz
Algorithm Hash digest
SHA256 d55f1ae2cdd923f4d6844ca792b0a5919fb3486c8dfce9dc3906b557343b8d98
MD5 90b70c51dee3ffd80ae5de66efd26e63
BLAKE2b-256 7491384e8fbb558a9deed06a46516716905c1178011831f3894a4b4f1872c934

See more details on using hashes here.

File details

Details for the file pyxla-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: pyxla-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 30.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.3 cpython/3.12.3 HTTPX/0.28.1

File hashes

Hashes for pyxla-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 085dffd265070ced10fe606d68272266d62ccce11a1b2bffcc39e7de7e2b7b6f
MD5 c1d295393c57c136308b131b19eba6ad
BLAKE2b-256 c24bd39c0679debdb6b4d92248d54f43b6d1f91845d10d95dc3a8565dfc14a4c

See more details on using hashes here.

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