All notable changes to this project will be documented in this file.
[0.2.10] - unreleased
- 🚧 Fixed spurious warning during model creation (#186, @jobrachem)
- 🚧 Update logging setup (#187, @jobrachem)
- ✨ New method
Var.transform
. (#174, @jobrachem)
- 🚧 Pinned scipy version to <=1.12 (@jobrachem)
- 🚧 Handeled error in
liesel.model.model.transform
for duplicated nodes (#167, @GianmarcoCallegher) - ✨
lsl.Calc
nodes will now try to evaluate their function upon initialization. This can make it much easier to spot errors early. The behavior can be turned off by passingupdate_on_init=False
. (#92, @jobrachem) - 🚧 Fixed unexpected behaviour
liesel.model.viz.plot_vars
when using an intermediateCalc
. (#168, @GianmarcoCallegher)
- ✨ Added
NamedTupleInterface
(#151, @wiep)
- ✨ Large documentation updates! (#149, #146, #145, #143, #135, #134, @jobrachem; #144, #140, @GianmarcoCallegher)
- ✨ The method
gs.Summary.error_df()
is now publicly available. (#137, @jobrachem) - ✨ The class
liesel.goose.engine.SamplingResults
is now exported vialiesel.goose
, which means it can be used asgs.SamplingResults
. (@jobrachem) - ✨ Improved the efficiency of the
liesel.distributions.mvn_degen.MultivariateNormalDegenerate.from_penalty
constructor (#101, @GianmarcoCallegher) - ✨ Added alternative constructor
.from_penalty_smooth
toMultivariateNormalDegenerate
(#133, @GianmarcoCallegher) - 🚧 Added
observed=True
to apd.DataFrame.groupby()
call ingoose/summary_m.py
to silence a warning due to a deprecation in pandas v2.1.0 - 🚧 Renamed
lsl.Param
tolsl.param
andlsl.Obs
tolsl.obs
to reflect the fact that those are functions, not classes. The old names are deprecated and scheduled for removal in v0.4.0. (#130, @jobrachem) - 🚧 Renamed/moved the following symbols. The old names are deprecated and scheduled for removal in v0.4.0. (#136, @jobrachem)
liesel.model.goose.GooseModel
-> (renamed/moved)liesel.goose.interface.LieselInterface
liesel.goose.models.DictModel
-> (renamed/moved)liesel.goose.interface.DictInterface
liesel.goose.models.DataClassModel
-> (renamed/moved)liesel.goose.interface.DataclassInterface
- 🚧 Some maintenance updates to stay up to date with dependencies (#147, #141, #102, @GianmarcoCallegher; #139, @wiep; #109, @jobrachem)
- 🚧 Updated for compatibility with Blackjax 1.0.0 (#100, @wiep & @hriebl)
- 🚧 Updated for compatibility with the latest mypy update (#97, @wiep & @hriebl)
- ✨ Added functionality for easy setup and customization of initial value jittering (#72, @GianmarcoCallegher & @hriebl)
- ✨ Improved error messages in
lsl.Calc.update()
(#84, @jobrachem) - 🚧 Fixed a bug in
gs.plot_param()
(#81, @viktoriussuwandi) - 🚧 Fixed an error in the tutorial on linear regression (#85, @jobrachem)
- 🚧 Fixed the display of the plot title in
gs.plot_scatter()
(#98, @hriebl)
- 🚧 Removed all references to
jax.numpy.DeviceArray
to make Liesel compatible with Jax 0.4.14 (#73, @jobrachem) - ✨ Added a visual distinction for edges that represent a connection to a variable's distribution or value (#76, @GianmarcoCallegher)
- ✨ Added
ls.Model.simulate()
, which provides a convenient way to draw random samples from a Liesel model using the specified priors. (#70, @hriebl) - ✨ Added
liesel.model.goose.finite_discrete_gibbs_kernel
, which helps you to automatically set up ags.GibbsKernel
for a discrete variable (#64 & #65, @jobrachem and @hriebl) - ✨ Added an intialization message to
gs.Engine
(#66, @GianmarcoCallegher)
- 📖 Improved documentation (#47, #48, @jobrachem, @hriebl)
- ✨ Added convert_dtype to graph builder (#50, @hriebl)
- ✨ New overview page for tutorials (#62, @jobrachem)
- ✨ New tutorial on advanced group usage (#63, @jobrachem)
- ✨ Added a method to convert sampling results to arviz's inference data (#49, @wiep)
- 🚧 Changes
__repr__
for multiple classes inliesel.model
(#57, @wiep)
- 🚚 The tutorials have been updated to v.0.2.2 and are now part of the documentation (@jobrachem, @wiep, @hriebl, @GianmarcoCallegher)
- ✨ Added new tutorial showcasing the interface to PyMC (@GianmarcoCallegher)
- ✨ Added node / variable groups (#28, @jobrachem)
- ✨ Sampling from the
MultivariateNormalDegenerate
is now possible (#34, @jobrachem) - 🚧 Fixed undefined behaviour in the distreg module (#20, @hriebl)
- 🚧 The distreg module will now use variables names as position keys (#22, @hriebl)
0.2.1 - 2022-12-25
- 🦢 Updated the experimental PyMC interface for Goose to PyMC 5.0 (@wiep)
- 🦢 Fixed a bug with the column dtype being
object
instead offloat
in the MCMC summary (@wiep)
0.2.0 - 2022-12-09
For this release, the Liesel modeling library has been rewritten from scratch. We are currently working on updated tutorials explaining the new concepts introduced in v0.2.0 in full detail.
- 👧 Rewrote the Liesel modeling library from scratch, introducing the
Var
and theGraphBuilder
- 👧 Replaced the
SmoothPrior
TFP distribution with the more generalMultivariateNormalDegenerate
- 🦢 Removed deprecated functionality from the Goose summary modules
⚠️ The import paths have changed:import liesel.liesel as lsl
➡️import liesel.model as lsl
import liesel.tfp.jax.distributions as lsld
➡️import liesel.distributions as lsld
import liesel.tfp.jax.bijectors as lslb
➡️import liesel.bijectors as lslb
- @hriebl
- @wiep
- @jobrachem
- @GianmarcoCallegher
0.1.4 - 2022-10-24
- 🌍 We have a new project homepage: https://liesel-project.org
- 📖 Migrated the docs from pdoc to Sphinx: https://docs.liesel-project.org (@jobrachem)
- 🦢 An MCMC summary can now be created with
gs.Summary(results)
instead ofgs.Summary.from_results(results)
(#13, @jobrachem) - 🦢 Fixed a bug with the reported quantiles in the per-chain MCMC summary (#14, @jobrachem)
0.1.3 - 2022-09-01
- 🦢 Added a generic Metropolis-Hastings kernel that can wrap a user-defined proposal function (@wiep)
- 🦢 Added a column to the MCMC summary table that lists the MCMC kernel for each model parameter (@jobrachem)
- 🦢 Added an experimental PyMC interface that can sample PyMC models with Goose (@wiep)
- Updated dependencies: JAX == 0.3.16, BlackJAX >= 0.8.3 (@jobrachem, @hriebl)
- Improved logging setup using a non-propagating logger (@jobrachem)
0.1.2 - 2022-07-27
- 🦢 Fixed MCMC summary for single chains (@hriebl)
0.1.1 - 2022-07-20
- 🦢 Thinning is now possible in warmup and posterior epochs (@wiep)
- 🦢 The NUTS kernel now reports an error when reaching the maximum tree depth (@hriebl)
- 🦢 The MCMC error log can now be extracted and summarized more conveniently (@wiep, @hriebl)
- 🦢 New functions for scatter and pair plots of MCMC samples (@jobrachem)
- 📖 New chapter on reproducibility (@GianmarcoCallegher, @hriebl)
0.1.0 - 2022-06-17
- First release.
- @wiep
- @hriebl
- @joel-beck
- @GianmarcoCallegher
- @jobrachem