Trata offers a large number of general sampling strategies that can be used to explore parameter spaces or improve a model's predictive ability.
Trata contains 4 modules:
composite_samples
kosh_sampler
sampler
adaptive_sampler
The composite_samples
module enables a user to parse a tab or csv file and create a "variable", or parameter, class object that represents discrete discrete-ordered, or continuous samples. The parse_file
function returns a Samples
object containing the points from the file. Other file types would need to be parsed with a custom function.
The kosh_samples
module allows a user to easily interact with data from a Sina catalog. Based on the Kosh datasets and trained model, the adaptive sampling methods below will choose the next best samples for the model.
Delta
ExpectedImprovement
LearningExpectedImprovement
To learn more about Kosh, please visit their GitHub.
The sampler
module enables a user to select the type of sampling method they would like to perform across a design parameter space. The available options include:
CartesianCross
Centered
Corner
Dakota
DefaultValue
Face
LatinHyperCube
MonteCarlo
MultiNormal
OneAtATime
ProbabilityDensityFunction
QuasiRandomNumber
Rejection
SamplePoint
Uniform
UserValue
The number of samples required to build an accurate surrogate model is a posteriori knowledge determined by the complexity of the approximated input-output relation. Therefore enriching the training dataset as training progresses is performed and is known as active learning.
The adaptive_sampler
module allows a user to specify learning functions to help identify the next sample with the highest information value. Those learning functions are designed to allocate samples to regions where the surrogate model is thought to be inaccurate or uncertain, or the regions where particularly interesting combinations of design parameters lie, such as the region that possibly contains the globally optimum values of the design parameters. The available options include:
ActiveLearning
Delta
ExpectedImprovement
LearningExpectedImprovement
To get the latest public version:
pip install trata
To get the latest stable from a cloned repo, simply run:
pip install .
Alternatively, add the path to this repo to your PYTHONPATH environment variable or in your code with:
import sys
sys.path.append(path_to_trata_repo)
The Trata documentation.
The documentation can be built from the docs
directory using:
make html
Trata maintainer can be reached at: olson59@llnl.gov
Contributing to Trata is relatively easy. Just send us a pull request. When you send your request, make develop the destination branch on the Trata repository.
Your PR must pass Trata's unit tests and documentation tests, and must be PEP 8 compliant. We enforce these guidelines with our CI process. To run these tests locally, and for helpful tips on git, see our Contribution Guide.
Trata's develop
branch has the latest contributions. Pull requests should target develop
, and users who want the latest package versions, features, etc. can use develop
.
Contributions should be submitted as a pull request pointing to the develop
branch, and must pass Trata's CI process; to run the same checks locally, use:
pytest tests/test_*.py
See our change log for more details.
Please note that Trata has a Code of Conduct. By participating in the Trata community, you agree to abide by its rules.
Trata is distributed under the terms of the MIT license. All new contributions must be made under the MIT license. See LICENSE and NOTICE for details.
LLNL-CODE-838977