Skip to content

Synthetic data using Generative Adversarial Networks

License

Notifications You must be signed in to change notification settings

tsrobinson/SyGNet

Repository files navigation

SyGNetSyGNet Mascot

Synthetic data using Generative Adversarial Networks

Principal Investigator: Dr Thomas Robinson ([email protected])

Research team: Artem Nesterov, Maksim Zubok

example workflow

sygnet ("sig·net") is a Python package for generating synthetic data within social science contexts. The sygnet algorithm uses cutting-edge advances in deep learning methods to learn the underlying relationships between variables in a dataset. Users can then generate brand-new, synthetic observations that mimic the real data.

Installation

To install via pip, you can run the following command at the command line: pip install sygnet

sygnet requires:

numpy>=1.21
torch>=1.10.0
scikit-learn>=1.0
pandas>=1.4
datetime
tqdm

Example implementation

You can find a demonstration of sygnet under examples/basic_example.

Current version: 0.0.13 (alpha release)

Alpha release: You should expect both functionality and pipelines to change (rapidly and without warning). Comments and bug reports are very welcome!

Replacing linear with sigmoid activation functions to facilitate better training, given automatic scaling of data to 0-1 space.

Previous releases

0.0.12

Minor documentation updates including README.

0.0.11

  • Bug fix in sampling method

0.0.10

  • Minor patch to allow for conda-forge release

0.0.9

  • Rewrite of main interface and underlying functions
  • Bulding models now structured in terms of hidden "blocks"
  • Added self-attention mechanism

0.0.8

  • Update tune() to provide no k-fold cross validation as default
  • Update numpy dependency to fix pre-processing bug

0.0.7

  • Update internal train_* functions to return losses and improve logging
  • Update tune() function

0.0.6 and 0.0.5

  • Internal changes to improve code efficiency
  • Removes sygnet_ from all submodule names
  • Lowers PyTorch requirement to 1.10 for compatability with OpenCE environments

0.0.4

  • Adds tune() function to run hyperparameter tuning
  • Adds model saving functionality to SygnetModel.fit()
  • Fixes various bugs
  • Improves documentation

0.0.3

  • Fixes column ordering issue when using mixed activation layer
  • Updates example

0.0.2

  • Fixes mixed activation bug where final layer wasn't sent to device
  • Adds SygnetModel.transform() alias for SygnetModel.sample()

0.0.1 Our first release! This version has been lightly tested and the core functionality has been implemented.