【问题标题】:Poisson distribution for floating value of mean均值浮动值的泊松分布
【发布时间】:2020-06-10 18:12:51
【问题描述】:

我对 Python 比较陌生,一直在使用 np 库。在泊松分布之后产生尖峰时,我遇到了一些问题。您可以使用以下链接查看详细信息。

Random number generation following a Poisson distribution

基本问题是,如果我们使用整数值作为泊松分布的均值,我们会得到一个很好的分布(使用下面的代码)。但是对于均值的浮动值,我们没有得到分布。

spkt= np.random.poisson(5,1000)   # Mean of 5 for 1000 samples
plt.hist(spkt)
plt.show()

【问题讨论】:

标签: python numpy random


【解决方案1】:

您绝对可以使用非整数平均值进行采样。下面的代码示例并计算泊松分布的 PMF 并将它们绘制在一起,Win 10 x64,Anaconda Python 3.7

import numpy as np
from matplotlib import pyplot as plt
from scipy.stats import poisson

μ = 3.5
min = 0
max = 20

spkt = np.random.poisson(μ, 10000)

h, bins = np.histogram(spkt, bins = int(max-min+1), range=(min-0.5,max+0.5))
#print(h)
#print(bins)

mean = np.mean(spkt)
print(f"Mean value {mean} versus mu {μ}")

# Poisson PMF for given mu
x = [k for k in range(min, max+1)]
y = [poisson.pmf(k, μ) for k in range(min, max+1)]

# plot sampled vs computed PMF
plt.hist(spkt, bins = bins, density=True)
plt.plot(x, y, "ro")
plt.title("Poisson")
plt.show()

有这样的图片

更新

如果你想要非常小的 μ 采样,同样的代码也适用于我,但它几乎都是零。

μ = 2.0e-5

输出是

【讨论】:

    【解决方案2】:

    如果您正在处理尖峰神经网络,我强烈建议您查看those packages on python。特别是,我长期使用brian2 来实现各种 SNN。用 brian2 包指出你的问题:

    P = PoissonGroup(100, np.arange(100)*Hz + 10*Hz)
    

    更多详情here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-17
      • 1970-01-01
      • 2020-08-20
      • 2018-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多