Ejemplo n.º 1
0
 def _bayes(self, X):
     N = len(X)
     mu_is_gaussian = isinstance(self.mu, Gaussian)
     tau_is_gamma = isinstance(self.tau, Gamma)
     if mu_is_gaussian and not tau_is_gamma:
         mu = np.mean(X, 0)
         tau = self.mu.tau + N * self.tau
         self.mu = Gaussian(
             mu=(self.mu.mu * self.mu.tau + N * mu * self.tau) / tau,
             tau=tau)
     elif not mu_is_gaussian and tau_is_gamma:
         var = np.var(X, axis=0)
         a = self.tau.a + 0.5 * N
         b = self.tau.b + 0.5 * N * var
         self.tau = Gamma(a, b)
     elif mu_is_gaussian and tau_is_gamma:
         raise NotImplementedError
     else:
         raise NotImplementedError
Ejemplo n.º 2
0
 def _bayes_tau(self, X):
     N = len(X)
     var = np.var(X, axis=0)
     a = self.tau.a + 0.5 * N
     b = self.tau.b + 0.5 * N * var
     self.tau = Gamma(a, b)