mlresearch.metrics.AlphaPrecision¶
- class mlresearch.metrics.AlphaPrecision(scorer_real, alpha=0.05)[source]¶
Measures synthetic data fidelity. It estimates the probability that a synthetic sample resides in the $alpha$-support of the real distribution.
This is an implementation of the metric proposed in [1].
Warning
This metric is not listed in the
get_scorer_namesfunction since it is following an unconventional structure.- Parameters:
- scorer_realfunction
Method used to map a dataset into a score, or a 1-dimensional projection of itself. The mapping should be modelled over the original (real) dataset.
- alphafloat, default=0.05
Percentile used to determine the radius of the euclidean ball.
- Attributes:
- center_float
Value of the center of the euclidean ball.
References
[1]Alaa, A., Van Breugel, B., Saveliev, E. S., & van der Schaar, M. (2022, June). How faithful is your synthetic data? sample-level metrics for evaluating and auditing generative models. In International Conference on Machine Learning (pp. 290-306). PMLR.
- fit(X_real)[source]¶
Compute statistics necessary to calculate $alpha$-precision.
- Parameters:
- X_realarray-like or pd.DataFrame, shape (n_samples, n_features)
The real (original) dataset used to fit self.scorer_real.
- Returns:
- selfobject
Returns an instance of the class.
- get_metadata_routing()¶
Get metadata routing of this object.
Please check User Guide on how the routing mechanism works.
- Returns:
- routingMetadataRequest
A
MetadataRequestencapsulating routing information.
- score(X_synth)[source]¶
Returns 1 if a sample resides in the $alpha$-support of the original distribution, 0 otherwise.
- Parameters:
- Xarray-like or pd.DataFrame, shape (n_samples, n_features)
Input data over which $alpha$-precision will be calculated.
- Returns:
- scoresnp.ndarray, shape (n_samples,)
$alpha$-precision scores.
- set_fit_request(*, X_real: bool | None | str = '$UNCHANGED$') AlphaPrecision¶
Configure whether metadata should be requested to be passed to the
fitmethod.Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with
enable_metadata_routing=True(seesklearn.set_config()). Please check the User Guide on how the routing mechanism works.The options for each parameter are:
True: metadata is requested, and passed tofitif provided. The request is ignored if metadata is not provided.False: metadata is not requested and the meta-estimator will not pass it tofit.None: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED) retains the existing request. This allows you to change the request for some parameters and not others.Added in version 1.3.
- Parameters:
- X_realstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadata routing for
X_realparameter infit.
- Returns:
- selfobject
The updated object.
- set_score_request(*, X_synth: bool | None | str = '$UNCHANGED$') AlphaPrecision¶
Configure whether metadata should be requested to be passed to the
scoremethod.Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with
enable_metadata_routing=True(seesklearn.set_config()). Please check the User Guide on how the routing mechanism works.The options for each parameter are:
True: metadata is requested, and passed toscoreif provided. The request is ignored if metadata is not provided.False: metadata is not requested and the meta-estimator will not pass it toscore.None: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED) retains the existing request. This allows you to change the request for some parameters and not others.Added in version 1.3.
- Parameters:
- X_synthstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadata routing for
X_synthparameter inscore.
- Returns:
- selfobject
The updated object.