subcrpmm.py 文件源码

python
阅读 19 收藏 0 点赞 0 评论 0

项目:PyBGMM 作者: junlulocky 项目源码 文件源码
def gibbs_update_mask(self, i_iter):
        mask_old = copy.deepcopy(self.mask)
        assert self.common_component.K==1, "common component can only have one cluster component"

        for i_dim in range(self.D):
            mask_new = copy.deepcopy(self.mask)

            # Compute log probability of `mask[i]`
            log_prob_mask = np.zeros(2, np.float)
            mask_new[i_dim] = 0
            log_prob_mask[0] = self.log_marg_mask(mask_new)
            mask_new[i_dim] = 1
            log_prob_mask[1] = self.log_marg_mask(mask_new)


            prob_mask = np.exp(log_prob_mask - logsumexp(log_prob_mask))

            # Sample the new component assignment for `mask[i]`
            k = utils.draw(prob_mask)
            self.mask[i_dim] = k

        self.p_bern = np.random.beta(self.bern_prior.a + np.sum(self.mask),
                                     self.bern_prior.b + self.D - np.sum(self.mask), 1)[0]
        self.make_robust_p_bern()

        if i_iter % 20 == 0:
            logging.info('p_bern_new: {}'.format(self.p_bern))
            logging.info('mask old: {}'.format(mask_old))
            logging.info('mask new: {}'.format(self.mask))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号