def __init__(self, num_states, gamma_a_0, gamma_b_0, alpha_a_0, alpha_b_0, beta=None, trans_matrix=None, **kwargs): if num_states is None: assert beta is not None or trans_matrix is not None self.N = len(beta) if beta is not None else trans_matrix.shape[0] else: self.N = num_states self.beta_obj = MultinomialAndConcentration(a_0=gamma_a_0, b_0=gamma_b_0, K=self.N, weights=beta) self.alpha_obj = GammaCompoundDirichlet(self.N, alpha_a_0, alpha_b_0) # NOTE: we don't want to call WeakLimitHDPHMMTransitions.__init__ # because it sets beta_obj in a different way _HMMTransitionsBase.__init__(self, num_states=self.N, alphav=self.alpha * self.beta, trans_matrix=trans_matrix, **kwargs)
def __init__(self,num_states,alpha_a_0,alpha_b_0,**kwargs): self.alpha_obj = GammaCompoundDirichlet(num_states,alpha_a_0,alpha_b_0) super(_ConcentrationResamplingMixin,self).__init__( num_states=num_states,alpha=self.alpha,**kwargs)