Skip to content

Releases: brubinstein/diffpriv

diffpriv v0.4.2

18 Jul 12:23

Choose a tag to compare

Released to CRAN.

  • Virtual DPMech class for representing (largely sensitivity-induced) mechanisms for differential privacy. DPParamsEps and subclasses for representing privacy budget parameters.
  • sensitivitySampler() method of DPMech implements the Rubinstein & Alda (2017) technique for estimating sensitivity of non-private target functions given to DPMech. Uses an oracle argument that samples random databases; and built-in sensitivityNorm() methods housed in objects.
  • DPMechLaplace class implementing the Laplace mechanism, which achieves epsilon-differential privacy by adding Laplace noise to numeric responses calibrated by L1-norm sensitivity. Objects can be initialized without specifying non-private target response dimension dim. In such cases, calls to the sensitivity sampler will perform an additional target probe to determine dim.
  • DPMechGaussian class implementing the Gaussian mechanism, which achieves (epsilon,delta)-differential privacy by adding Gaussian noise to numeric responses calibrated by L2-norm sensitivity.
  • DPMechNumeric class implements common code for numeric response mechanisms such as DPMechLaplace and DPMechGaussian, particularly around releaseResponse() method.
  • DPMechExponential class implementing the exponential mechanism for private maximization of a target utility function.
  • DPMechBernstein class implementing the Bernstein mechanism of Alda and Rubinstein (AAAI'2017), for privately releasing functions.
  • S3 constructor and predict() generic implementation for fitting (non-iterated) Bernstein polynomial function approximations. Useful beyond differential privacy applications.
  • roxygen2 documentation; two vignettes, on: diffpriv the package overall, and bernstein on the DPMechBernstein class.
  • GitHub Pages produced by pkgdown
  • Extensive test coverage via testthat, integration with travis CI, code coverage by codecov.