拉普拉斯(Laplace)分布


Laplace分布的概率密度函數的形式是這樣的:

$p(x) = \frac{1}{2 \lambda} e^{-\frac{\vert x –\mu \vert}{\lambda}}$   一般$\mu$的取值為0,所以形式如下:

$p(x) = \frac{1}{2 \lambda} e^{-\frac{\vert x \vert}{\lambda}}$

它是由兩個指數函數組成的,所以又叫做雙指數函數分布(double exponential distribution)

 

均值和方差

均值的求解,若X的概率密度函數為f(X),那么X的均值為 $E(X) = \int_{- \infty}^{+ \infty} xf(x) dx$,代入以后可以發現里面的積分函數為奇函數,所以均值為0.

方差根據$D(X) = E(X^2)-(E(X))^2$,因為后面一項為0,所以主要求前一項$E(X^2)$,$E(X^2) = \int_{- \infty}^{+ \infty} x^2f(x)dx$ 根據積分公式$\int udv = uv-vdu$進行求解,得到方差為$2{\lambda}^2$

 

使用pyplot畫概率分布圖

import matplotlib.pyplot as plt
import numpy as np
def laplace_function(x, lambda_):
    return (1/(2*lambda_)) * np.e**(-1*(np.abs(x)/lambda_))
x = np.linspace(-5,5,10000)
y1 = [laplace_function(x_,1) for x_ in x]
y2 = [laplace_function(x_,2) for x_ in x]
y3 = [laplace_function(x_,0.5) for x_ in x]

plt.plot(x, y1, color='r', label="lambda:1")
plt.plot(x, y2, color='g', label="lambda:2")
plt.plot(x, y3, color='b', label="lambda:0.5")

plt.title("Laplace distribution")
plt.legend()
plt.show()

 

Figure_1

 

使用np.random.laplace獲得隨機樣本的值

np.random.laplace可以獲得拉普拉斯分布的隨機值,參數主要如下:

loc:就是上面的$\mu$,控制偏移。

scale: 就是上面的$\lambda$控制縮放。

size:  是產生數據的個數

print(np.random.laplace(0,1,10))

產生結果如下:

[-0.56017859 -2.11417277 -1.05903743  1.7220117   0.68025748 -0.10421514
  -0.61471549  0.96146946 -3.40181804 -0.89675566]

 

下面我們產生很多數據,然后用直方圖把它們畫出來,可以看出來它們符合Laplace分布。

import numpy as np
laplace1 = np.random.laplace(0, 1, 10000)
laplace2 = np.random.laplace(0, 2, 10000)

import matplotlib.pyplot as plt
fig, (ax1, ax2) = plt.subplots(1,2, sharex=True, sharey=True)
ax1.hist(laplace1,bins=1000, label="lambda:1")
ax1.legend()

ax2.hist(laplace2, bins=1000, label="lambda:2")
ax2.legend()
plt.show()

Figure_1-1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM