← Back to project catalogue
GP-CY-0RMFOKBCybersecurityReady

Dataset privacy-risk scanner

A reproducible privacy-engineering study that measures re-identification risk in tabular data and compares 128 generalisation and suppression policies against analytical utility.

Dataset privacy-risk scanner project visual
GP-CY-0RMFOKB · Cybersecurity
  • Python
  • Pandas
  • NumPy
  • SciPy
  • scikit-learn
  • Matplotlib
  • Docker

Project definition

Problem statement

Removing names and contact fields does not necessarily make a table anonymous. Combinations such as age, sex, education, occupation, marital status, race, and country can isolate a record and support linkage with outside information.

A release decision must balance disclosure risk with utility. Stronger generalisation and suppression can protect rare records while damaging retention, distributions, and downstream analysis.

Project objectives

  • Measure equivalence-class size, uniqueness, prosecutor risk, discernibility, l-diversity, entropy diversity, and t-closeness.
  • Compare compact, extended, and full attacker-knowledge models on one pinned licensed dataset.
  • Evaluate 128 age-banding, category-grouping, and suppression policies.
  • Extract the non-dominated privacy-utility frontier and test selected policies on a held-out prediction task.
  • Validate structural risk through a controlled record-linkage experiment.
  • Keep the Laplace count experiment separate from any claim about transformed microdata.

Project structure

Project components

01

Verified data acquisition

Downloads the official UCI Adult archive only after explicit licence acceptance and validates its SHA-256 digest.

02

Disclosure metric engine

Calculates equivalence classes, k-related risk, sensitive-value diversity, distributional closeness, and discernibility.

03

Policy evaluator

Runs all 128 declared generalisation and suppression combinations and retains every result.

04

Controlled linkage

Measures exact-match precision and recall under three attacker-knowledge scenarios with bounded age noise.

05

Utility evaluator

Measures row retention, marginal Jensen-Shannon distance, logistic accuracy, and AUROC.

06

Evidence and reporting

Builds aggregate CSV and JSON results, labelled figures, editable documents, PDFs, and repository acceptance evidence.

Methodology

Project workflow

  1. 01
    Acquire and verify

    Accept the documented licence, download the pinned archive, and confirm its digest.

  2. 02
    Build the analytical frame

    Apply the declared parsing and missing-value rule to obtain 45,222 complete records.

  3. 03
    Measure baseline risk

    Compare compact, extended, and full quasi-identifier models.

  4. 04
    Evaluate policies

    Run all transformation candidates and extract four non-dominated policies.

  5. 05
    Test attacks and utility

    Run controlled linkage, distributional utility, held-out prediction, and the separate count mechanism.

  6. 06
    Validate the release

    Regenerate figures and documents, run tests and audits, and verify all retained evidence.

Demonstration scenario

The student runs the pinned Adult case study, shows how full quasi-identifiers make 41.17 percent of records unique, compares the 128 transformation policies, explains the four-point privacy-utility frontier, and then uses the controlled linkage results to show why richer attacker knowledge increases recoverability.

Engineering

Tools and method

Scientific Python package
Typed modules for configuration, data acquisition, privacy metrics, transformation, linkage, utility, and experiment orchestration.
Statistical layer
Pandas, NumPy, and SciPy for grouping, distribution comparison, aggregation, and seeded randomized experiments.
Predictive layer
A reproducible scikit-learn logistic pipeline for held-out task-specific utility.
Evidence layer
Aggregate CSV and JSON outputs with ten paired PNG and SVG figures and no source rows.
Release layer
Pinned dependencies, automated tests, Docker validation, editable Word documents, PDFs, and machine-readable acceptance checks.

Testing

Evaluation

Evaluation measures

  • Unique-row and below-k fractions across three attacker-knowledge models
  • Maximum and mean prosecutor risk, discernibility, l-diversity, entropy diversity, and t-closeness
  • Privacy and utility values for all 128 candidate policies and the four-point Pareto frontier
  • Controlled-linkage precision and recall under compact, extended, and full quasi-identifiers
  • Row retention, marginal distribution shift, held-out accuracy, and AUROC
  • Laplace count median and 95th-percentile error across five epsilon values
  • Repeatability through 18 tests, 96 percent branch coverage, dependency audit, and container validation

Project boundaries

  • The supplied full experiment uses the UCI Adult dataset under CC BY 4.0 and requires explicit licence acceptance.
  • The reported values apply only to the declared dataset, cleaning rule, attacker views, policy grid, linkage model, and seed.
  • The scanner supports privacy review and does not certify anonymity, legal compliance, or unrestricted release safety.
  • The transformed microdata is not claimed to be differentially private. The Laplace experiment covers one bounded count query only.
  • Raw and row-level source data is not included in the repository, report evidence, or storefront.

Included

  1. 01Complete statistical disclosure-risk and utility analysis workflow
  2. 02Three quasi-identifier threat models and 128 evaluated transformation policies
  3. 03Controlled record-linkage, predictive-utility, and Laplace count experiments
  4. 04Retained aggregate evidence with ten project figures in PNG and SVG
  5. 05Complete source code in a private GitHub repository
  6. 0685-page project documentation in PDF and editable Word formats
  7. 0717-page setup and demonstration guide in PDF and editable Word formats

Project record

No information is collected on this page.

Permanent project ID
GP-CY-0RMFOKB
Catalogued
21 Aug 2026
Completed
26 Aug 2026
Verified
26 Aug 2026
Demonstration
Included in repository

Handover

After purchase

  1. 01
    Payment is confirmed

    The project is marked unavailable and cannot be purchased again.

  2. 02
    Repository access is granted

    The buyer's submitted GitHub account receives access to the private repository.

  3. 03
    The purchase record is delivered

    The certification sheet is prepared from the reviewed buyer details and sent privately by email.