Source code for binf.example.misc

import numpy as np
    
[docs]def predict(x, y, samples, polynomial): from csb.numeric import log_sum_exp if True: f = lambda coefficients, precision, x=x, y=y: -0.5 * (polynomial(x, coefficients) - y) ** 2 * precision + 0.5 * np.log(precision) - 0.5 * np.log(2.0 * np.pi) integrands = np.array([f(**x.variables) for x in samples]) else: from binf.example.likelihood import make_likelihood Lnew = make_likelihood(np.array([x]), np.array([y]), polynomial) integrands = np.array([Lnew.log_prob(**x.variables) for x in samples]) return np.exp(log_sum_exp(integrands)) / len(samples)
[docs]def get_MAP(samples, log_probs): map_sample = samples[np.argmax(log_probs)] return map_sample.variables['coefficients'], map_sample.variables['precision']
[docs]def make_posterior(xses, ys, polynomial): from binf.pdf.posteriors import Posterior from binf.example.likelihood import make_likelihood from binf.example.priors import make_priors L = make_likelihood(xses, ys, polynomial) priors = make_priors() return Posterior({L.name: L}, priors)