Release Notes

0.8.0 - 2021-02-24

This version adds conditional sampling for tabular models by combining a reject-sampling strategy with the native conditional sampling capabilities from the gaussian copulas.

It also introduces several upgrades on the HMA1 algorith that improve data quality and robustness in the multi-table scenarios by making changes in how the parameters of the child tables are aggregated on the parent tables, including a complete rework of how the correlation matrices are modeled and rebuild after sampling.

Issues resolved

  • Fix probabilities contain NaN error - Issue #326 by @csala

  • Conditional Sampling for tabular models - Issue #316 by @fealho and @csala

  • HMA1: LinAlgError: SVD did not converge - Issue #240 by @csala

0.7.0 - 2021-01-27

This release introduces a few changes in the HMA1 relational algorithm to decrease modeling and sampling times, while also ensuring that correlations are properly kept across tables and also adding support for some relational schemas that were not supported before.

A few changes in constraints and tabular models also ensure that situations that produced errors before now work without errors.

Issues resolved

  • Fix unique key generation - Issue #306 by @fealho

  • Ensure tables that contain nothing but ids can be modeled - Issue #302 by @csala

  • Metadata visualization improvements - Issue #301 by @csala

  • Multi-parent re-model and re-sample issue - Issue #298 by @csala

  • Support datetimes in GreaterThan constraint - Issue #266 by @rollervan

  • Support for multiple foreign keys in one table - Issue #185 by @csala

0.6.1 - 2020-12-31

SDMetrics version is updated to include the new Time Series metrics, which have also been added to the API Reference and User Guides documentation. Additionally, a few code has been refactored to reduce external dependencies and a few minor bugs related to single table constraints have been fixed

Issues resolved

  • Add timeseries metrics and user guides - Issue #289 by @csala

  • Add functions to generate regex ids - Issue #288 by @csala

  • Saving a fitted tabular model with UniqueCombinations constraint raises PicklingError - Issue #286 by @csala

  • Constraints: handling_strategy='reject_sampling' causes 'ZeroDivisionError: division by zero' - Issue #285 by @csala

0.6.0 - 2020-12-22

This release updates to the latest CTGAN, RDT and SDMetrics libraries to introduce a new TVAE model, multiple new metrics for single table and multi table, and fixes issues in the re-creation of tabular models from a metadata dict.

Issues resolved

  • Upgrade to SDMetrics v0.1.0 and add sdv.metrics module - Issue #281 by @csala

  • Upgrade to CTGAN 0.3.0 and add TVAE model - Issue #278 by @fealho

  • Add dtype_transformers to Table.from_dict - Issue #276 by @csala

  • Fix Metadata from_dict behavior - Issue #275 by @csala

0.5.0 - 2020-11-25

This version updates the dependencies and makes a few internal changes in order to ensure that SDV works properly on Windows Systems, making this the first release to be officially supported on Windows.

Apart from this, some more internal changes have been made to solve a few minor issues from the older versions while also improving the processing speed when processing relational datasets with the default parameters.

API breaking changes

  • The distribution argument of the GaussianCopula has been renamed to field_distributions.

  • The HMA1 and SDV classes now use the categorical_fuzzy transformer by default instead of the one_hot_encoding one.

Issues resolved

  • GaussianCopula: rename distribution argument to field_distributions - Issue #237 by @csala

  • GaussianCopula: Improve error message if an invalid distribution name is passed - Issue #220 by csala

  • Import urllib.request explicitly - Issue #227 by @csala

  • TypeError: cannot astype a datetimelike from [datetime64[ns]] to [int32] - Issue #218 by @csala

  • Change default categorical transformer to categorical_fuzzy in HMA1 - Issue #214 by @csala

  • Integer categoricals being sampled as strings instead of integer values - Issue #194 by @csala

0.4.5 - 2020-10-17

In this version a new family of models for Synthetic Time Series Generation is introduced under the sdv.timeseries sub-package. The new family of models now includes a new class called PAR, which implements a Probabilistic AutoRegressive model.

This version also adds support for composite primary keys and regex based generation of id fields in tabular models and drops Python 3.5 support.

Issues resolved

  • Drop python 3.5 support - Issue #204 by @csala

  • Support composite primary keys in tabular models - Issue #207 by @csala

  • Add the option to generate string id fields based on regex on tabular models - Issue #208 by @csala

  • Synthetic Time Series - Issue #142 by @csala

0.4.4 - 2020-10-06

This version adds a new tabular model based on combining the CTGAN model with the reversible transformation applied in the GaussianCopula model that converts random variables with arbitrary distributions to new random variables with standard normal distribution.

The reversible transformation is handled by the GaussianCopulaTransformer recently added to RDT.

Issues resolved

0.4.3 - 2020-09-28

This release moves the models and algorithms related to generation of synthetic relational data to a new sdv.relational subpackage (Issue #198)

As part of the change, also the old sdv.models have been removed and now relational model is based on the recently introduced sdv.tabular models.

0.4.2 - 2020-09-19

In this release the sdv.evaluation module has been reworked to include 4 different metrics and in all cases return a normalized score between 0 and 1.

Included metrics are:

  • cstest

  • kstest

  • logistic_detection

  • svc_detection

0.4.1 - 2020-09-07

This release fixes a couple of minor issues and introduces an important rework of the User Guides section of the documentation.

Issues fixed

  • Error Message: “make sure the Graphviz executables are on your systems’ PATH” - Issue #182 by @csala

  • Anonymization mappings leak - Issue #187 by @csala

0.4.0 - 2020-08-08

In this release SDV gets new documentation, new tutorials, improvements to the Tabular API and broader python and dependency support.

Complete list of changes:

  • New Documentation site based on the pydata-sphinx-theme.

  • New User Guides and Notebook tutorials.

  • New Developer Guides section within the docs with details about the SDV architecture, the ecosystem libraries and how to extend and contribute to the project.

  • Improved API for the Tabular models with focus on ease of use.

  • Support for Python 3.8 and the newest versions of pandas, scipy and scikit-learn.

  • New Slack Workspace for development discussions and community support.

0.3.6 - 2020-07-23

This release introduces a new concept of Constraints, which allow the user to define special relationships between columns that will not be handled via modeling.

This is done via a new sdv.constraints subpackage which defines some well-known pre-defined constraints, as well as a generic framework that allows the user to customize the constraints to their needs as much as necessary.

New Features

0.3.5 - 2020-07-09

This release introduces a new subpackage sdv.tabular with models designed specifically for single table modeling, while still providing all the usual conveniences from SDV, such as:

  • Seamless multi-type support

  • Missing data handling

  • PII anonymization

Currently implemented models are:

  • GaussianCopula: Multivariate distributions modeled using copula functions. This is stronger version, with more marginal distributions and options, than the one used to model multi-table datasets.

  • CTGAN: GAN-based data synthesizer that can generate synthetic tabular data with high fidelity.

0.3.4 - 2020-07-04

New Features

  • Support for Multiple Parents - Issue #162 by @csala

  • Sample by default the same number of rows as in the original table - Issue #163 by @csala

General Improvements

0.3.3 - 2020-06-26

General Improvements

  • Use SDMetrics for evaluation - Issue #159 by @csala

0.3.2 - 2020-02-03

General Improvements

  • Improve metadata visualization - Issue #151 by @csala @JDTheRipperPC

0.3.1 - 2020-01-22

New Features

  • Add Metadata Validation - Issue #134 by @csala @JDTheRipperPC

  • Add Metadata Visualization - Issue #135 by @JDTheRipperPC

General Improvements

  • Add path to metadata JSON - Issue #143 by @JDTheRipperPC

  • Use new Copulas and RDT versions - Issue #147 by @csala @JDTheRipperPC

0.3.0 - 2019-12-23

New Features

  • Create sdv.models subpackage - Issue #141 by @JDTheRipperPC

0.2.2 - 2019-12-10

New Features

  • Adapt evaluation to the different data types - Issue #128 by @csala @JDTheRipperPC

  • Extend load_demo functionality to load other datasets - Issue #136 by @JDTheRipperPC

0.2.1 - 2019-11-25

New Features

  • Methods to generate Metadata from DataFrames - Issue #126 by @csala @JDTheRipperPC

0.2.0 - 2019-10-11

New Features

  • compatibility with rdt issue 72 - Issue #120 by @csala @JDTheRipperPC

General Improvements

  • Error docstring sampler.__fill_text_columns - Issue #144 by @JDTheRipperPC

  • Reach 90% coverage - Issue #112 by @JDTheRipperPC

  • Review unittests - Issue #111 by @JDTheRipperPC

Bugs Fixed

  • Time required for sample_all function? - Issue #118 by @csala @JDTheRipperPC

0.1.2 - 2019-09-18

New Features

  • Add option to model the amount of child rows - Issue 93 by @ManuelAlvarezC

General Improvements

  • Add Evaluation Metrics - Issue 52 by @ManuelAlvarezC

  • Ensure unicity on primary keys on different calls - Issue 63 by @ManuelAlvarezC

Bugs fixed

  • executing readme: ‘not supported between instances of ‘int’ and ‘NoneType’ - Issue 104 by @csala

0.1.1 - Anonymization of data

  • Add warnings when trying to model an unsupported dataset structure. GH#73

  • Add option to anonymize data. GH#51

  • Add support for modeling data with different distributions, when using GaussianMultivariate model. GH#68

  • Add support for VineCopulas as a model. GH#71

  • Improve GaussianMultivariate parameter sampling, avoiding warnings and unvalid parameters. GH#58

  • Fix issue that caused that sampled categorical values sometimes got numerical values mixed. GH#81

  • Improve the validation of extensions. GH#69

  • Update examples. GH#61

  • Replaced Table class with a NamedTuple. GH#92

  • Fix inconsistent dependencies and add upper bound to dependencies. GH#96

  • Fix error when merging extension in Modeler.CPA when running examples. GH#86

0.1.0 - First Release

  • First release on PyPI.