All Projects → opendp → smartnoise-sdk

opendp / smartnoise-sdk

Licence: MIT License
Tools and service for differentially private processing of tabular and relational data

Programming Languages

python
139335 projects - #7 most used programming language
ANTLR
299 projects
HTML
75241 projects
Makefile
30231 projects
TSQL
950 projects
shell
77523 projects

Projects that are alternatives of or similar to smartnoise-sdk

opendp
The core library of differential privacy algorithms powering the OpenDP Project.
Stars: ✭ 192 (+33.33%)
Mutual labels:  differential-privacy, opendp
dp-sniper
A machine-learning-based tool for discovering differential privacy violations in black-box algorithms.
Stars: ✭ 16 (-88.89%)
Mutual labels:  differential-privacy
diffpriv
Easy differential privacy in R
Stars: ✭ 59 (-59.03%)
Mutual labels:  differential-privacy
srijan-gsoc-2020
Healthcare-Researcher-Connector Package: Federated Learning tool for bridging the gap between Healthcare providers and researchers
Stars: ✭ 17 (-88.19%)
Mutual labels:  differential-privacy
LPGNN
Locally Private Graph Neural Networks (ACM CCS 2021)
Stars: ✭ 30 (-79.17%)
Mutual labels:  differential-privacy
differential-privacy-bayesian-optimization
This repo contains the underlying code for all the experiments from the paper: "Automatic Discovery of Privacy-Utility Pareto Fronts"
Stars: ✭ 22 (-84.72%)
Mutual labels:  differential-privacy
awesome-secure-computation
Awesome list for cryptographic secure computation paper. This repo includes *Lattice*, *DifferentialPrivacy*, *MPC* and also a comprehensive summary for top conferences.
Stars: ✭ 125 (-13.19%)
Mutual labels:  differential-privacy
federated pca
Federated Principal Component Analysis Revisited!
Stars: ✭ 30 (-79.17%)
Mutual labels:  differential-privacy
federated
Bachelor's Thesis in Computer Science: Privacy-Preserving Federated Learning Applied to Decentralized Data
Stars: ✭ 25 (-82.64%)
Mutual labels:  differential-privacy
PATE
Pytorch implementation of paper Semi-supervised Knowledge Transfer for Deep Learning from Private Training Data (https://arxiv.org/abs/1610.05755)
Stars: ✭ 37 (-74.31%)
Mutual labels:  differential-privacy
Differential Privacy
Google's differential privacy libraries.
Stars: ✭ 2,394 (+1562.5%)
Mutual labels:  differential-privacy
Interpret
Fit interpretable models. Explain blackbox machine learning.
Stars: ✭ 4,352 (+2922.22%)
Mutual labels:  differential-privacy
differential-privacy
Naive implementation of basic Differential-Privacy framework and algorithms
Stars: ✭ 34 (-76.39%)
Mutual labels:  differential-privacy
GreyNSights
Privacy-Preserving Data Analysis using Pandas
Stars: ✭ 18 (-87.5%)
Mutual labels:  differential-privacy
Awesome-Federated-Machine-Learning
Everything about federated learning, including research papers, books, codes, tutorials, videos and beyond
Stars: ✭ 190 (+31.94%)
Mutual labels:  differential-privacy
private-data-generation
A toolbox for differentially private data generation
Stars: ✭ 80 (-44.44%)
Mutual labels:  differential-privacy
PFL-Non-IID
The origin of the Non-IID phenomenon is the personalization of users, who generate the Non-IID data. With Non-IID (Not Independent and Identically Distributed) issues existing in the federated learning setting, a myriad of approaches has been proposed to crack this hard nut. In contrast, the personalized federated learning may take the advantage…
Stars: ✭ 58 (-59.72%)
Mutual labels:  differential-privacy

License: MIT

SmartNoise SDK: Tools for Differential Privacy on Tabular Data

The SmartNoise SDK includes 2 packages:

To get started, see the examples below. Click into each project for more detailed examples.

SQL

Python

Install

pip install smartnoise-sql

Query

import snsql
from snsql import Privacy
import pandas as pd

csv_path = 'PUMS.csv'
meta_path = 'PUMS.yaml'

data = pd.read_csv(csv_path)
privacy = Privacy(epsilon=1.0, delta=0.01)
reader = snsql.from_connection(data, privacy=privacy, metadata=meta_path)

result = reader.execute('SELECT sex, AVG(age) AS age FROM PUMS.PUMS GROUP BY sex')

print(result)

See the SQL project

Synthesizers

Python

Install

pip install smartnoise-synth

MWEM

import pandas as pd
import numpy as np

pums = pd.read_csv(pums_csv_path, index_col=None) # in datasets/
pums = pums.drop(['income'], axis=1)
nf = pums.to_numpy().astype(int)

synth = snsynth.MWEMSynthesizer(epsilon=1.0, split_factor=nf.shape[1]) 
synth.fit(nf)

sample = synth.sample(10) # get 10 synthetic rows
print(sample)

PATE-CTGAN

import pandas as pd
import numpy as np
from snsynth.pytorch.nn import PATECTGAN
from snsynth.pytorch import PytorchDPSynthesizer

pums = pd.read_csv(pums_csv_path, index_col=None) # in datasets/
pums = pums.drop(['income'], axis=1)

synth = PytorchDPSynthesizer(1.0, PATECTGAN(regularization='dragan'), None)
synth.fit(pums, categorical_columns=pums.columns)

sample = synth.sample(10) # synthesize 10 rows
print(sample)

See the Synthesizers project

Communication

Releases and Contributing

Please let us know if you encounter a bug by creating an issue.

We appreciate all contributions. Please review the contributors guide. We welcome pull requests with bug-fixes without prior discussion.

If you plan to contribute new features, utility functions or extensions to this system, please first open an issue and discuss the feature with us.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].