IBM差异隐私库

diffprivlib的Python项目详细描述


IBM差异隐私库

Python versionsPyPi versionBuild StatusDocumentation StatusLanguage grade: Python

您刚刚找到IBM Differential Privacy Library

IBM Differential Privacy Library是一个通用库,用于在Differential Privacy中试验、调查和开发应用程序。

如果您希望使用差异隐私库:

  • 体验差异隐私
  • 使用基本分类和聚类模型探讨差异隐私对机器学习精度的影响
  • 使用我们广泛的机制集合,构建您自己的差异隐私应用程序

diffprivlib兼容:python 3.4–3.7

入门:ML with differential privacy in 30 seconds

我们正在使用Iris dataset,所以让我们加载它并执行80/20的列车/测试拆分。

fromsklearnimportdatasetsfromsklearn.model_selectionimporttrain_test_splitdataset=datasets.load_iris()X_train,X_test,y_train,y_test=train_test_split(dataset.data,dataset.target,test_size=0.2)

现在,让我们训练一个不同的私有朴素贝叶斯分类器。我们的分类器就像sklearn分类器一样运行,因此您可以快速启动并运行。

diffprivlib.models.GaussianNB可以在不带任何参数的情况下运行,但这会引发警告(我们需要指定bounds参数来避免这种情况)。隐私级别由参数epsilon控制,该参数在初始化时传递给分类器(例如GaussianNB(epsilon=0.1))。默认值是epsilon = 1.0

importdiffprivlib.modelsasdpclf=dp.GaussianNB()clf.fit(X_train,y_train)

我们现在可以对看不见的例子进行分类,因为我们知道,经过训练的模型是不同的私有模型,并且保留了训练集中“个人”的隐私(flowers也有权获得他们的隐私!).

clf.predict(X_test)

每次使用.fit()训练模型时,由于差异隐私的随机性,会产生不同的模型。因此,即使使用相同的训练数据对其进行重新训练,其准确性也会发生变化。你自己试试看!

(clf.predict(X_test)==y_test).sum()/y_test.shape[0]

我们可以很容易地评估模型对各种epsilon值的准确性,并用matplotlib绘制它。

importnumpyasnpimportmatplotlib.pyplotaspltepsilons=np.logspace(-2,2,50)bounds=[(4.3,7.9),(2.0,4.4),(1.1,6.9),(0.1,2.5)]accuracy=list()forepsiloninepsilons:clf=dp.GaussianNB(bounds=bounds,epsilon=epsilon)clf.fit(X_train,y_train)accuracy.append((clf.predict(X_test)==y_test).sum()/y_test.shape[0])plt.semilogx(epsilons,accuracy)plt.title("Differentially private Naive Bayes accuracy")plt.xlabel("epsilon")plt.ylabel("Accuracy")plt.show()

Differentially private naive Bayes

恭喜你,你已经完成了你的第一个差异私人机器学习任务与差异隐私库!查看notebooks目录或dive straight in中的更多示例。

内容

diffprivlib由三个模块组成:

  1. 机制:这些是差异隐私的构建块,用于实现差异隐私的所有模型。机制几乎没有或没有默认设置,是为实现自己的模型的专家而设计的。但是,它们可以用于单独调查等外部模型。
  2. 模型:此模块包括具有差异隐私的机器学习模型。diffprivlib目前有用于集群和分类的模型。
  3. tools:diffprivlib附带了许多用于差异私有数据分析的通用工具。这包括不同的私有直方图,格式与Numpy's histogram function相同。

设置

使用pip

安装

该库设计为使用python 3运行。 可以使用pip(或pip3)从pypi存储库安装库:

pip install diffprivlib

手动安装

对于库的最新版本,请下载源代码或在您选择的目录中克隆存储库:

git clone https://github.com/IBM/differential-privacy-library

要安装diffprivlib,请在项目文件夹中执行以下操作(或者,您可以运行python3 -m pip install .):

pip install .

这个库附带了一组基本的单元测试。要检查安装,可以通过调用安装文件夹中的pytest来运行所有单元测试:

pytest

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Javers比较不同顺序的列表   java安装Maven 3.3.9,如何设置M2_HOME、Maven_HOME和bin文件夹?   java如何在每个用户firebase 安卓中创建唯一的令牌?   安卓 Java正则表达式检查特殊字符总是返回true   java REST Jersey服务器JAXRS 500内部服务器错误   java重复行筛选器不工作   Android(Java)中的公钥和私钥构造函数   c#消灭全球化?   java如何使用jbutton将图像插入数据库并在jlabel和jtable上成功显示   多次尝试后,java指纹身份验证不起作用   java编辑方法引发空指针异常删除方法不工作   Java中的跨平台透明和OSagnostic路径处理   带有JavaCompilerAPI的java选项   java通过本机代码从jar访问文件   Groovy和Java中映射的区别   java是否可以在父pom文件中包含<packaging>jar</packaging>?   在java代码/安卓中更改微调器文本颜色?