Ce référentiel contient l'implémentation du code pour TimeDiff, un modèle de diffusion conçu pour la génération de données de séries chronologiques de type mixte dans le DSE. Notre travail est accepté par le Journal of the American Medical Informatics Association (Jamia) .
requirements.txt pour installer des dépendances.etdiff_train.py est le script pour initialiser la formation du modèle. Une fois la formation terminée, il générera automatiquement des données de séries chronologiques synthétiques et les stockera dans le répertoire désigné défini par l'utilisateur. Ce répertoire peut être spécifié avec l'argument de la ligne de commande --check_point_path .models/ETDiff . Veuillez consulter le répertoire preprocess pour les carnets de jupyter et les scripts Python sur la façon dont nous pré-trons les données du DSE pour la formation et l'évaluation du modèle.
Remarque: veuillez définir correctement PYTHONPATH sur la racine de ce référentiel afin d'exécuter les modèles de base.
Nous vous recommandons d'utiliser des environnements indépendants pour chacun des modèles de base, car certains d'entre eux ont des exigences distinctement différentes (un exemple est la version de Python pour TensorFlow 1.x). Veuillez vous référer au référentiel de code pour les lignes de base et l'annexe A.4.4 dans notre article pour plus de détails.
baselines/ehrmgan_train.py ; L'implémentation est stockée sur models/ehr_m_gan .baselines/dspd_train.py ; La mise en œuvre est stockée chez models/tsdiff ; Pour utiliser CSPD plutôt que DSPD, utilisez une diffusion continue pour un argument --diffusion .baselines/gtgan_train.py ; L'implémentation est stockée sur models/gt_gan .baselines/timegan_train.py ; L'implémentation est stockée sur models/time_gan .baselines/rcgan_train.py ; L'implémentation est stockée sur models/rc_gan .baselines/crnngan_train.py ; L'implémentation est stockée sur models/crnn_gan .baselines/pt_forcing_train.py ; L'implémentation est stockée sur models/p_or_t_forcing ; Passer l'argument de la ligne de commande -adversarial utilise P-Forcing. Sinon, la forçage en T est utilisée.baselines/halo_preprocess.py et les descriptions fournies par les auteurs de Halo dans leur manuscrit pour prétraiter les données d'entrée. Exécutez baselines/halo_train.py pour former le modèle et baselines/halo_generate.py pour l'échantillonnage. L'implémentation est stockée chez models/halo . eval_samples.py est le script responsable de l'exécution de toutes les mesures d'évaluation discutées dans l'article; Pour exécuter le code, passez la métrique prévue à utiliser via l'argument de la ligne de commande --metric , ainsi que les données de formation ( --train_path ), les données de test ( --test_path ) et les données synthétiques ( --sync_path ).evaluate/utility.py .evaluate/privacy.py . @article { tian2024reliable ,
title = { Reliable generation of privacy-preserving synthetic electronic health record time series via diffusion models } ,
author = { Tian, Muhang and Chen, Bernie and Guo, Allan and Jiang, Shiyi and Zhang, Anru R } ,
journal = { Journal of the American Medical Informatics Association } ,
pages = { ocae229 } ,
year = { 2024 } ,
publisher = { Oxford University Press }
}