Sampling function added.

This commit is contained in:
Ricardo 2013-10-07 12:34:38 +01:00
parent f5b16a13aa
commit d6095de224
2 changed files with 23 additions and 0 deletions

View file

@ -117,3 +117,16 @@ class Binomial(NoiseDistribution):
def _d2variance_dgp2(self,gp): def _d2variance_dgp2(self,gp):
return self.gp_link.d2transf_df2(gp)*(1. - 2.*self.gp_link.transf(gp)) - 2*self.gp_link.dtransf_df(gp)**2 return self.gp_link.d2transf_df2(gp)*(1. - 2.*self.gp_link.transf(gp)) - 2*self.gp_link.dtransf_df(gp)**2
def samples(self, gp):
"""
Returns a set of samples of observations based on a given value of the latent variable.
:param size: number of samples to compute
:param gp: latent variable
"""
orig_shape = gp.shape
gp = gp.flatten()
Ysim = np.array([np.random.binomial(1,self.gp_link.transf(gpj),size=1) for gpj in gp])
return Ysim.reshape(orig_shape)

View file

@ -413,3 +413,13 @@ class NoiseDistribution(object):
q1 = np.vstack(q1) q1 = np.vstack(q1)
q3 = np.vstack(q3) q3 = np.vstack(q3)
return pred_mean, pred_var, q1, q3 return pred_mean, pred_var, q1, q3
def samples(self, gp):
"""
Returns a set of samples of observations based on a given value of the latent variable.
:param gp: latent variable
"""
pass