Skip to main content

Python library designed to analyze and compare the performance of different algorithms across multiple problems using non-parametric statistical tests

Reason this release was yanked:

Vulnerabilidad

Project description

SAES: Stochastic Algorithm Evaluation Suite

SAES

SAES is a Python library designed to analyse and compare the performance of stochastic algorithms (e.g. metaheuristics and machine learning techniques) on multiple problems.

The current version of the tool offers the following capabilities:

  1. Seamless CSV data processing

    • Import and preprocess experiment results effortlessly.
    • Handle datasets of varying sizes with ease.
  2. Statistical analysis

    • Non-parametric tests:
      • Friedman test
      • Wilcoxon signed-rank test
    • Post hoc analysis:
      • Nemenyi test (critical distance)
  3. Report generation

    • Automated LaTeX reports with the following types of tables:
      • Median table
      • Median table with Friedman test
      • Median table with Wilcoxon pairwise test (pivot-based)
      • Pairwise Wilcoxon test table (1-to-1 comparison)
  4. Visualization

    • Boxplot graphs for algorithm comparison.
    • Critical distance plots for statistical significance.
  5. CL Interface

    • Command Line feature to access the different SAES functions

This tool is aimed at researchers and developers interested in algorithm benchmarking studies for artificial intelligence, optimization, machine learning, and more.

SAES is a new project that is in its early stages of development. Feel free to open issues for comments, suggestions and bug reports.

📖 Context

A stochastic algorithm is an algorithm that incorporates randomness as part of its logic. This randomness leads to variability in outcomes even when applied to the same problem with the same initial conditions. Stochastic algorithms are widely used in various fields, including optimization, machine learning, and simulation, due to their ability to explore larger solution spaces and avoid local optima. Analyzing and comparing stochastic algorithms pose challenges due to their inherent randomness due to the fact that single run does not provide a complete picture of its performance; instead, multiple runs are necessary to capture the distribution of possible outcomes. This variability necessitates a statistical-based methodology based on descriptive (mean, median, standard deviation, ...) and inferential (hypothesis testing) statistics and visualization.

SAES assumes that the results of comparative study between a number of algorithms is provided in a CSV file with this scheme:

  • Algorithm (string): Algorithm name.
  • Instance (string): Instance name.
  • MetricName (string): Name of the quality metric used to evaluate the algorithm performace on the instance.
  • ExecutionId (integer): Unique identifier for each algorithm run .
  • MetricValue (double): Value of the metric corresponding to the run.

Example of Data file content

Algorithm Instance MetricName ExecutionId MetricValue
SVM Iris Accuracy 0 0.985
SVM Iris Accuracy 1 0.973
... ... ... ... ...

You will also need a second file to store the information of the different metrics that you to make study. The file must have the following scheme:

  • MetricName (string): Name of the quality metric used to evaluate the algorithm performace on the instance.
  • Maximize (boolean): Boolean value to show whether the metric value in that row must be maximized or minimized.

Example of Metric file content

MetricName Maximize
Accuracy True
Loss False
... ...

SAES API

The SAES library offers a range of functions categorized into three groups, corresponding to its three main features. The following links provide the SAES Tutorial and the SAES API documentation that includes a detailed list of these functions:

  1. Boxplot Generation
    • boxplots_all_metrics_instances()
    • boxplot_all_instances()
    • boxplot()
    • boxplot_all_instances_grid()
  2. LaTeX Report Generation
    • latex_all_metrics()
    • latex()
    • latex_table()
  3. Critical Distance Graph Generation
    • CDplot_all_metrics()
    • CDplot()
  4. CSV Dataset Manipulation
    • process_dataframe_extended()
    • process_dataframe_basic()
    • process_csv_metrics()
    • process_csv()
    • obtain_list_instances()
    • obtain_list_metrics()

🛠 Requirements

  • Python: >= 3.10

📦 Installation

Before installing the project, we recommend creating a virtual environment to avoid conflicts with other Python projects:

python3 -m venv venv
source venv/bin/activate  # On Windows, use `venv\Scripts\activate`

Once you have activated the virtual environment, you can install the project with its dependencies using the following command:

pip install SAES

🤝 Contributors

  • GitHub Emilio Rodrigo Carreira Villalta
  • GitHub Antonio J. Nebro

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

saes-1.0.4.tar.gz (2.1 MB view details)

Uploaded Source

Built Distribution

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

saes-1.0.4-py3-none-any.whl (37.1 kB view details)

Uploaded Python 3

File details

Details for the file saes-1.0.4.tar.gz.

File metadata

  • Download URL: saes-1.0.4.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for saes-1.0.4.tar.gz
Algorithm Hash digest
SHA256 2b1919572b86f631541cdbcb4a8f9b8bb3f4fb0220ad4430f8b15f7ba89ce7b3
MD5 2d3035dd0391b75286046fde93ca9e26
BLAKE2b-256 f36fbba0f98dd44257ed00c120ef476989c92f58ce7d16ac55506b45aff8f247

See more details on using hashes here.

Provenance

The following attestation bundles were made for saes-1.0.4.tar.gz:

Publisher: publish.yml on jMetal/SAES

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

File details

Details for the file saes-1.0.4-py3-none-any.whl.

File metadata

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

File hashes

Hashes for saes-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 661a5ba20a5f52dc81112f40c38de61664a5258da90de56c46e99d2b7ea50382
MD5 48b8163151cc5aea5248dbb45c7617d2
BLAKE2b-256 1c79609600bb08c6fd22a7f1678bc436421b21b717afa606e7b370910ab047d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for saes-1.0.4-py3-none-any.whl:

Publisher: publish.yml on jMetal/SAES

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