sensitivitySampler: Sensitivity sampler for 'DPMech-class"s.

Description Usage Arguments Value References Examples

Description

Given a constructed DPMech-class, complete with target function and sensitivityNorm, and an oracle for producing records, samples the sensitivity of the target function to set the mechanism's sensitivity.

Usage

1
sensitivitySampler(object, oracle, n, m = NA_integer_, gamma = NA_real_)

Arguments

object

an object of class DPMech-class.

oracle

a source of random databases. A function returning: list, matrix/data.frame (data in rows), numeric/character vector of records if given desired length > 1; or single record given length 1, respectively a list element, a row/named row, a single numeric/character. Whichever type is used should be expected by object@target.

n

database size scalar positive numeric, integer-valued.

m

sensitivity sample size scalar positive numeric, integer-valued.

gamma

RDP privacy confidence level.

Value

object with updated gammaSensitivity slot.

References

Benjamin I. P. Rubinstein and Francesco Ald<c3><a0>. "Pain-Free Random Differential Privacy with Sensitivity Sampling", accepted into the 34th International Conference on Machine Learning (ICML'2017), May 2017.

Examples

1
2
3
4
5
6
7
8
9
## Simple example with unbounded data hence no global sensitivity.
f <- function(xs) mean(xs)
m <- DPMechLaplace(target = f, dims = 1)
m@sensitivity ## Inf
m@gammaSensitivity ## NA as Laplace is naturally eps-DP
P <- function(n) rnorm(n)
m <- sensitivitySampler(m, oracle = P, n = 100, gamma = 0.33)
m@sensitivity ## small like 0.03...
m@gammaSensitivity ## 0.33 as directed, now m is (eps,gam)-DP.

diffpriv documentation built on May 2, 2019, 2:38 a.m.