chaining#
Measurements constructed by chaining other measurements and transformations.
Classes#
Measurement constructed by chaining a transformation and a measurement. |
- class ChainTM(transformation, measurement, hint=None)#
Bases:
tmlt.core.measurements.base.Measurement
Measurement constructed by chaining a transformation and a measurement.
- Parameters
transformation (tmlt.core.transformations.base.Transformation) –
measurement (tmlt.core.measurements.base.Measurement) –
hint (Optional[Callable[[Any, Any], Any]]) –
- __init__(transformation, measurement, hint=None)#
Constructor.
- Parameters
transformation (
Transformation
Transformation
) – Transformation component (called first).measurement (
Measurement
Measurement
) – Measurement component (called second).hint ((
Any
,Any
) →Any
|None
Optional
[Callable
[[Any
,Any
],Any
]] (default:None
)) – An optional function to compute the intermediate metric value (after the transformation, but before the measurement) forprivacy_relation()
. It takes in the same inputs asprivacy_relation()
, and is only required if the transformation’sstability_function()
raises NotImplementedError.
- property measurement#
Returns measurement being chained.
- Return type
- property transformation#
Returns transformation being chained.
- Return type
- privacy_function(d_in)#
Returns the smallest d_out satisfied by the measurement.
Returns M.privacy_function(T.stability_function(d_in)).
where:
T is the transformation applied (
transformation
”)M is the measurement applied (
measurement
”)
- Parameters
d_in (Any) – Distance between inputs under input_metric.
- Raises
NotImplementedError – If M.privacy_function(T.stability_function(d_in)) raises
NotImplementedError
.- Return type
Any
- privacy_relation(d_in, d_out)#
Returns True only if outputs are close under close inputs.
Let d_mid = T.stability_function(d_in), or hint(d_in, d_out) if T.stability_function raises
NotImplementedError
.This returns True only if the following hold:
T.stability_relation(d_in, d_mid)
M.privacy_relation(d_mid, d_out)
where:
T is the transformation applied (
transformation
”)M is the measurement applied (
measurement
”)hint is the hint passed to the constructor.
- Parameters
d_in (Any) – Distance between inputs under input_metric.
d_out (Any) – Distance between outputs under output_measure.
- Raises
ValueError – If a hint is not provided and T.stability_function raises
NotImplementedError
.- Return type
- __call__(data)#
Computes measurement after applying transformation on input data.
- 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