Laplace:Laplace分布的概率密度函数:
p(x)=12λexμλμ=0p(x)=\frac{1}{2\lambda}e^{-\frac{|x-\mu|}{\lambda}},一般取\mu=0,函数形式如:
p(x)=12λexλp(x)=\frac{1}{2\lambda}e^{-\frac{|x|}{\lambda}},又称为双指数函数分布。
Laplace02λ2λ标准Laplace分布的均值为0,方差为{2\lambda^2},几种\lambda下其概率分布图如下:
差分隐私入门——拉普拉斯分布

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 distributions")
plt.legend()
plt.show()

np.random.laplacenp.random.laplace可以获得拉普拉斯分布的随机值,参数主要如下:
locμloc:就是上面的\mu,控制偏移。
scaleλscale: 就是上面的\lambda,控制缩放。
sizesize: 是产生数据的个数。
pythonlaplacepython生成laplace分布直方图:
差分隐私入门——拉普拉斯分布

import numpy as np
#print(np.random.laplace(0,1,10)) 生成10个样本
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()

相关文章:

  • 2021-12-28
  • 2021-04-13
  • 2021-08-25
  • 2022-01-19
  • 2021-06-22
  • 2021-10-29
  • 2021-08-16
  • 2021-12-14
猜你喜欢
  • 2021-06-18
  • 2021-11-13
  • 2021-08-25
  • 2022-12-23
  • 2021-09-06
  • 2022-12-23
  • 2022-01-02
相关资源
相似解决方案