EnsembleMIA

class synthyverse.evaluation.privacy.EnsembleMIA(include_mia=None, ensemble='rank_avg', discrete_features=None, ref_prop=0.5, member_prop=1.0, repeats=1, subsample=False, random_state=0)

Bases: MIA

Registry name: mia.ensemble

Ensemble membership inference attack metric.

Ensembles the membership scores from multiple MIA implementations.

Parameters:
  • include_mia (dict) – Mapping of MIA names to constructor parameters. Supported keys are “classifier_mia”, “dpi”, “domias”, and their metric-name aliases “mia.classifier”, “mia.dpi”, and “mia.domias”. Default: {“classifier_mia”: {}, “dpi”: {}, “domias”: {}}.

  • ensemble (str) – How to combine component MIA scores. “mean” min-max normalizes each component score vector and averages them. “rank_avg” averages normalized within-component ranks. Default: “rank_avg”.

  • discrete_features (list) – List of discrete/categorical feature names. Passed to component attacks unless overridden in include_mia.

  • ref_prop (float) – Proportion of test set to use as attacker reference non-members. Default: 0.5.

  • member_prop (float) – Proportion of train set to use as members. Default: 1.0.

  • repeats (int) – Number of repeated evaluations when subsampling records. Default: 1.

  • subsample (bool) – Whether to subsample synthetic/member sets in the shared MIA protocol. Default: False.

  • random_state (int) – Random seed for reproducibility. Default: 0.

evaluate(X_train, X_test, X_syn)

Evaluate membership inference risk.

Parameters:
  • X_train (DataFrame) – Real training data whose rows are treated as members.

  • X_test (DataFrame) – Independent real test data split into reference records and evaluation non-members.

  • X_syn (DataFrame) – Synthetic data available to the attacker.

Returns:

Dictionary with attack AUC and lift-at-k scores. Keys have the

form “<attack_name>.<score>”.

Return type:

dict