{"id":15358588,"url":"https://github.com/tupui/kdoe","last_synced_at":"2025-07-10T15:39:23.139Z","repository":{"id":110306472,"uuid":"175187706","full_name":"tupui/KDOE","owner":"tupui","description":"Kernel-based Design of Experiments","archived":false,"fork":false,"pushed_at":"2019-03-12T11:06:56.000Z","size":1813,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T22:29:09.803Z","etag":null,"topics":["design-of-experiments","kernel-density-estimation","python"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tupui.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-12T10:29:39.000Z","updated_at":"2022-08-15T21:34:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"cde5fc78-f7f9-43ae-8f86-fe286100bdcf","html_url":"https://github.com/tupui/KDOE","commit_stats":{"total_commits":3,"total_committers":2,"mean_commits":1.5,"dds":"0.33333333333333337","last_synced_commit":"09803578c76c02ad9d2ce443ec6f8a1ab4a2be78"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tupui%2FKDOE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tupui%2FKDOE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tupui%2FKDOE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tupui%2FKDOE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tupui","download_url":"https://codeload.github.com/tupui/KDOE/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245916256,"owners_count":20693389,"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":["design-of-experiments","kernel-density-estimation","python"],"created_at":"2024-10-01T12:41:52.995Z","updated_at":"2025-03-27T19:49:05.775Z","avatar_url":"https://github.com/tupui.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":".. image:: https://img.shields.io/badge/python-3.6-blue.svg\n\nKD0E\n====\n\nWhat is it?\n-----------\n\nThis project implements a new stochastic, iterative Design of Experiments (DoE)\nbased on a modified Kernel Density Estimation (KDE) [Roy2019]_.\n\nIt is a two-step process: *(i)* candidate samples are generated using MCMC based\non KDE, and *(ii)* one of them is selected based on some metric. The performance\nof the method is assessed by means of the :math:`C^2`-discrepancy space-filling\ncriterion. KDOE appears to be as performant as classical one-shot methods in low\ndimensions, while it presents increased performance for high-dimensional parameter\nspaces. This work proposes a new  methodology to stochastically sample the input\nparameter space iteratively allowing, at the same time, to take into account any\nconstraint, such as non-rectangular DoE, sensitivity indices or even constraint\non the quality on particular subprojections. It is a versatile method which\noffers an alternative to classical methods and, at the same time, is easy to\nimplement and offers customization based on the objective of the DoE.\n\n.. code-block:: python\n\n    sampler = KdeSampler(dim=50)\n    sample_kde = sampler.generate(n_samples=30)\n\nFollowing is an 2-dimensional subprojection of the sample of size 50 in dimension 30: \n\n.. image::  data/20_8_kde.png\n   :width: 50 %\n\n\nHow does it work?\n-----------------\n\nAssuming that a group of sample is already computed, the PDF of the sample is estimated\nby KDE. This estimator is reversed so that the probability close to the existing\nsamples is low and the probability in empty area is high. Moreover, the distance\nfunction used in the KDE is modified to use a Minkowsky distance. This modification\nallows to lower the probability on a given axis.\n\n.. image::  data/inv_minkowsky.png\n   :width: 50 %\n\nThen, using a MCMC sampling on this KDE field, a given number of sample is generated.\nOn point is selected based on a given metric (here the :math:`C^2`-discrepancy).\n\n.. image::  data/sampling_KDE.png\n   :width: 50 %\n\nRequirements\n------------\n\nThe dependencies are: \n\n- Python \u003e= 2.7 or \u003e= 3.5\n- `scikit-learn \u003chttp://scikit-learn.org\u003e`_ \u003e= 0.18\n- `numpy \u003chttp://www.numpy.org\u003e`_ \u003e= 0.13\n- `scipy \u003chttp://scipy.org\u003e`_ \u003e= 0.15\n\nReferences\n----------\n\n.. [Roy2019] Versatile Adaptive Sampling Algorithm using Kernel Density Estimation.\n  Pamphile T. Roy, L. Jofre, J.C. Jouhaud, B. Cuenot. 2019\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftupui%2Fkdoe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftupui%2Fkdoe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftupui%2Fkdoe/lists"}