Dieses Repository enthält die Code-Implementierung für Timediff, ein Diffusionsmodell, das für die Erzeugung von Zeitreihendaten mit gemischtem Typ in EHR entwickelt wurde. Unsere Arbeit wird vom Journal der American Medical Informatics Association (Jamia) akzeptiert.
requirements.txt , um Abhängigkeiten zu installieren.etdiff_train.py ist das Skript zum Initialisierungsmodelltraining. Nach Abschluss des Trainings generiert es automatisch synthetische EHR -Zeitreihendaten und speichert sie im vom Benutzer festgelegten Verzeichnis. Dieses Verzeichnis kann mit dem Befehlszeilen -Argument --check_point_path angegeben werden.models/ETDiff . Weitere Informationen zu Jupyter -Notizbüchern und Python -Skripten finden Sie preprocess -Verzeichnis, wie wir EHR -Daten für das Modelltraining und -bewertung vorbereiten.
HINWEIS: Bitte stellen Sie PYTHONPATH korrekt auf das Root dieses Repositorys ein, um die Basismodelle auszuführen.
Wir empfehlen, unabhängige Umgebungen für jedes der Basismodelle zu verwenden, da einige von ihnen deutlich unterschiedliche Anforderungen haben (ein Beispiel ist die Version von Python für TensorFlow 1.x). Weitere Informationen finden Sie im Code -Repository für die Baselines und den Anhang A.4.4.
baselines/ehrmgan_train.py ; Die Implementierung wird bei models/ehr_m_gan gespeichert.baselines/dspd_train.py ausführen; Die Implementierung wird bei models/tsdiff gespeichert. Verwenden Sie die kontinuierliche Diffusion für --diffusion -Argument, um CSPD anstelle von DSPD zu verwenden.baselines/gtgan_train.py ; Die Implementierung wird bei models/gt_gan gespeichert.baselines/timegan_train.py ; Die Implementierung wird bei models/time_gan gespeichert.baselines/rcgan_train.py ; Die Implementierung wird bei models/rc_gan gespeichert.baselines/crnngan_train.py ; Die Implementierung wird bei models/crnn_gan gespeichert.baselines/pt_forcing_train.py ; Die Implementierung wird bei models/p_or_t_forcing gespeichert; Übergeben des Befehlszeilenarguments -adversarial verwendet P -Forcing. Andernfalls wird T-Forcing verwendet.baselines/halo_preprocess.py und die Beschreibungen der Halo -Autoren in ihrem Manuskript, um die Eingabedaten vorzubereiten. Führen Sie baselines/halo_train.py aus, um das Modell und baselines/halo_generate.py für die Probenahme zu trainieren. Die Implementierung wird bei models/halo gespeichert. eval_samples.py ist das Skript, das für die Ausführung aller im Papier diskutierten Bewertungsmetriken verantwortlich ist. Um den Code auszuführen, übergeben Sie die beabsichtigte Metrik, um das Argument für --metric Befehlszeilen sowie die Trainingsdaten ( --train_path ), das Testen von Daten ( --test_path ) und synthetische Daten ( --sync_path ) zu testen.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 }
}