Este repositorio contiene la implementación del código para Timediff, un modelo de difusión diseñado para la generación de datos de series de tiempo de tipo mixto en EHR. Nuestro trabajo es aceptado por el Journal of the American Medical Informatics Association (JAMIA) .
requirements.txt para instalar dependencias.etdiff_train.py es el script para inicializar el entrenamiento del modelo. Después de completar la capacitación, generará automáticamente datos de series de tiempo EHR sintéticas y los almacenará en el directorio designado establecido por el usuario. Este directorio se puede especificar con el argumento de línea de comandos --check_point_path .models/ETDiff . Consulte el directorio preprocess para los cuadernos Jupyter y los scripts de Python sobre cómo preprocesamos datos EHR para la capacitación y evaluación de modelos.
Nota: Establezca PYTHONPATH correctamente en la raíz de este repositorio para ejecutar los modelos de referencia.
Recomendamos usar entornos independientes para cada uno de los modelos de referencia, ya que algunos de ellos tienen requisitos distintivamente diferentes (un ejemplo es la versión de Python para TensorFlow 1.x). Consulte el repositorio de códigos para las líneas de base y el Apéndice A.4.4 en nuestro documento para obtener más detalles.
baselines/ehrmgan_train.py ; La implementación se almacena en models/ehr_m_gan .baselines/dspd_train.py ; La implementación se almacena en models/tsdiff ; Para usar CSPD en lugar de DSPD, use la difusión continua para el argumento --diffusion .baselines/gtgan_train.py ; La implementación se almacena en models/gt_gan .baselines/timegan_train.py ; La implementación se almacena en models/time_gan .baselines/rcgan_train.py ; La implementación se almacena en models/rc_gan .baselines/crnngan_train.py ; La implementación se almacena en models/crnn_gan .baselines/pt_forcing_train.py ; La implementación se almacena en models/p_or_t_forcing ; Pasando el argumento de la línea de comandos -adversarial utiliza P -Forceing. De lo contrario, se usa el force T.baselines/halo_preprocess.py y las descripciones proporcionadas por los autores de halo en su manuscrito para preprocesar los datos de entrada. Ejecute baselines/halo_train.py para entrenar el modelo y baselines/halo_generate.py para el muestreo. La implementación se almacena en models/halo . eval_samples.py es el script responsable de ejecutar todas las métricas de evaluación discutidas en el documento; Para ejecutar el código, pase la métrica prevista para usar a través del argumento de la línea de comandos --metric , así como los datos de entrenamiento ( --train_path ), los datos de prueba ( --test_path ) y los datos sintéticos ( --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 }
}