Ejemplo n.º 1
0
	def train(self):
		'''Different ways of computing the transition probability matrix can be considered'''
		#TO FIX : Should P be computed from the similarity matrix or directly as transition probability from the graph ? 
		
		if (self.sim == 'cos'):
			self.Sim = toolBox.cosineSimilarity(self.UI)
			self.P = toolBox.AtoP(self.Sim)
		if (self.sim == 'cp'):
			self.Sim = toolBox.cosineSimilarity(self.UI)
			self.P = toolBox.AtoP(self.Sim)
		if (self.sim == 'bn'):
			self.P = toolBox.transitionProbability(self.UI)
Ejemplo n.º 2
0
    def train(self):
        '''Different ways of computing the transition probability matrix can be considered'''
        #TO FIX : Should P be computed from the similarity matrix or directly as transition probability from the graph ?

        if (self.sim == 'cos'):
            self.Sim = toolBox.cosineSimilarity(self.UI)
            self.P = toolBox.AtoP(self.Sim)
        if (self.sim == 'cp'):
            self.Sim = toolBox.cosineSimilarity(self.UI)
            self.P = toolBox.AtoP(self.Sim)
        if (self.sim == 'bn'):
            self.P = toolBox.transitionProbability(self.UI)
        self.P = transpose(self.P)
Ejemplo n.º 3
0
	def train(self):
		print "Start training..."
		#debug_here()
		#self.Cost = repeat(reshape(self.ItemPrior, (self.ItemPrior.shape[0],1)), self.ItemPrior.shape[0], axis=0)
		self.Cost = repeat(reshape(self.ItemPrior/mean(self.ItemPrior), (1,self.ItemPrior.shape[0])), self.ItemPrior.shape[0], axis=0)
		print self.Cost.shape
		#debug_here()
		if (self.sim == 'cos'):
			self.Sim = toolBox.cosineSimilarity(self.UI)
			self.Pref = toolBox.AtoP(self.Sim)
		if (self.sim == 'bn'):
			self.Pref = toolBox.transitionProbability(self.UI)
		
		#self.P = toolBox.BRWWR_Comp(self.Pref, ones(self.Pref.shape), self.theta)
		self.P = toolBox.BRWWR_Comp(self.Pref, self.Cost, self.theta)
		
		#Transpose P to get a correct random walk with restart
		self.P = transpose(self.P)
Ejemplo n.º 4
0
    def train(self):
        print "Start training..."
        #debug_here()
        #self.Cost = repeat(reshape(self.ItemPrior, (self.ItemPrior.shape[0],1)), self.ItemPrior.shape[0], axis=0)
        self.Cost = repeat(reshape(self.ItemPrior / mean(self.ItemPrior),
                                   (1, self.ItemPrior.shape[0])),
                           self.ItemPrior.shape[0],
                           axis=0)
        print self.Cost.shape
        #debug_here()
        if (self.sim == 'cos'):
            self.Sim = toolBox.cosineSimilarity(self.UI)
            self.Pref = toolBox.AtoP(self.Sim)
        if (self.sim == 'bn'):
            self.Pref = toolBox.transitionProbability(self.UI)

        #self.P = toolBox.BRWWR_Comp(self.Pref, ones(self.Pref.shape), self.theta)
        self.P = toolBox.BRWWR_Comp(self.Pref, self.Cost, self.theta)

        #Transpose P to get a correct random walk with restart
        self.P = transpose(self.P)
Ejemplo n.º 5
0
	def _buildRandomWalkScore(self,d):
		
		epsilon = 0.001
		#P = matrix(toolBox.randomWalkTransitionProbability(self.UI))
		P = matrix(toolBox.AtoP(toolBox.cosineSimilarity(self.UI)))
		R = matrix(zeros((self.nbItems, self.nbItems)), dtype=float64)
		U = matrix(eye(self.nbItems, self.nbItems,dtype=float64))
		#U = U / self.nbItems
		diff = 1000
		count = 20
		print 'Convergence ...'
		while (diff > epsilon) and (count > 0):
			#print P,R,U
			oldRSum= sum(R)
			R = d*P*R + (1-d)*U
			diff = abs(oldRSum - sum(R)) / sum(R)
			count-=1
			print diff
		
		#for i in arange(R.shape[0]):
		#	R[i,i] = 1
		print R
		print sum(R,0)
		self.R = array(R)
Ejemplo n.º 6
0
    def _buildRandomWalkScore(self, d):

        epsilon = 0.001
        #P = matrix(toolBox.randomWalkTransitionProbability(self.UI))
        P = matrix(toolBox.AtoP(toolBox.cosineSimilarity(self.UI)))
        R = matrix(zeros((self.nbItems, self.nbItems)), dtype=float64)
        U = matrix(eye(self.nbItems, self.nbItems, dtype=float64))
        #U = U / self.nbItems
        diff = 1000
        count = 20
        print 'Convergence ...'
        while (diff > epsilon) and (count > 0):
            #print P,R,U
            oldRSum = sum(R)
            R = d * P * R + (1 - d) * U
            diff = abs(oldRSum - sum(R)) / sum(R)
            count -= 1
            print diff

        #for i in arange(R.shape[0]):
        #	R[i,i] = 1
        print R
        print sum(R, 0)
        self.R = array(R)
Ejemplo n.º 7
0
	def computeSim(self, type='Cosine'):
		
		print 'Compute similarity'
		if type == 'cos':
			self.Sim = toolBox.cosineSimilarity(self.UI)
Ejemplo n.º 8
0
	def _buildSimMatrix(self):
		self.Sim = array(toolBox.cosineSimilarity(self.UI))
Ejemplo n.º 9
0
    def computeSim(self, type='Cosine'):

        print 'Compute similarity'
        if type == 'cos':
            self.Sim = toolBox.cosineSimilarity(self.UI)
Ejemplo n.º 10
0
 def _buildSimMatrix(self):
     self.Sim = array(toolBox.cosineSimilarity(self.UI))
Ejemplo n.º 11
0
	def _buildMatrices(self):
		'''Different ways of computing the transition probability matrix can be considered'''
		print 'Compute Sim & P'
		self.Sim = toolBox.cosineSimilarity(self.UI)
		self.P = toolBox.AtoP(self.Sim)
Ejemplo n.º 12
0
 def _buildMatrices(self):
     '''Different ways of computing the transition probability matrix can be considered'''
     print 'Compute Sim & P'
     self.Sim = toolBox.cosineSimilarity(self.UI)
     self.P = toolBox.AtoP(self.Sim)