- Update README.md
- Update info to reflect setting python 3.6 as the default version
- Update documentation to setting python 3.6 as default
- Add dask support to elfi client options
- Add python 3.7 to travis tests and remove python 3.5 due to clash with dask
- Modify progress bar to better indicate ABC-SMC inference status
- Change networkx support from 1.X to 2.X
- Improve docstrings in elfi.methods.bo.acquisition
- Fix readthedocs-build by adding .readthedocs.yml and restricting the build to python3.5, for now
- Fix incompatibility with scipy>1.5 in bo.utils.stochastic_optimization
- Minor improvements to documentation
- Improved the appearance of figures produced by plot_gp and added the option to draw true parameter indicators on the subplots using the optional input true_params
- Modified DCC model by taking into account that subject can't infect herself
- Added ability to set minimizer constrains for BOLFI
- Enable bolfi.fit using only pre-generated initial evidence points
- Fixed a bug causing random seed number to be deterministic
- Updated requirements-dev.txt with pytest>=4.4
- Minor changes to documentation and refactoring
- Added make test-notslow alternative
- Add sampler option algorithm for bolfi-posterior-sampling
- Add a check whether the option given for algorithm is one if the implemented samplers
- Add metropolis sampler algorithm=metropolis for bolfi-posterior-sampling
- Add option warmup to metropolis-sampler
- Add a small test of metropolis-sampler
- Fix bug in plot_discrepancy for more than 6 parameters
- Implement plot_gp for BayesianOptimization classes for plotting discrepancies and pair-wise contours in case when we have arbitrary number of parameters
- Fix lint
- Fix bug in plot_pairs which crashes in case of 1 parameter
- Fix bug in plot_marginals which outputs empty plots in case where we have parameter more than 5
- Fix crashing summary and plots for samples with multivariate priors
- Add progress bar for inference methods
- Add method save to Sample objects
- Add support for giving seed to generate
- Implement elfi.plot_params_vs_node for plotting parameters vs. node output
- Added support for kwargs in elfi.set_client
- Added new example: inference of transmission dynamics of bacteria in daycare centers
- Added new example: Lorenz model
- Implemented model selection (elfi.compare_models). See API documentation.
- Fix threshold=0 in rejection sampling
- Set default batch_size to 1 in ParameterInference base class
- Added new example: the stochastic Lotka-Volterra model
- Fix methods.bo.utils.minimize to be strictly within bounds
- Implemented the Two Stage Procedure, a method of summary-statistics diagnostics
- Added the MaxVar acquisition method
- Added the RandMaxVar acquisition method
- Added the ExpIntVar acquisition method
- Implemented the Two Stage Procedure, a method of summary-statistics diagnostics
- Added new example: the stochastic Lotka-Volterra model
- Fix methods.bo.utils.minimize to be strictly within bounds
- Fix elfi.Distance to support scipy 1.0.0
- Further performance improvements for rerunning inference using stored data via caches
- Added the general Gaussian noise example model (fixed covariance)
- restrict NetworkX to versions < 2.0
- Easier saving and loading of ElfiModel
- Renamed elfi.set_current_model to elfi.set_default_model
- Renamed elfi.get_current_model to elfi.get_default_model
- Improved performance when rerunning inference using stored data
- Change SMC to use ModelPrior, use to immediately reject invalid proposals
- Fix elfi.Prior and NoneType error #203
- Fix a bug preventing the reuse of ArrayPool data with a new inference
- Added pickling for OutputPool:s
- Added OutputPool.open to read a closed pool from disk
- Refactored Sample and SmcSample classes
- Added elfi.new_model method
- Made elfi.set_client method to accept clients as strings for easier client switching
- Fixed a bug in NpyArray that would lead to an inconsistent state if multiple simultaneous instances were opened.
- Added the ability to move the pool data folder
- Sample.summary is now a method instead of a property
- SmcSample methods takes the keyword argument 'all' to show results of all populations
- Added a section about iterative advancing to documentation
- Changed some of the internal variable names in methods.py. Most notable outputs is now output_names.
- methods.py renamed to parameter_inference.py
- Changes in elfi.methods.results module class names: - OptimizationResult (a new result type) - Result -> Sample - ResultSMC -> SmcSample - ResultBOLFI -> BolfiSample
- Changes in BO/BOLFI: - take advantage of priors - take advantage of seed - improved optimization scheme - bounds must be a dict
- two new toy examples added: Gaussian and the Ricker model
Major update, a lot of code base rewritten.
Most important changes:
- revised syntax for model definition (esp. naming)
- scheduler-independent parallelization interface (currently supports native & ipyparallel)
- methods can now be run iteratively
- persistence to .npy files
- Bayesian optimization as a separate method
- sampling in BOLFI
- MCMC sampling using the No-U-Turn-Sampler (NUTS)
- Result object for BOLFI
- virtual vectorization of external operations
See the updated notebooks and documentation for examples and details.
- Clean up requirements
- Set graphviz and unqlite optional
- PyPI release (pip install elfi)
- The inference problem is now contained in an Inference Task object.
- SMC-ABC has been reimplemented.
- Results from inference are now contained in a Result object.
- Integrated basic visualization.
- Added a notebook demonstrating usage with external simulators and operations.
- Lot's of refactoring and other minor changes.