Skip to content

Releases: Samuel-Maddock/pure-LDP

Version 1.2.0

07 Sep 13:13
f4dbcd2
Compare
Choose a tag to compare

Bug fix for UEClient _perturb() function to guarantee $\varepsilon$-LDP. See #11 for more information.

If you are using UEClient/UEServer, you should upgrade to this version so that they properly guarantee $\varepsilon$-LDP.

Version 1.1.2

19 Jul 11:24
47c3ab1
Compare
Choose a tag to compare

Fixed and updated package dependencies on pip

Version 1.1.1

17 Jul 10:36
78948bd
Compare
Choose a tag to compare

Fixed a pip installation issue

Version 1.1.0

26 Feb 22:55
fff44ad
Compare
Choose a tag to compare

Added new frequency oracles:

  • Implemented Google's RAPPOR under pure_ldp.frequency_oracles.rappor
  • Hadamard Mechanism (HM) under pure_ldp.frequency_oracles.hadamard_mechanism
  • Direct Encoding (DE) under pure_ldp.frequency_oracles.direct_encoding
  • A heuristic version of OLH called Fast Local Hashing (FLH) under ```pure_ldp.frequency_oracles.local_hashing``
  • Private Count Sketch (PCS) an older version of private sketching under pure_ldp.frequency_oracles.priv_count_sketch
  • SketchRespones (SR) a sketching oracle that uses any generic frequency oracle to perturb sketch rows under pure_ldp.frequency_oracles.sketch_response
  • Zero oracle that just predicts 0 no matter what is aggregated (under pure_ldp.frequency_oracles.zero_oracle) - Mainly used for testing/experimenting

Added new heavy hitter implementations:

  • Apple's Sequence Fragment Puzzle (SFP) under pure_ldp.heavy_hitters.apple_sfp
  • Bassily et als TreeHistogram under pure_ldp.heavy_hitters.treehistogram

Other additions:

  • Added pre-processing techniques to estimating over the whole domain for any frequency oracle (see the estimate_all of pure_ldp.core._freq_oracle_server )
  • Added helpers for frequency oracles and heavy hitters for simulations (under pure_ldp.simulations.helpers)
  • Added a long list of experiments and examples (under pure_ldp.simulations.paper_experiments.py)

Bug Fixes and Performance Improvements:

  • Fixed wrong perturbation probability being used in Apple's HCMS
  • Fixed a whole range of bugs where various parameters of frequency oracles wouldn't update properly
  • Performance improvements for local_hashing and unary_encoding
  • Fixed bugs in PEM

Version 1.0.6

28 Aug 16:24
Compare
Choose a tag to compare

Bug fixes:

  • Hadamard Response now works in low privacy mode (epsilon < 1)
  • Hadamard response should properly work via PyPI

New:

  • Hadamard Response server has an additional normalisation parameter -
    • If normalization = 0 then no normalisation is applied (default)
    • If normalization = 1, the estimates are clipped to 0 and normalised
    • if normalization=2 then the estimates are projected onto the probability simplex

Version 1.0.5

16 Aug 19:07
Compare
Choose a tag to compare

Changes:

  • Added Apple's CMS algorithm under pure_ldp_frequency_oracles.apple_cms
  • Added helper methods to create instances of FOs/HHs in pure_ldp.core
  • PEMServer aggregate method now takes a single tuple as an argument (i.e the output of PEMClient.privatise)
  • HadamardResponseClient requires hash_funcs generated from HadamardResponseServer

Fixes:

  • Updated some docstrings
  • Fixed bug with HadamardResponse not permuting data properly
  • Fixed typos in the README
  • Fixed bugs in examples.py

Version 1.0.4

11 Jun 19:30
8b4bc8a
Compare
Choose a tag to compare

Breaking changes:

  • Package structure has changed, all frequency oracles are now under pure_ldp.frequency_oracles i.e for local hashing it is now from pure_ldp.frequency_oracles.local_hashing import LHClient, LHServer
  • Heavy hitters are also in their own package (just PEM at the moment)

Bugfixes:

  • Fixed examples in example.py
  • Added docstrings to PEM package
  • Fixed raising errors in base class methods

Version 1.0.3

11 Jun 12:06
d6e701f
Compare
Choose a tag to compare
  • Fixed bugs in update_params() for FreqOracleServer and added update_params() for FreqOracleClient
  • Reworked core module structure
  • Updated some documentation

Version 1.0.2

11 Jun 12:00
2974b8f
Compare
Choose a tag to compare
  • Performance Improvements
  • Added Prefix Extending Method (PEM) heavy hitter algorithm that uses OLH
  • Added hadamard_response frequency oracle, this is a wrapper of hadamard_response
  • Added base classes FreqOracleClient, FreqOracleServer in pure_ldp.core that all Frequency Oracles inherit from
  • Improved shared aggregation/estimation logic
  • Added more helper methods for frequency oracle servers

Version 1.0.1

09 Jun 13:31
Compare
Choose a tag to compare

Bug fixes:

  • Fixed README typos
  • Converted exceptions into warnings when using a small privacy budget/estimating on small amounts of data
  • Fixed long description in setup.py