Skip to content

Add domain compression API to discrete mechanisms#56

Open
copybara-service[bot] wants to merge 1 commit into
mainfrom
cl/937313573
Open

Add domain compression API to discrete mechanisms#56
copybara-service[bot] wants to merge 1 commit into
mainfrom
cl/937313573

Conversation

@copybara-service

Copy link
Copy Markdown

Add domain compression API to discrete mechanisms

Introduce pure-function compression API in common.py for all discrete
mechanisms. Each mechanism can now optionally compress rare categorical
values (count < 3*sigma) into an "Other" bin — a privacy-free
post-processing step that shrinks the domain for faster PGM estimation.

New public functions:

  • compress_measurements(one_way_measurements, columns): returns
    (rare_value_masks, compressed_measurements).
  • compress_dataset(data, rare_value_masks): compresses an mbi.Dataset
    via vtx.merge_rare_values.
  • decompress_dataset(data, original_domain, rare_value_masks, rng):
    restores merged rare values via vtx.unmerge_rare_values.

DiscreteMechanismResult exposes rare_value_masks and
original_domain so callers can decompress explicitly.

@copybara-service copybara-service Bot force-pushed the cl/937313573 branch 3 times, most recently from 2085afa to a4c6118 Compare June 24, 2026 23:29
Introduce pure-function compression API in `common.py` for all discrete
mechanisms. Each mechanism can now optionally compress rare categorical
values (count < 3*sigma) into an "Other" bin — a privacy-free
post-processing step that shrinks the domain for faster PGM estimation.

New public functions:
- `compress_measurements(one_way_measurements, columns)`: returns
  `(rare_value_masks, compressed_measurements)`.
- `compress_dataset(data, rare_value_masks)`: compresses an mbi.Dataset
  via `vtx.merge_rare_values`.
- `decompress_dataset(data, original_domain, rare_value_masks, rng)`:
  restores merged rare values via `vtx.unmerge_rare_values`.

`DiscreteMechanismResult` exposes `rare_value_masks` and
`original_domain` so callers can decompress explicitly.

PiperOrigin-RevId: 937313573
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants