Este repositório contém a implementação do código do Timediff, um modelo de difusão projetado para a geração de dados de séries temporais do tipo misto no EHR. Nosso trabalho é aceito pelo Journal of the American Medical Informatics Association (JAMIA) .
requirements.txt para instalar dependências.etdiff_train.py é o script para inicializar o treinamento do modelo. Após a conclusão do treinamento, ele gerará automaticamente dados sintéticos de séries temporais EHR e armazenará no diretório designado definido pelo usuário. Este diretório pode ser especificado com o argumento da linha de comando --check_point_path .models/ETDiff . Consulte o diretório preprocess para notebooks Jupyter e scripts Python sobre como pré -processamos dados de EHR para treinamento e avaliação de modelos.
Nota: Por favor, defina PYTHONPATH corretamente a raiz deste repositório para executar os modelos de linha de base.
Recomendamos o uso de ambientes independentes para cada um dos modelos de linha de base, pois alguns deles têm requisitos distintamente diferentes (um exemplo é a versão do Python para Tensorflow 1.x). Consulte o repositório de código para as linhas de base e o Apêndice A.4.4 em nosso artigo para obter mais detalhes.
baselines/ehrmgan_train.py ; A implementação é armazenada em models/ehr_m_gan .baselines/dspd_train.py ; A implementação é armazenada em models/tsdiff ; Para usar o CSPD em vez de DSPD, use difusão contínua para -argumento --diffusion .baselines/gtgan_train.py ; A implementação é armazenada em models/gt_gan .baselines/timegan_train.py ; A implementação é armazenada em models/time_gan .baselines/rcgan_train.py ; A implementação é armazenada em models/rc_gan .baselines/crnngan_train.py ; A implementação é armazenada em models/crnn_gan .baselines/pt_forcing_train.py ; A implementação é armazenada em models/p_or_t_forcing ; Passando o argumento da linha de comando -adversarial usa a Força P. Caso contrário, a força T é usada.baselines/halo_preprocess.py e as descrições fornecidas pelos autores do halo em seu manuscrito para pré -processar os dados de entrada. Execute baselines/halo_train.py para treinar as baselines/halo_generate.py para amostragem. A implementação é armazenada em models/halo . eval_samples.py é o script responsável pela execução de todas as métricas de avaliação discutidas no artigo; Para executar o código, passe a métrica pretendida a ser usada via -argumento da linha de comando --metric , bem como os dados de treinamento ( --train_path ), testando dados ( --test_path ) e dados 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 }
}