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. Typically the method sensitivitySampler should be used instead; NOTE this method does not properly set the gammaSensitivity slot of DPMech-class unlike the preferred method.
sensitivitySamplerManual(object, oracle, n, m, k)
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.
## Simple example with unbounded data hence no global sensitivity.f <-function(xs) mean(xs)m <- DPMechLaplace(target = f, dims =1)P <-function(n) rnorm(n)m <- sensitivitySamplerManual(m, oracle = P, n =100, m =10, k =10)m@sensitivity
References
Benjamin I. P. Rubinstein and Francesco Aldà. "Pain-Free Random Differential Privacy with Sensitivity Sampling", accepted into the 34th International Conference on Machine Learning (ICML'2017), May 2017.
See Also
sensitivitySampler preferred method for sensitivity sampling.