Files in this directory demonstrate use cases for some of mystic's "advanced"
features, such as using dimensional collapse detectors, building a surrogate
for an unknown surface, or using support vectors in optimization.


== Notes on mystic examples3 ==
Naming convention:
  - `3D` denotes use of 3-D toy model in surrogate.py
  - `5D` denotes use of 5-D toy model in toys.py
  - `GP` denotes use of sklearn GP regression instead of RBF interpolation
  - `ML` denotes use of sklearn MLP regression instead of RBF interpolation
  - `c0mean` denotes a (backpropagation) calculation of mean value of an input
  - `collapse` denotes use of dimensional collapse detectors
  - `mean` denotes a calculation of mean value of an output
  - `ouq` denotes use of high-level UQ interface to find bounds, surrogates
  - `pandas` denotes mystic extensions/interface to pandas
  - `pof` denotes a probability of failure calculation
  - `searcher` denotes optimizer-driven discovery of all extrema [DEPRECATED]
  - `sklearn` denotes mystic extensions/interface to sklearn
  - `surface` denotes optimizer-driven surface interpolation [DEPRECATED]
  - `svc` denotes use of support vectors in classification
  - `svr` denotes use of support vectors in regression
  - `sparsity` denotes use of the sparsity sampler

OUQ calculations:
  - test_*_ub_*: find upper bound on (mean of input/output, or PoF) [examples5]
  - test_error*: find model error
  - test_expected*: find expected value
  - test_expected_error* find expected error
  - test_glb*: find greatest lower bound
  - test_gub*: find greatest upper bound
  - test_llb*: find least lower bound
  - test_lub*: find least upper bound
  - test_pof: find probability of failure (PoF)

Miscellaneous:
 - test_improve_score: workflow to retry/update sklearn estimators

External dependencies:
  - examples with "svc", "svr", or "sparsity" in the name require `matplotlib`.
  - examples with "surface" and "searcher" require `scipy` and `matplotlib`.
  - examples with "pandas" require `pandas` and `matplotlib`.
  - otherwise, assume `sklearn` and `matplotlib` are required.

In-place dependencies for ouq*:
  - dataset: extensions on dataset operations
  - estimator: high-level OUQ estimator (requires sklearn)
  - interpolator: high-level OUQ interpolator
  - misc: miscellaneous constraints and definitions for OUQ calculation
  - ml: lower-level interface to sklearn, used by estimator
  - noisy: add noise for OUQ noisy model
  - plotter: high-level interface to plotting learned surrogates
  - spec*: same as misc, used in test_*_ub_* OUQ calculations
  - surrogate: hypervelocity impact model, used in test_*_ub_* OUQ calculations
  - toys: simple toy models for OUQ calculations
