zeus
zeus copied to clipboard
[ENH] support for named parameters
In emcee
I added a PR for having named parameters (proposal, and the PR). This allows for dict-like access to the parameters rather than positional references. Example:
x = np.random.randn(100) # 100 samples ~ N(0, 1)
def lnpdf(self, params: Dict[str, float]) -> np.float64:
# A gaussian PDF with named parameters
mean = params["mean"]
var = params["var"]
if var <= 0:
return -np.inf
return (
-0.5 * ((mean - self.x) ** 2 / var + np.log(2 * np.pi * var)).sum()
)
The main benefit is this allows one to build hierarchical models without having to remember "oh the first parameter for the N-th submodel is at position XYZ" (a common source of bugs).
Since zeus
has the same API, I'd be happy to add it here too.
That looks great! Really useful feature. Please go ahead submitting a PR.