converters#
Wrappers for changing a measurements’s output measure.
Classes#
Measurement for converting pure DP to zCDP. |
|
Measurement for converting pure DP to approximate DP. |
|
Measurement for converting zCDP to approximate DP. |
- class PureDPToRhoZCDP(pure_dp_measurement)#
Bases:
tmlt.core.measurements.base.Measurement
Measurement for converting pure DP to zCDP.
- Parameters
pure_dp_measurement (tmlt.core.measurements.base.Measurement) –
- __init__(pure_dp_measurement)#
Constructor.
- Parameters
pure_dp_measurement (
Measurement
Measurement
) – The pure DP measurement to convert.
- property pure_dp_measurement#
Return the wrapped pure DP measurement.
- Return type
- privacy_function(d_in)#
Returns the smallest d_out satisfied by the measurement.
The returned d_out (\(\rho\)) is \(\rho=\frac{\epsilon^2}{2}\)
where \(\epsilon\) is the d_out returned by
pure_dp_measurement
’sprivacy_function()
on d_in.- Parameters
d_in (Any) – Distance between inputs under input_metric.
- Raises
NotImplementedError – If self.pure_dp_measurement.privacy_function(d_in) raises
NotImplementedError
.- Return type
- privacy_relation(d_in, d_out)#
Return True if close inputs produce close outputs.
Let \(\epsilon = \sqrt{2 \cdot \rho}\)
Returns self.pure_dp_measurement.privacy_relation(d_in, \(\epsilon\))
where \(\rho\) is the input argument “d_out”.
- Parameters
d_in (Any) – Distance between inputs under input_metric.
d_out (tmlt.core.utils.exact_number.ExactNumberInput) – Distance between outputs under output_measure.
- Return type
- __call__(data)#
Apply measurement.
- Parameters
data (Any) –
- Return type
Any
- property input_domain#
Return input domain for the measurement.
- Return type
- property input_metric#
Distance metric on input domain.
- Return type
- property output_measure#
Distance measure on output.
- Return type
- class PureDPToApproxDP(pure_dp_measurement)#
Bases:
tmlt.core.measurements.base.Measurement
Measurement for converting pure DP to approximate DP.
- Parameters
pure_dp_measurement (tmlt.core.measurements.base.Measurement) –
- __init__(pure_dp_measurement)#
Constructor.
- Parameters
pure_dp_measurement (
Measurement
Measurement
) – The pure DP measurement to convert.
- property pure_dp_measurement#
Return the wrapped pure DP measurement.
- Return type
- privacy_function(d_in)#
Returns the smallest d_out satisfied by the measurement.
Returns (self.pure_dp_measurement.privacy_function(d_in), 0).
Every (\(\epsilon\))-DP measurement is also (\(\epsilon\), 0)-DP.
- Parameters
d_in (Any) – Distance between inputs under input_metric.
- Raises
NotImplementedError – If
pure_dp_measurement
’sprivacy_function()
raisesNotImplementedError
.- Return type
Tuple[tmlt.core.utils.exact_number.ExactNumber, tmlt.core.utils.exact_number.ExactNumber]
- privacy_relation(d_in, d_out)#
Returns the smallest d_out satisfied by the measurement.
Returns self.pure_dp_measurement.privacy_relation(d_in, d_out[0])
- Parameters
d_in (Any) – Distance between inputs under input_metric.
d_out (Tuple[tmlt.core.utils.exact_number.ExactNumberInput, tmlt.core.utils.exact_number.ExactNumberInput]) – Distance between outputs under output_measure.
- Return type
- __call__(data)#
Apply measurement.
- Parameters
data (Any) –
- Return type
Any
- property input_domain#
Return input domain for the measurement.
- Return type
- property input_metric#
Distance metric on input domain.
- Return type
- property output_measure#
Distance measure on output.
- Return type
- class RhoZCDPToApproxDP(zcdp_measurement)#
Bases:
tmlt.core.measurements.base.Measurement
Measurement for converting zCDP to approximate DP.
- Parameters
zcdp_measurement (tmlt.core.measurements.base.Measurement) –
- __init__(zcdp_measurement)#
Constructor.
- Parameters
zcdp_measurement (
Measurement
Measurement
) – The zCDP measurement to convert.
- property zcdp_measurement#
Return the wrapped zCDP measurement.
- Return type
- privacy_relation(d_in, d_out)#
Return True if close inputs produce close outputs.
Special cases:
Every measurement is (\(\infty, \delta\))-DP for any \(\delta \ge 0\)
Every measurement is (\(epsilon, 1\))-DP for any \(\epsilon \ge 0\)
RhoZCDP
with \(\rho \gt 0\) cannot be converted to (\(\epsilon, 0\))-DP for any finite \(\epsilon\)
General case:
Let \(\rho\) be the unique solution to \(\rho + 2 * \sqrt{\rho * log(\frac{1}{\delta})} - \epsilon = 0\)
where:
\(\delta\) is the first element of the input argument “d_out”
\(\epsilon\) is the second element of the input argument “d_out”
Returns self.zcdp_measurement.privacy_relation(d_in, \(\rho\))
See Proposition 1.3 in [BS16] for more information.
- Parameters
d_in (Any) – Distance between inputs under input_metric.
d_out (Tuple[tmlt.core.utils.exact_number.ExactNumberInput, tmlt.core.utils.exact_number.ExactNumberInput]) – Distance between outputs under output_measure.
- Return type
- __call__(data)#
Apply measurement.
- Parameters
data (Any) –
- Return type
Any
- property input_domain#
Return input domain for the measurement.
- Return type
- property input_metric#
Distance metric on input domain.
- Return type
- property output_measure#
Distance measure on output.
- Return type
- privacy_function(d_in)#
Returns the smallest d_out satisfied by the measurement.
See the privacy and stability tutorial (add link?) for more information.
- Parameters
d_in (Any) – Distance between inputs under input_metric.
- Raises
NotImplementedError – If not overridden.
- Return type
Any