DTR-Bench: An in silico Environment and Benchmark Platform for Reinforcement Learning Based Dynamic Treatment Regime
Project description
DTR-Bench
An in silico Environment and Benchmark Platform for Reinforcement Learning Based Dynamic Treatment Regime
📝 Table of Contents
🧐 About
DTR-Bench (DTR-Bench) is an expanding reinforcement learning simulation platform with a unified pipeline including hyperparameter search, training, evaluation, and visualisation.
🏁 Getting Started
These instructions will get you a copy of the project up and running on your local machine.
Prerequisites
- Python 3.10: The project is developed using Python 3.10. It is recommended to use the same version to avoid compatibility issues.
Installing
- Install the DTR-Gym and the DTR-Bench
pip install dtrgym
- Install the required packages
cd SimMedEnv
pip install -r requirements.txt
- Test the installation
python test_installation.py
Running the getting started demo
We provide a simple example to show how to use the DTR-Bench. The example is in the get_start.py file.
You can run the example by:
python get_start.py
After running the example, you will see the following a plot like this. It shows the effect of the treatment given by the train RL policy in the simulation environment.
🎈 Module Description
Offpolicy RL Algorithms
The DTRBench provides a set of off-policy RL algorithms to train the RL policy in the simulation environments. These policies are developed based on Tianshou. The off-policy RL algorithms include:
Discrete | RNN-based | Continuous |
---|---|---|
DDQN | DQN-rnn | DDPG |
DDQN-dueling | DDQN-rnn | TD3 |
DQN | C51-rnn | SAC |
C51 | discrete-SAC-rnn | |
discrete-SAC |
Run RL Functions
Running functions in reinforcement learning, which includes hyperparameters grid-searching, policies training and evaluation, and baseline policies evaluation.
Visualisation
The DTRBench provides a standard visualisation tool to visualise the treatment effect of the trained RL policy in the simulation environments. It enables visualising the environment states, observations, actions, and the reward.
🔧 Usage
The DTR-Bench provides a set of APIs to interact with the simulation environments and the benchmark policies.
It can be used to:
- Create a simulation environment.
- Optimize the hyperparameters of the RL policy training.
- Train a RL policy in the simulation environments.
- Visualize the treatment effect of the trained RL policy.
Create a Simulation Environment
import gymnasium as gym
import DTRGym # this line is necessary!
gym.make('AhnChemoEnv-discrete', n_act=11)
Please remember to import DTRGym to register the simulation environments.
Hyperparameters Search
- Discrete policies todo: change the cd path
cd SimMedEnv
export PYTHONPATH="."
python DTRBench/run_rl/online_discrete_search.py --policy_name=DQN --task SimGlucoseEnv --n_trials 100 --num_actions 11 --setting 1
- continuous policies
cd SimMedEnv
export PYTHONPATH="."
python DTRBench/run_rl/online_continuous_search.py --policy_name=DDPG --task OberstSepsisEnv --n_trials 100 --setting 1
Online Training and Testing
- Discrete Policies
cd SimMedEnv
export PYTHONPATH="."
conda activate torch
python DTRBench/run_rl/online_discrete_retrain.py --policy_name=DQN --task SimGlucoseEnv --num_actions 11 --setting 1
- Continuous Policies
cd SimMedEnv
export PYTHONPATH="."
conda activate torch
python DTRBench/run_rl/online_continuous_retrain.py --policy_name=DDPG --task SimGlucoseEnv --setting 1
- Baseline Policies (RandomPolicy, MaxPolicy, MinPolicy)
cd SimMedEnv
export PYTHONPATH="."
conda activate torch
python DTRBench/run_rl/online_baseline.py --task OberstSepsisEnv
Visualisation
cd SimMedEnv
export PYTHONPATH="."
python DTRBench/visual_fn/visual.py
Download the Hyperparameters and Test Results
The hyperparameters and test results are stored on Kaggle.
Reference
If you use the DTR-Bench in your research, please cite the following paper:
to be updated
✍️ Sepcial Thanks
Special thanks to the following contributors that make the DTR-Bench possible:
- @Mingcheng Zhu - who developed DTRGym and produced extensive DTRBench experiments.
- To be continued
🎉 Acknowledgement
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file DTR-Bench-0.1.0.tar.gz
.
File metadata
- Download URL: DTR-Bench-0.1.0.tar.gz
- Upload date:
- Size: 35.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e5f5bdf1dad21bba9e08e2359b43a2337f4e83526963b05aad71daa10c44eb5 |
|
MD5 | f72ca5be3ab59c525fdd2fd1ed2f22e1 |
|
BLAKE2b-256 | f3adc84a0944f98bede9c803366596a8c895892b9cd0bd0586796f3abf1ccfec |
File details
Details for the file DTR_Bench-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: DTR_Bench-0.1.0-py3-none-any.whl
- Upload date:
- Size: 45.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b567d524ca43c08a113ec90f58305401ca675b6888529fb90841172a8e1b5c2 |
|
MD5 | d521d959d3471991d97f2ec2af66adb0 |
|
BLAKE2b-256 | 8731e7d0c82a4fa30452ff987dcd9b6d4120793ed25e11a18ba5d6c7509c17ef |