差分隐私入门——拉普拉斯分布

版权声明:本文为博主原创文章,点个赞随便转 https://blog.csdn.net/qq_20200047/article/details/88753005

L a p l a c e : Laplace分布的概率密度函数:
p ( x ) = 1 2 λ e x μ λ μ = 0 p(x)=\frac{1}{2\lambda}e^{-\frac{|x-\mu|}{\lambda}},一般取\mu=0,函数形式如:
p ( x ) = 1 2 λ e x λ p(x)=\frac{1}{2\lambda}e^{-\frac{|x|}{\lambda}},又称为双指数函数分布。
L a p l a c e 0 2 λ 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()

n p . r a n d o m . l a p l a c e np.random.laplace可以获得拉普拉斯分布的随机值,参数主要如下:
l o c μ loc:就是上面的\mu,控制偏移。
s c a l e λ scale: 就是上面的\lambda,控制缩放。
s i z e size: 是产生数据的个数。
p y t h o n l a p l a c e python生成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()

猜你喜欢

转载自blog.csdn.net/qq_20200047/article/details/88753005