Hugdrigo's picture
Upload 3 files
893cd0f verified
|
Raw History Blame Contribute Delete
6.07 kB
---
title: SynthShield | Privacy Intelligence Lab
emoji: 🛡️
colorFrom: green
colorTo: blue
sdk: static
app_file: index.html
license: mit
pinned: false
short_description: Synthetic data and privacy audits
tags:
- synthetic-data
- privacy
- data-quality
- responsible-ai
- javascript
---
# SynthShield: Synthetic Data Privacy & Utility Laboratory
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) ![No backend](https://img.shields.io/badge/Architecture-100%25%20Browser--based-1e9283) ![Project](https://img.shields.io/badge/Portfolio-034-1f2937)
**A free, browser-native research application for creating test datasets and studying the trade-offs between statistical fidelity and privacy risk.**
SynthShield provides six interactive workspaces:
| Module | What it does |
| --- | --- |
| Command center | High-level k-risk, class sizes and distributional fidelity |
| Privacy audit | Configurable quasi-identifiers; k-anonymity, distinct-value ℓ-diversity and categorical TVD |
| Synthetic studio | Deterministic conditional-category generation plus noisy numeric sampling |
| Utility benchmark | Marginal distribution comparisons, cohort means and literal row overlap |
| Noise simulator | Educational seeded Laplace histogram experiment |
| Data & methods | Validated CSV import and downloadable audit JSON, Markdown memo and synthetic CSV |
## Quick start
1. Open the **App** tab of this Space.
2. Explore the three **fictional** examples from the dataset selector.
3. In **Privacy audit**, change the quasi-identifiers to see how smaller groups increase potential singling-out risks.
4. In **Synthetic studio**, adjust record count, seed and conditional blending, then select **Regenerate dataset**.
5. Compare source and generated distributions in **Utility benchmark**.
6. For your own test data, open **Data & methods** and import a CSV, then inspect the exportable audit.
Everything runs locally in your browser. No training server, external libraries, account sign-in, cookies, analytics trackers or external API keys are required. The application does not upload your CSV to the hosting server.
## Input schema
A CSV must contain these six header names (in any order):
```csv
age_band,region,segment,channel,spend,outcome
25-34,North,Core,Web,120.50,Retained
35-44,South,Growth,Mobile,95.00,Churned
```
The categorical columns are text; `spend` is a nonnegative number. The local importer enforces a **2 MB / 5,000-row** limit and rejects malformed rows before modifying application state. Use fake or already-cleared data for public demonstrations.
## Methods
- **k-anonymity screening:** size of equivalence classes formed using selected quasi-identifiers; count rows in classes below 5.
- **Distinct-value ℓ-diversity:** count of distinct sensitive-outcome values within an equivalence class; flag classes below 2.
- **Categorical t-closeness proxy:** total variation distance between each class's outcome distribution and the global distribution; flag TVD above 0.20. This is one specific choice of distance and threshold, not a complete privacy certification.
- **Synthetic generator:** draws the categorical attributes from observed empirical / conditional distributions, draws `spend` using segment-and-channel moments with Gaussian perturbation and shrinkage, and supports deterministic seeds for reproducibility.
- **Utility:** marginal total variation distances, conditional numeric means, mean-spend relative error and literal exact-row overlap. A weighted **illustrative utility score** combines averages of categorical and numeric similarity. It is not an established industry standard.
- **Laplace histogram:** adds seeded Laplace noise of scale `1 / ε` to bounded categorical counts and clamps negative noisy values to zero. The pseudorandom seed is public and **is not cryptographically secure**, so the educational implementation **does not establish differential privacy**.
See [METHODOLOGY.md](METHODOLOGY.md) in the complete source package for formulas, design decisions and explicit limitations.
## Privacy and safety limitations
> **Research demonstration, not an anonymity certification.** A dataset may be re-identifiable even when its reported k, ℓ, or TVD statistics appear favorable. Synthetic-data generation can inadvertently leak information about its inputs. Publishing sensitive data, even synthetic derivatives, requires appropriate legal, technical, and institutional review.
- The source dataset is **not** transmitted by this static application, but it remains in the browser tab's memory and is available to browser extensions and the local device environment.
- The generative model has **no formal membership-inference, reconstruction, or linkage-risk guarantees**.
- Reproducible seeded noise is **not a secure differential-privacy deployment**. Do not publish an underlying dataset on the basis of the ε control.
- Descriptive privacy screens depend on which attributes and adversary knowledge are considered.
- Demo data and outcome categories are entirely **fictional**. No individuals are represented.
## Engineering and reproducibility
- **Stack:** vanilla HTML, CSS and ES modules; no build step or dependency installation.
- **Hosting:** Hugging Face **Static** Space, `index.html` entry point.
- **Core:** `core.mjs` contains the math, generators, CSV handling and export safeguards. `data.mjs` contains seeded fictional examples. `app.mjs` handles UI state and interactions.
- **Tests:** use `node --test tests/core.test.mjs` in the complete source archive. Optional Playwright browser test uses an isolated local render due to browser sandbox restrictions.
- **Exports:** audits include seeds, quasi-identifiers, parameters, risk summaries, utility statistics and limitations, not the raw source records.
## Attribution
**Project 034**, Hugdrigo public research portfolio. MIT licensed. If this research demonstration is used for a report, distinguish results obtained on fictional examples from results derived from an actual dataset.