Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Our paper Benchmarking the Fidelity and Utility of Synthetic Relational Data is available on arxiv.
To install only the benchmark package, run the following command:
pip install syntherela
We divide the reproducibility of the experiments into two parts: the generation of synthetic data and the evaluation of the generated data. The following sections describe how to reproduce the experiments for each part.
To reproduce some of the figures the synthetic data needs to be downloaded first. The tables can be reproduced with the results provided in the repository or by re-running the benchmark.
First, create a .env file in the root of the project with the path to the root of the project. Copy .env.example
, rename it to .env
and update the path.
The data and results can be downloaded and extracted with the below script, or are available on google drive here.
conda activate reproduce_benchmark
./experiments/reproducibility/download_data_and_results.sh
To run the benchmark and get the results of the metrics, run:
conda activate reproduce_benchmark
./experiments/reproducibility/evaluate_relational.sh
./experiments/reproducibility/evaluate_tabular.sh
./experiments/reproducibility/evaluate_utility.sh
Depending on the synthetic data generation method a separate pythone environment is needed. The instruction for installing the required environment for each method is provided in docs/INSTALLATION.md.
After installing the required environment, the synthetic data can be generated by running the following commands:
conda activate reproduce_benchmark
./experiments/reproducibility/generation/generate_sdv.sh
conda activate rctgan
./experiments/reproducibility/generation/generate_rctgan.sh
conda activate realtabformer
./experiments/reproducibility/generation/generate_realtabformer.sh
conda activate tabular
./experiments/reproducibility/generation/generate_tabular.sh
conda activate gretel
python experiments/generation/gretel/generate_gretel.py --connection-uid <connection-uid> --model lstm
python experiments/generation/gretel/generate_gretel.py --connection-uid <connection-uid> --model actgan
cd experiments/generation/clavaddpm
./generate_clavaddpm.sh <dataset-name> <real-data-path> <synthetic-data-path>
To generate data with MOSTLYAI, insructions are provided in experiments/generation/mostlyai/README.md.
Further instructions for GRETELAI are provided in experiments/generation/gretel/README.md.
To visualize results, after running the benchmark you can run the below script. The figures will be saved to results/figures/
:
conda activate reproduce_benchmark
./experiments/reproducibility/generate_figures.sh
To reproduce the tables you can run the below script. The tables will be saved as .tex files in results/tables/
:
conda activate reproduce_benchmark
./experiments/reproducibility/generate_tables.sh
The documentation for adding a new metric can be found in docs/ADDING_A_METRIC.md.
* Denotes the method does not have a public implementation available.
A list of commercial synthetic relational data providers is available in docs/SYNTHETIC_DATA_TOOLS.md.
The authors declare no conflict of interest and are not associated with any of the evaluated commercial synthetic data providers.
If you use SyntheRela in your work, please cite our paper:
@misc{hudovernik2024benchmarkingsyntheticrelationaldata,
title={Benchmarking the Fidelity and Utility of Synthetic Relational Data},
author={Valter Hudovernik and Martin Jurkovič and Erik Štrumbelj},
year={2024},
eprint={2410.03411},
archivePrefix={arXiv},
primaryClass={cs.DB},
url={https://arxiv.org/abs/2410.03411},
}
FAQs
SyntheRela - Synthetic Relational Data Generation Benchmark
We found that syntherela demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.