Path to this page:
Subject: CVS commit: pkgsrc/math/py-pymc3
From: Adam Ciarcinski
Date: 2019-06-16 21:17:23
Message id: 20190616191723.A7B6AFBF4@cvs.NetBSD.org
Log Message:
py-pymc3: updated to 3.7
PyMC3 3.7 (May 29 2019)
New features
Add data container class (Data) that wraps the theano SharedVariable class and \
let the model be aware of its inputs and outputs.
Add function set_data to update variables defined as Data.
Mixture now supports mixtures of multidimensional probability distributions, not \
just lists of 1D distributions.
GLM.from_formula and LinearComponent.from_formula can extract variables from the \
calling scope. Customizable via the new eval_env argument.
Added the distributions.shape_utils module with functions used to help broadcast \
samples drawn from distributions using the size keyword argument.
Used numpy.vectorize in distributions.distribution._compile_theano_function. \
This enables sample_prior_predictive and sample_posterior_predictive to ask for \
tuples of samples instead of just integers.
Maintenance
All occurances of sd as a parameter name have been renamed to sigma. sd will \
continue to function for backwards compatibility.
HamiltonianMC was ignoring certain arguments like target_accept, and not using \
the custom step size jitter function with expectation 1.
Made BrokenPipeError for parallel sampling more verbose on Windows.
Added the broadcast_distribution_samples function that helps broadcasting arrays \
of drawn samples, taking into account the requested size and the inferred \
distribution shape. This sometimes is needed by distributions that call several \
rvs separately within their random method, such as the ZeroInflatedPoisson.
The Wald, Kumaraswamy, LogNormal, Pareto, Cauchy, HalfCauchy, Weibull and \
ExGaussian distributions random method used a hidden _random function that was \
written with scalars in mind. This could potentially lead to artificial \
correlations between random draws. Added shape guards and broadcasting of the \
distribution samples to prevent this.
Added a fix to allow the imputation of single missing values of observed data, \
which previously would fail.
The draw_values function was too permissive with what could be grabbed from \
inside point, which lead to an error when sampling posterior predictives of \
variables that depended on shared variables that had changed their shape after \
pm.sample() had been called.
draw_values now adds the theano graph descendants of TensorConstant or \
SharedVariables to the named relationship nodes stack, only if these descendants \
are ObservedRV or MultiObservedRV instances.
Fixed bug in broadcast_distrution_samples, which did not handle correctly cases \
in which some samples did not have the size tuple prepended.
Changed MvNormal.random's usage of tensordot for Cholesky encoded covariances. \
This lead to wrong axis broadcasting and seemed to be the cause for issue 3343.
Fixed defect in Mixture.random when multidimensional mixtures were involved. The \
mixture component was not preserved across all the elements of the dimensions of \
the mixture. This meant that the correlations across elements within a given \
draw of the mixture were partly broken.
Restructured Mixture.random to allow better use of vectorized calls to \
comp_dists.random.
Added tests for mixtures of multidimensional distributions to the test suite.
Fixed incorrect usage of broadcast_distribution_samples in DiscreteWeibull.
Mixture's default dtype is now determined by theano.config.floatX.
dist_math.random_choice now handles nd-arrays of category probabilities, and \
also handles sizes that are not None. Also removed unused k kwarg from \
dist_math.random_choice.
Changed Categorical.mode to preserve all the dimensions of p except the last \
one, which encodes each category's probability.
Changed initialization of Categorical.p. p is now normalized to sum to 1 inside \
logp and random, but not during initialization. This could hide negative values \
supplied to p as mentioned in 2082.
Categorical now accepts elements of p equal to 0. logp will return -inf if there \
are values that index to the zero probability categories.
Add sigma, tau, and sd to signature of NormalMixture.
Set default lower and upper values of -inf and inf for \
pm.distributions.continuous.TruncatedNormal. This avoids errors caused by their \
previous values of None.
Converted all calls to pm.distributions.bound._ContinuousBounded and \
pm.distributions.bound._DiscreteBounded to use only and all positional \
arguments.
Restructured distributions.distribution.generate_samples to use the shape_utils \
module. This solves issues 3421 and 3147 by using the size aware broadcating \
functions in shape_utils.
Fixed the Multinomial.random and Multinomial.random_ methods to make them \
compatible with the new generate_samples function. In the process, a bug of the \
Multinomial.random_ shape handling was discovered and fixed.
Fixed a defect found in Bound.random where the point dictionary was passed to \
generate_samples as an arg instead of in not_broadcast_kwargs.
Fixed a defect found in Bound.random_ where total_size could end up as a float64 \
instead of being an integer if given size=tuple().
Fixed an issue in model_graph that caused construction of the graph of the model \
for rendering to hang: replaced a search over the powerset of the nodes with a \
breadth-first search over the nodes.
Removed variable annotations from model_graph but left type hints. This means \
that we support python>=3.5.4.
Default target_acceptfor HamiltonianMC is now 0.65, as suggested in Beskos et. \
al. 2010 and Neal 2001.
Fixed bug in draw_values that lead to intermittent errors in python3.5. This \
happened with some deterministic nodes that were drawn but not added to givens.
Deprecations
nuts_kwargs and step_kwargs have been deprecated in favor of using the standard \
kwargs to pass optional step method arguments.
SGFS and CSG have been removed. They have been moved to pymc3-experimental.
References to live_plot and corresponding notebooks have been removed.
Function approx_hessian was removed, due to numdifftools becoming incompatible \
with current scipy. The function was already optional, only available to a user \
who installed numdifftools separately, and not hit on any common codepaths.
Deprecated vars parameter of sample_posterior_predictive in favor of varnames.
References to live_plot and corresponding notebooks have been removed.
Deprecated vars parameters of sample_posterior_predictive and \
sample_prior_predictive in favor of var_names. At least for the latter, this is \
more accurate, since the vars parameter actually took names.
Files: