DomainConstraint

class synthyverse.evaluation.fidelity.DomainConstraint(constraint_list)

Bases: object

Registry name: domainconstraint

Evaluate boolean pandas expressions on real and synthetic data.

Parameters:

constraint_list (list) – List of expressions accepted by DataFrame.eval.

Example

>>> import pandas as pd
>>> from synthyverse.evaluation import DomainConstraint
>>> from synthyverse.evaluation.eval import TabularMetricEvaluator
>>>
>>> # Prepare data
>>> X_real = pd.DataFrame(...)
>>> X_syn = pd.DataFrame(...)
>>>
>>> # Define constraints as boolean DataFrame.eval expressions
>>> constraints = [
...     "age >= 18",
...     "systolic_bp > diastolic_bp",
... ]
>>>
>>> # Create metric
>>> metric = DomainConstraint(constraint_list=constraints)
>>>
>>> # Evaluate
>>> results = metric.evaluate(X_real, X_syn)
evaluate(X_train, X_syn)

Evaluate each domain constraint on real and synthetic data.

Parameters:
  • X_train (DataFrame) – Real training data as a pandas DataFrame.

  • X_syn (DataFrame) – Synthetic data as a pandas DataFrame.

Returns:

Mean truth value for each constraint on real and synthetic data.

Return type:

dict