jax_privacy.auditing.MultiSplit

class jax_privacy.auditing.MultiSplit(num_samples=100, threshold_estimation_frac=0.5, seed=None)[source]

Bases: ThresholdStrategy

Splits data multiple times with significance correction.

Reports the median of lower bounds computed at significance level alpha/2 [Meinshausen et al. (2009)]. Theorem 3.1 says that 2 * median(p_i) is a valid p-value, which implies that the median of bounds computed at significance alpha / 2 corresponds to the valid rejection threshold for an overall level of alpha. See proof of Theorem 3.1 in https://arxiv.org/pdf/0811.2177 for details.

Variables:
  • num_samples – The number of splits to use.

  • threshold_estimation_frac – The fraction of data to use for computing the threshold. The rest will be used for computing the bound.

  • seed – The seed for the random number generator. If None, a seed will be chosen non-deterministically.

Methods

__init__

Attributes

num_samples

seed

threshold_estimation_frac

num_samples: int = 100
threshold_estimation_frac: float = 0.5
seed: int | None = None