Skip to main content

Feature extraction for exploratory landscape analysis

Project description

DoE2Vec

DoE2Vec is a self-supervised approach to learn exploratory landscape analysis features from design of experiments. The model can be used for downstream meta-learning tasks such as learninig which optimizer works best on a given optimization landscape. Or to classify optimization landscapes in function groups.

The approach uses randomly generated functions and can also be used to find a "cheap" reference function given a DOE. The model uses Sobol sequences as the default sampling method. A custom sampling method can also be used. Both the samples and the landscape should be scaled between 0 and 1.

Install package via pip

`pip install doe2vec`

Afterwards you can use the package via:

from doe2vec import doe_model

Load a model from the HuggingFace Hub

Available models can be viewed here: https://huggingface.co/BasStein A model name is build up like BasStein/doe2vec-d2-m8-ls16-VAE-kl0.001
Where d is the number of dimensions, 8 the number (2^8) of samples, 16 the latent size, VAE the model type (variational autoencoder) and 0.001 the KL loss weight.

Example code of loading a huggingface model

obj = doe_model(
            2,
            8,
            n= 50000,
            latent_dim=16,
            kl_weight=0.001,
            use_mlflow=False,
            model_type="VAE"
        )
obj.load_from_huggingface()
#test the model
obj.plot_label_clusters_bbob()

How to Setup your Environment for Development

  • python3.8 -m venv env
  • source ./env/bin/activate
  • pip install -r requirements.txt

Generate the Data Set

To generate the artificial function dataset for a given dimensionality and sample size run the following code

from doe2vec inport doe_model

obj = doe_model(d, m, n=50000, latent_dim=latent_dim)
if not obj.load():
    obj.generateData()
    obj.compile()
    obj.fit(100)
    obj.save()

Where d is the number of dimensions, m the number of samples (2^m) per DOE, n the number of functions generated and latent_dim the size of the output encoding vector.

Once a data set and encoder has been trained it can be loaded with the load() function.

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

doe2vec-0.8.0.tar.gz (27.5 kB view details)

Uploaded Source

Built Distribution

doe2vec-0.8.0-py3-none-any.whl (28.3 kB view details)

Uploaded Python 3

File details

Details for the file doe2vec-0.8.0.tar.gz.

File metadata

  • Download URL: doe2vec-0.8.0.tar.gz
  • Upload date:
  • Size: 27.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.12

File hashes

Hashes for doe2vec-0.8.0.tar.gz
Algorithm Hash digest
SHA256 c1d84e54d00824632381b708058e6d45818e563e6a867d5b74f84fa0e7b929ce
MD5 29d5ace3416b406a850213bf065bf0c9
BLAKE2b-256 240fccecfc0d25c40777c59025b8737ea5999c5f6f66b98d6edc74d6b7ac0677

See more details on using hashes here.

File details

Details for the file doe2vec-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: doe2vec-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 28.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.12

File hashes

Hashes for doe2vec-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2e5861877cb53d19d69991453a30c7d5305bff1449204eb2353d010cf9bfe503
MD5 ad5c7af166db5636d76a8860392d9d1f
BLAKE2b-256 6d11b901e96ac9b4f02ab6e9a2b385f3a4754e004afbc38b4d1a9d06d70097b7

See more details on using hashes here.

Supported by

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