def calculate_objective(self,spontaneous,w1,alpha,w2,events,train_times):
T=train_times
N=len(events)
s=events
old_sum2 = 0
obj = numpy.log(spontaneous*numpy.exp(-w1*s[0]))
for i in range(1,N):
mu = spontaneous*numpy.exp(-w1*s[i])
sum1 = mu
sum2 = (old_sum2 + alpha)*numpy.exp(-w2*(s[i]-s[i-1]))
old_sum2 = sum2
obj=obj+numpy.log(sum1+sum2)
activate = numpy.exp(-w2*(T-numpy.mat(s)))
activate_sum = numpy.sum((1-activate))*alpha/float(w2)
obj= obj - activate_sum
obj = obj - (spontaneous/w1) * (1 - numpy.exp(-w1*T))
return obj
评论列表
文章目录