{"id":20071388,"url":"https://github.com/daffidwilde/edo","last_synced_at":"2025-05-05T19:34:04.828Z","repository":{"id":54938816,"uuid":"139703799","full_name":"daffidwilde/edo","owner":"daffidwilde","description":"A library for generating artificial datasets through genetic evolution.","archived":false,"fork":false,"pushed_at":"2021-01-20T12:01:17.000Z","size":8643,"stargazers_count":13,"open_issues_count":7,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-04-26T01:06:14.874Z","etag":null,"topics":["data-generation","evolutionary-algorithms","optimisation"],"latest_commit_sha":null,"homepage":"https://doi.org/10.1007/s10489-019-01592-4","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daffidwilde.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.rst","codeowners":null,"security":null,"support":null}},"created_at":"2018-07-04T09:59:27.000Z","updated_at":"2023-02-10T01:58:48.000Z","dependencies_parsed_at":"2022-08-14T07:01:16.400Z","dependency_job_id":null,"html_url":"https://github.com/daffidwilde/edo","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daffidwilde%2Fedo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daffidwilde%2Fedo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daffidwilde%2Fedo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daffidwilde%2Fedo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daffidwilde","download_url":"https://codeload.github.com/daffidwilde/edo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224465018,"owners_count":17315732,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-generation","evolutionary-algorithms","optimisation"],"created_at":"2024-11-13T14:28:58.695Z","updated_at":"2024-11-13T14:28:59.518Z","avatar_url":"https://github.com/daffidwilde.png","language":"Python","readme":".. image:: https://img.shields.io/pypi/v/edo.svg\n   :target: https://pypi.org/project/edo/\n\n.. image:: https://github.com/daffidwilde/edo/workflows/CI/badge.svg\n   :target: https://github.com/daffidwilde/edo/actions?query=workflow%3ACI+branch%3Amain\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n   :target: https://github.com/ambv/black\n\nEvolutionary Dataset Optimisation\n*********************************\n\nA library for generating artificial datasets through evolution.\n===============================================================\n\nThe ``edo`` library provides an evolutionary algorithm that optimises any\nreal-valued function over a subset of the space of all possible datasets that we\ncall `Evolutionary Dataset Optimisation`. The output of the algorithm is a bank\nof effective datasets for which the provided function performs well that can\nthen be studied.\n\nThe applications of this method are varied but an important and relevant one is\nin learning an algorithm's strengths and weaknesses.\n\nWhen determining the quality of an algorithm, the standard route is to run the\ncomparable algorithms on a finite set of existing (or newly simulated) datasets\nand calculating some metric. The algorithm(s) with the smallest value of this\nmetric are chosen to be the best performing.\n\nAn issue with this approach is that it pays little regard to the reliability\nand quality of the datasets being used, which begs the question: what makes\na dataset \"good\" for an algorithm? Or, why is it that an algorithm performs well\non some datasets but not others?\n\nBy passing the objective function of the algorithm to the ``edo.DataOptimiser``\nclass, questions like these can be answered by studying the properties of the\nresultant datasets. Beyond that, a combination of objective functions could be\nused to determine how an algorithm performs against any number of other\nalgorithms. A comprehensive description of the evolutionary algorithm and an\nexamplar case study is available at https://doi.org/10.1007/s10489-019-01592-4.\n\nInstallation\n============\n\nThe ``edo`` library requires Python 3.6+ and is ``pip``-installable::\n\n    $ python -m pip install edo\n\nTo install from source then clone the GitHub repo::\n\n    $ git clone https://github.com/daffidwilde/edo.git\n    $ cd edo\n    $ python setup.py install\n\nA command line tool has been developed to make using ``edo`` for larger\nexperiments easier: https://github.com/daffidwilde/edolab\n\nPublications and documentation\n==============================\n\nFull documentation for the library is available at https://edo.readthedocs.io.\n\nAn article on the theory behind the algorithm has been published:\n\n    Wilde, H., Knight, V. \u0026 Gillard, J. Evolutionary dataset optimisation:\n    learning algorithm quality through evolution. *Appl Intell* **50**,\n    1172-1191 (2020). https://doi.org/10.1007/s10489-019-01592-4\n\nCitation instructions\n=====================\n\nCiting the library\n------------------\n\nPlease use the following to cite the library::\n\n    @misc{edo-library,\n        author = {{The EDO library developers}},\n        title = {edo: \u003cRELEASE TITLE\u003e},\n        year = \u003cRELEASE YEAR\u003e,\n        doi = {\u003cDOI INFORMATION\u003e},\n        url = {http://doi.org/\u003cDOI INFORMATION\u003e}\n    }\n\nTo check the relevant details (i.e. ``RELEASE TITLE``, ``RELEASE YEAR`` and\n``DOI NUMBER``) head to the library's Zenodo page:\n\n.. image:: https://zenodo.org/badge/139703799.svg\n   :target: https://zenodo.org/badge/latestdoi/139703799\n\nCiting the paper\n----------------\n\nIf you wish to cite the paper, then use the following::\n\n    @article{edo-paper,\n        title = {Evolutionary dataset optimisation: learning algorithm quality\n                 through evolution},\n        author = {Wilde, Henry and Knight, Vincent and Gillard, Jonathan},\n        journal = {Applied Intelligence},\n        year = 2020,\n        volume = 50,\n        pages = {1172--1191},\n        doi = {10.1007/s10489-019-01592-4},\n    }\n\nContributing to the library\n===========================\n\nContributions are always welcome whether they come in the form of providing a\nfix for a current `issue \u003chttps://github.com/daffidwilde/edo/issues\u003e`_,\nreporting a bug or implementing an enhancement to the library code itself. Pull\nrequests (PRs) will be reviewed and collaboration is encouraged.\n\nTo make a contribution via a PR, follow these steps:\n\n1. Make a fork of the `GitHub repo \u003chttps://github.com/daffidwilde/edo\u003e`_ and\n   clone your fork locally::\n\n        $ git clone https://github.com/\u003cyour-username\u003e/edo.git\n\n2. Install the library in development mode. If you use Anaconda, there is a\n   ``conda`` environment file (``environment.yml``) with all of the development\n   dependencies::\n\n        $ cd edo\n        $ conda env create -f environment.yml\n        $ conda activate edo-dev\n        $ python setup.py develop\n\n3. Make your changes and write tests to go with them. Ensure that they pass and\n   you have 100% coverage::\n   \n        $ python -m pytest --cov=edo --cov-fail-under=100 tests\n\n4. Push to your fork and open a pull request.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaffidwilde%2Fedo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaffidwilde%2Fedo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaffidwilde%2Fedo/lists"}