python實(shí)現(xiàn)差分隱私Laplace機(jī)制詳解
Laplace分布定義:
下面先給出Laplace分布實(shí)現(xiàn)代碼:
import matplotlib.pyplot as plt import numpy as np def laplace_function(x,beta): result = (1/(2*beta)) * np.e**(-1*(np.abs(x)/beta)) return result #在-5到5之間等間隔的取10000個(gè)數(shù) x = np.linspace(-5,5,10000) y1 = [laplace_function(x_,0.5) for x_ in x] y2 = [laplace_function(x_,1) for x_ in x] y3 = [laplace_function(x_,2) for x_ in x] plt.plot(x,y1,color='r',label='beta:0.5') plt.plot(x,y2,color='g',label='beta:1') plt.plot(x,y3,color='b',label='beta:2') plt.title("Laplace distribution") plt.legend() plt.show()
效果圖如下:
接下來(lái)給出Laplace機(jī)制實(shí)現(xiàn):
Laplace機(jī)制,即在操作函數(shù)結(jié)果中加入服從Laplace分布的噪聲。
Laplace概率密度函數(shù)Lap(x|b)=1/2b exp(-|x|/b)正比于exp(-|x|/b)。
import numpy as np def noisyCount(sensitivety,epsilon): beta = sensitivety/epsilon u1 = np.random.random() u2 = np.random.random() if u1 <= 0.5: n_value = -beta*np.log(1.-u2) else: n_value = beta*np.log(u2) print(n_value) return n_value def laplace_mech(data,sensitivety,epsilon): for i in range(len(data)): data[i] += noisyCount(sensitivety,epsilon) return data if __name__ =='__main__': x = [1.,1.,0.] sensitivety = 1 epsilon = 1 data = laplace_mech(x,sensitivety,epsilon) for j in data: print(j)
以上這篇python實(shí)現(xiàn)差分隱私Laplace機(jī)制詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python流程控制 if else實(shí)現(xiàn)解析
這篇文章主要介紹了Python 流程控制 if else實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09python 應(yīng)用之Pycharm 新建模板默認(rèn)添加編碼格式-作者-時(shí)間等信息【推薦】
這篇文章主要介紹了Pycharm 新建模板默認(rèn)添加編碼格式-作者-時(shí)間等信息 ,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06Python推導(dǎo)式簡(jiǎn)單示例【列表推導(dǎo)式、字典推導(dǎo)式與集合推導(dǎo)式】
這篇文章主要介紹了Python推導(dǎo)式,結(jié)合簡(jiǎn)單實(shí)例形式分析了Python列表推導(dǎo)式、字典推導(dǎo)式與集合推導(dǎo)式基本使用方法,需要的朋友可以參考下2018-12-12使用OpenCV實(shí)現(xiàn)人臉圖像卡通化的示例代碼
這篇文章主要介紹了使用OpenCV實(shí)現(xiàn)人臉圖像卡通化的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01python基于C/S模式實(shí)現(xiàn)聊天室功能
這篇文章主要為大家詳細(xì)介紹了python基于C/S模式實(shí)現(xiàn)聊天室功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01centos+nginx+uwsgi+Django實(shí)現(xiàn)IP+port訪問(wèn)服務(wù)器
這篇文章主要介紹了centos+nginx+uwsgi+Django實(shí)現(xiàn)IP+port訪問(wèn)服務(wù)器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11