Simulate_Poisson.py 文件源码

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

项目:Wasserstein-Learning-For-Point-Process 作者: xiaoshuai09 项目源码 文件源码
def generate_samples_marked(intensity, T, n):
    U = intensity.dim
    Sequences = []
    inds = np.arange(U)
    for i in range(n):
        seq = []
        t = 0
        while True:
            intens1 = intensity.getUpperBound(t,T,inds)
            #print(intens1)
            dt = np.random.exponential(1/sum(intens1))
            #print(dt)
            new_t = t + dt
            #print(new_t)
            if new_t > T:
                break
            intens2 = intensity.getValue(new_t, inds)
            #print(intens2)
            u = np.random.uniform()
            if sum(intens2)/sum(intens1) > u:
                #print(intens2)
                x_sum = sum(intens2)
                norm_i = [ x/x_sum for x in intens2]
                #print(norm_i)
                dim = np.nonzero(np.random.multinomial(1, norm_i))
                seq.append([new_t, np.asscalar(dim[0])])
            t = new_t
        if len(seq)>1:
            Sequences.append(seq) 
    return Sequences
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号