Skip to main content

AlgLab

Framework for performing experiments with algorithms in Python.

This package provides a framework for building extendable and reproducible experiments with algorithms in python. This high-level workflow is to

  1. Specify a dataset on which to perform an experiment.
  2. Implement the algorithms which are to be compared.
  3. Implement any evaluation methods by which the algorithm outputs will be scored.
  4. Specify the experimental setup, including dataset and algorithm parameters.
  5. Run the experiments, and
  6. Analyse the results.

This preserves a separation between the dataset, algorithm, evaluation methods, and experimental setup. This makes it easy to extend and modify experimental setups by changing the datasets, adding new algorithms, or changing parameters.

Example

Here's a simple example of the workflow using datasets and evaluation functions already provided by alglab.

import alglab

# First, implement the algorithms that you would like to compare.
# Note that the signature of the implemented algorithms should take a dataset as the first argument,
# followed by the algorithm parameters as keyword arguments, with default values.
def kmeans(data: alglab.dataset.PointCloudDataset, k=10):
    sklearn_km = KMeans(n_clusters=k)
    sklearn_km.fit(data.data)
    return sklearn_km.labels_

def spectral_clustering(data: alglab.dataset.PointCloudDataset, k=10):
    sklearn_sc = SpectralClustering(n_clusters=k)
    sklearn_sc.fit(data.data)
    return sklearn_sc.labels_

# Configure the experiments. As well as the algorithms, we specify which dataset class to use,
# and the parameters for the algorithms and dataset.
#
# We also specify any functions which should be used to evaluate the algorithms, and give a
# filename in which to store the results.
experiments = alglab.experiment.ExperimentalSuite(
    [kmeans, spectral_clustering],
    alglab.dataset.TwoMoonsDataset,
    "results/twomoonsresults.csv",
    parameters={
        "k": 2,
        "dataset.n": np.linspace(1000, 5000, 6).astype(int),
    },
    evaluators=[alglab.evaluation.adjusted_rand_index],
)

def main():
    # Run the experiments
    experiments.run_all()

    # Now, we can visualise the results
    results = alglab.results.Results("results/twomoonsresults.csv")
    results.line_plot("n", "running_time_s")
    results.line_plot("n", "adjusted_rand_index")

Metadata

Release files for alglab 1.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for alglab 1.2.1
File Size Uploaded Provenance Actions
alglab-1.2.1.tar.gz 15.3 kB With provenance Details for alglab-1.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for alglab 1.2.1
File Interpreter ABI Platform Actions
alglab-1.2.1-py3-none-any.whl Python 3 none any Details for alglab-1.2.1-py3-none-any.whl

Total release size: 27.7 kB

Release files / alglab-1.2.1.tar.gz

Download URL alglab-1.2.1.tar.gz
Size 15.3 kB
Tags Source
SHA-256 checksum
How to use checksums
bc6e313fbae4235b233e0144556a166627d4dc80289fee0922c2d7918d43ba71
BLAKE2b-256 checksum
How to use checksums
b16bf4d63f7e54c28fdea2479cef4b27cec62f8b568f2e9595d723338682b389
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2025.

Transparency log

Release files / alglab-1.2.1-py3-none-any.whl

Download URL alglab-1.2.1-py3-none-any.whl
Size 12.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c2c297940ec37c036cdfe5933602ab758bc37c3d2e4b4cc44df1718a703359a6
BLAKE2b-256 checksum
How to use checksums
1ff98f1912d606d6ec7580d12e9f6ec72c2492d12ecdcf8b109006b11039095d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2025.

Transparency log

Security for alglab 1.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for alglab-1.2.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2025.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page