TimeDiff
1.0.0
このリポジトリには、EHRでの混合型時系列データの生成用に設計された拡散モデルであるTimediffのコード実装が含まれています。私たちの仕事は、Journal of the American Medical Informatics Association(Jamia)によって受け入れられています。
requirements.txtを使用して依存関係をインストールします。etdiff_train.pyは、モデルトレーニングを初期化するスクリプトです。トレーニングが完了した後、合成EHR時系列データを自動的に生成し、ユーザーが設定した指定ディレクトリに保存します。このディレクトリは、 --check_point_pathコマンドライン引数で指定できます。models/ETDiffで見つけることができます。 Jupyterノートブックのpreprocessディレクトリと、モデルトレーニングと評価のためのEHRデータを事前に処理する方法に関するPythonスクリプトをご覧ください。
注:ベースラインモデルを実行するために、 PYTHONPATHこのリポジトリのルートに正しく設定してください。
ベースラインモデルごとに独立した環境を使用することをお勧めします。一部のモデルには、異なる要件が明確に異なるためです(1つの例はTensorflow 1.xのPythonのバージョンです)。詳細については、ペーパーのベースラインのコードリポジトリと付録A.4.4を参照してください。
baselines/ehrmgan_train.py ;実装はmodels/ehr_m_ganに保存されます。baselines/dspd_train.pyを実行します。実装はmodels/tsdiffに保存されます。 DSPDではなくCSPDを使用するには、 --diffusion引数に連続拡散を使用します。baselines/gtgan_train.pyを実行します。実装はmodels/gt_ganに保存されます。baselines/timegan_train.py ;実装はmodels/time_ganに保存されます。baselines/rcgan_train.pyを実行します。実装はmodels/rc_ganに保存されます。baselines/crnngan_train.pyを実行します。実装はmodels/crnn_ganに保存されます。baselines/pt_forcing_train.py ;実装はmodels/p_or_t_forcingに保存されます。コマンドライン引数を渡す-adversarial Pフォーシングを使用します。それ以外の場合、T-Forcingが使用されます。baselines/halo_preprocess.pyと、入力データを前処理するためにHaloの著者が原稿で提供した説明を参照してください。 baselines/halo_train.pyを実行して、サンプリングのためにモデルとbaselines/halo_generate.pyトレーニングします。実装はmodels/haloに保存されます。 eval_samples.py 、論文で説明されているすべての評価メトリックを実行する責任のあるスクリプトです。コードを実行するには、 --metricコマンドライン引数、およびトレーニングデータ( --train_path )、テストデータ( --test_path )、および合成データ( --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 }
}