Exemple #1
0
    def updateTau(self): #perform max_iter Gibbs updates
        
        iter = 0
        self.lp = self.logPosterior(self.gamma_store[0,:],self.tau,self.eta_store[0,:])
        self.lp_star = self.lp
        self.tau_star = np.copy(self.tau)
        self.tau_store[iter,]=np.copy(self.tau)
        
        while (iter < self.max_iter):
            nchange = sampletau.sample_tau(self.tau, self.gamma_store[iter,:], self.eta_store[iter,:], self.variants)        
            #nchange = self.sampleTau(self.gamma_star,self.eta_star)
            self.ll = self.logLikelihood(self.gamma_store[iter,:],self.tau,self.eta_store[iter,:])
            self.lp = self.logPosterior(self.gamma_store[iter,:],self.tau,self.eta_store[iter,:])
            if (self.lp > self.lp_star):
                self.tau_star = np.copy(self.tau)
                self.lp_star = self.lp
            
            self.tau_store[iter,]=np.copy(self.tau)
            self.ll_store[iter]=self.ll
            if (iter % 10 == 0):    
                logging.info('Gibbs Iter %d, no. changed = %d, nll = %f'%(iter,nchange,self.lp))

            sys.stdout.flush()
            iter = iter + 1
        self.updateTauIndices()
Exemple #2
0
    def update(self): #perform max_iter Gibbs updates
        iter = 0
        self.ll = self.logLikelihood(self.gamma,self.tau,self.eta)
        self.lp = self.logPosterior(self.gamma,self.tau,self.eta)
        self.storeStarState(iter)
        
        while (iter < self.max_iter):
            self.sampleMu(self.tau,self.gamma,self.eta)
            self.sampleGamma()
            
            #nchange = self.sampleTau()
            nchange = sampletau.sample_tau(self.tau, self.gamma, self.eta, self.variants)
           
            self.sampleEta()
            
            self.ll = self.logLikelihood(self.gamma,self.tau,self.eta)
            self.lp = self.logPosterior(self.gamma,self.tau,self.eta)
            self.ll_store[iter] = self.ll
            if(self.lp > self.lp_star):
                self.storeStarState(iter)
            self.mu_store[iter,]=np.copy(self.mu)
            self.tau_store[iter,]=np.copy(self.tau)
            self.E_store[iter,]=np.copy(self.E)
            self.eta_store[iter,] = np.copy(self.eta)
            self.gamma_store[iter,] = np.copy(self.gamma)
            
            if (iter % 10 == 0):    
                logging.info('Gibbs Iter %d, no. changed = %d, nlp = %f'%(iter,nchange,self.lp))
            
            iter = iter + 1

        self.updateTauIndices()
Exemple #3
0
    def updateTau(self): #perform max_iter Gibbs updates
        
        iter = 0
        self.lp = self.logPosterior(self.gamma_store[0,:],self.tau,self.eta_store[0,:])
        self.lp_star = self.lp
        self.tau_star = np.copy(self.tau)
        self.tau_store[iter,]=np.copy(self.tau)
        
        while (iter < self.max_iter):
            nchange = sampletau.sample_tau(self.tau, self.gamma_store[iter,:], self.eta_store[iter,:], self.variants)        
            #nchange = self.sampleTau(self.gamma_star,self.eta_star)
            self.ll = self.logLikelihood(self.gamma_store[iter,:],self.tau,self.eta_store[iter,:])
            self.lp = self.logPosterior(self.gamma_store[iter,:],self.tau,self.eta_store[iter,:])
            if (self.lp > self.lp_star):
                self.tau_star = np.copy(self.tau)
                self.lp_star = self.lp
            
            self.tau_store[iter,]=np.copy(self.tau)
            self.ll_store[iter]=self.ll
            if (iter % 10 == 0):    
                logging.info('Gibbs Iter %d, no. changed = %d, nll = %f'%(iter,nchange,self.lp))

            sys.stdout.flush()
            iter = iter + 1
        self.updateTauIndices()
Exemple #4
0
    def update(self): #perform max_iter Gibbs updates
        iter = 0
        self.ll = self.logLikelihood(self.gamma,self.tau,self.eta)
        self.lp = self.logPosterior(self.gamma,self.tau,self.eta)
        self.storeStarState(iter)
        
        while (iter < self.max_iter):
            self.sampleMu(self.tau,self.gamma,self.eta)
            self.sampleGamma()
            
            #nchange = self.sampleTau()
            nchange = sampletau.sample_tau(self.tau, self.gamma, self.eta, self.variants)
           
            self.sampleEta()
            
            self.ll = self.logLikelihood(self.gamma,self.tau,self.eta)
            self.lp = self.logPosterior(self.gamma,self.tau,self.eta)
            self.ll_store[iter] = self.ll
            if(self.lp > self.lp_star):
                self.storeStarState(iter)
            self.mu_store[iter,]=np.copy(self.mu)
            self.tau_store[iter,]=np.copy(self.tau)
            self.E_store[iter,]=np.copy(self.E)
            self.eta_store[iter,] = np.copy(self.eta)
            self.gamma_store[iter,] = np.copy(self.gamma)
            
            if (iter % 10 == 0):    
                logging.info('Gibbs Iter %d, no. changed = %d, nlp = %f'%(iter,nchange,self.lp))
            
            iter = iter + 1

        self.updateTauIndices()
Exemple #5
0
    def sampleTauC(self, tau, variants, eta, gamma=None, epsilon=None):

        if gamma is None:
            gamma = self.gamma

        if epsilon is None:
            epsilon = self.epsilon

        V = tau.shape[0]

        #rework gamma matrix
        gammaR = self.maskGamma(gamma, eta)
        nchange = sampletau.sample_tau(tau, gammaR, epsilon, variants)

        return nchange
Exemple #6
0
    def sampleTauC(self,tau,variants,eta,gamma=None,epsilon=None):

        if gamma is None:
            gamma = self.gamma
        
        if epsilon is None:
            epsilon = self.epsilon
        
        V = tau.shape[0]
        
        #rework gamma matrix
        gammaR = self.maskGamma(gamma,eta)
        nchange = sampletau.sample_tau(tau, gammaR, epsilon, variants)

        return nchange