Skip to main content

Tools for evaluating fidelity and privacy of synthetic data

Project description

Overview

This library contains tools for evaluating fidelity and privacy of synthetic data.

Usage

Import the desired modules from the library:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from tonic_reporting import univariate, multivariate, privacy

Preface

Numeric columns refer to columns encoded as numeric. Numerical data types in the schema underlying a model may be encoded as other types.

Categorical columns refer to columns encoded as categorical.

source_df is a Pandas DataFrame of original data from the source database

synth_df is a Pandas DataFrame of sampled data from trained models

The source and synthetic DataFrames should be equal in row count and schema.

Numeric Column Statistics

univariate.summarize_numeric(source_df, synth_df, numeric_cols)

Categorical Column Statistics

univariate.summarize_categorical(source_df, synth_df, categorical_cols)

Numeric Column Comparative Histograms

fig, axarr = plt.subplots(1, len(numeric_cols), figsize = (9,12))
axarr = axarr.ravel()

for col, ax in zip(numeric_cols, axarr):
    univariate.plot_histogram(source_df, synth_df, col,ax)

Categorical Column Comparative Frequency Tables

for col in categorical_cols:
    univariate.plot_frequency_table(source_df, synth_df, col, ax)

Numeric Column Aggregates Over Time

If the data represents time series, we can visualize means and confidence intervals of numeric features over time:

for col in numeric_cols:
    fig, ax = plt.subplots(figsize=(10, 8))
    univariate.plot_events_means(source_df, synth_df, col, order_col, ax=ax)

and

for col in numeric_cols:
    fig, ax = plt.subplots(figsize=(12, 10))
    univariate.plot_events_confidence_intervals(source_df, synth_df, col, order_col, ax=ax)

where order_col denotes the time/order column.

Numeric Column Multivariate Correlations Table

multivariate.summarize_correlations(source_df, synth_df, numeric_cols)

Numeric Column Multivariate Correlations Heat Map

fig, axarr = plt.subplots(1, 2, figsize=(13, 8))
multivariate.plot_correlations(source_df, synth_df, numeric_cols, axarr=axarr, )
fig.tight_layout()

Distance to Closest Record Comparison

syn_dcr, real_dcr = privacy.compute_dcr(source_df, synth_df, numeric_cols, categorical_cols)

fig, ax = plt.subplots(1,1,figsize=(8,6))
ax.hist(real_dcr,bins=300,label = 'Real vs. real', color='mediumpurple');
ax.hist(syn_dcr,bins=300,label='Synthetic vs. real', color='mediumturquoise');
ax.tick_params(axis='both', which='major', labelsize=14)
ax.set_title('Distances to closest record',fontsize=22)
ax.legend(fontsize=16);

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tonic_reporting-1.5.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

tonic_reporting-1.5.0-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file tonic_reporting-1.5.0.tar.gz.

File metadata

  • Download URL: tonic_reporting-1.5.0.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.9 Darwin/21.6.0

File hashes

Hashes for tonic_reporting-1.5.0.tar.gz
Algorithm Hash digest
SHA256 d4cceba407ddd4fac3ea5a97fb0467cbbe9df8b4bf19f97d15811165cd4b144f
MD5 478fc559e7db96d9884c93ccdbed7c64
BLAKE2b-256 5dabc3bced69de1019f38201a6fe2a6ce096001f470391e3a717fc51948d3f25

See more details on using hashes here.

File details

Details for the file tonic_reporting-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: tonic_reporting-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.9 Darwin/21.6.0

File hashes

Hashes for tonic_reporting-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 588579a4b761af97a5e7acb811a4a962b2adfbd2ccdeed946a1c0e755105d955
MD5 33607ff7915fcc71f414efba8748ea44
BLAKE2b-256 dad704ad17652efcf0c4e5f2ed82d16ab321703ef447b1c9cf6444912ac20368

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page