Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update master #119

Merged
merged 302 commits into from
Jun 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
302 commits
Select commit Hold shift + click to select a range
d7a2164
hotfix for ml imputation methods
Snagnar Dec 14, 2022
07d8063
fixes for parameter setting
Snagnar Dec 14, 2022
cb7c85b
Merge branch 'development' into feature/wandb-sweeps
Snagnar Dec 14, 2022
9efceb9
added sweep config
Snagnar Dec 14, 2022
cffc72b
Merge branch 'development' into mice_baseline
anna-shopova Dec 14, 2022
c83263e
added wandb project name
anna-shopova Dec 14, 2022
7bff80d
Merge pull request #13 from Snagnar/mice_baseline
anna-shopova Dec 14, 2022
6a6dffc
removed debug test
vayvy Dec 14, 2022
e262825
accelerator from "auto" to "cpu" + removed devices
vayvy Dec 14, 2022
b42b969
removed seed from matric names
anna-shopova Dec 14, 2022
bb2e68c
merged develop, fixed inf bug
Snagnar Dec 14, 2022
250f236
Merged remote branch into local branch
vayvy Dec 15, 2022
7e75ae9
Validation Step changes
fabianlange18 Jan 4, 2023
592127a
Merge branch 'development' into feature/wandb-sweeps
Snagnar Jan 4, 2023
e6f66c4
fixed run name
Snagnar Jan 4, 2023
dd05530
Merge pull request #14 from Snagnar/feature/wandb-sweeps
Snagnar Jan 4, 2023
41ce00c
added (bidirectional) LSTM/GRU imputation methods
anna-shopova Jan 6, 2023
1cce49a
Fixed context/target split for now
alisher-turubayev Jan 6, 2023
a4c7650
Issue #1 - NP implementation is complete
alisher-turubayev Jan 10, 2023
e43bde2
added imputation using a pretrained imputation model
Snagnar Jan 11, 2023
a1a460f
Merge branch 'development' into feature/pretrained-model-imputation
Snagnar Jan 11, 2023
5eb794d
changed install instructions to use fork
Snagnar Jan 11, 2023
9b1e969
Fix Validate Step
fabianlange18 Jan 11, 2023
ab87e00
changed sweep config
Snagnar Jan 11, 2023
75d2984
Merge branch 'development' into np-implementation
Snagnar Jan 11, 2023
32652b4
fixed gin config file
Snagnar Jan 11, 2023
f12a96d
merged develop
Snagnar Jan 11, 2023
89bacd4
fixed some merge errors
Snagnar Jan 11, 2023
091590d
Merge branch 'development' into rnn-imputers
Snagnar Jan 11, 2023
200876f
Merge pull request #19 from Snagnar/rnn-imputers
Snagnar Jan 11, 2023
a3e6d66
Merge pull request #18 from Snagnar/diffusion-model
Snagnar Jan 11, 2023
7407a27
Merge pull request #17 from Snagnar/np-implementation
Snagnar Jan 11, 2023
908dc57
Merge branch 'development' of github.com:Snagnar/YAIB into development
Snagnar Jan 11, 2023
1c2c362
changed sweep config
Snagnar Jan 11, 2023
a11628d
fixed minor diffusion bug
Snagnar Jan 12, 2023
12052a3
np fix attempt
Snagnar Jan 12, 2023
a3e65e6
some more fixes
Snagnar Jan 12, 2023
ba726db
minor fixes for np
Snagnar Jan 13, 2023
951dc88
added wandb config for pretrained models
Snagnar Jan 13, 2023
190aaea
Corrected result for JSD
vayvy Jan 13, 2023
b9627a7
Merge branch 'development' into evaluation_metrics
Snagnar Jan 13, 2023
69fd167
fixed bug
Snagnar Jan 13, 2023
9bce58e
made early stopping more forgiving
Snagnar Jan 13, 2023
346d963
Changed NP training/validation/test loop
alisher-turubayev Jan 13, 2023
9acd4b1
Apply Attention in Residual Blocks
fabianlange18 Jan 14, 2023
a12181a
Fix for GPUs
fabianlange18 Jan 14, 2023
d87ce44
some sweep adaptions
Snagnar Jan 16, 2023
ea14709
Merge branch 'development' into pretrained_imputation
Snagnar Jan 16, 2023
9b63087
some fixes for pretrained imputation
Snagnar Jan 17, 2023
e89170f
some fix tries
Snagnar Jan 17, 2023
3470fe5
metric computation hotfix
Snagnar Jan 17, 2023
ad90e9c
adapted sweep config
Snagnar Jan 17, 2023
2220047
added prediction dataset
Snagnar Jan 18, 2023
2f5169d
added more seeds to sweep
Snagnar Jan 18, 2023
00ff13c
Merge branch 'development' into diffusion-model
fabianlange18 Jan 19, 2023
d17c347
Add more clean diffusion model
fabianlange18 Jan 20, 2023
d1dc077
restacked imputed data
Snagnar Jan 21, 2023
1eaa8fb
fixed pretrained imputation
Snagnar Jan 23, 2023
9f475e7
changed model configs
Snagnar Jan 23, 2023
64ad6b2
fixed cpu core count estimation for slurm clusters
Snagnar Jan 25, 2023
764e3fe
Merge branch 'pretrained_imputation' into development
Snagnar Jan 25, 2023
0fb2966
removed logging statements
Snagnar Jan 25, 2023
aa15c7f
added stub for 5 min dataset
Snagnar Jan 25, 2023
c5f5ee9
merged upstream
Snagnar Jan 29, 2023
ee8829a
removed ci conflict
Snagnar Jan 29, 2023
1b58d0b
fixed some bugs
Snagnar Jan 29, 2023
880cabd
more fixes
Snagnar Jan 30, 2023
5e265d4
added draft of parallel windowing approach
Snagnar Jan 30, 2023
9a917be
removed parallel
Snagnar Jan 30, 2023
f1bbfab
final fixes, should be fine now
Snagnar Jan 30, 2023
7f05e70
removed unneccessary files
Snagnar Jan 30, 2023
23b61e3
hotfix: enabled testing
Snagnar Jan 30, 2023
6848a65
removed deprecated name mapping dict
Snagnar Jan 30, 2023
6513b18
removed do_test flag
Snagnar Jan 30, 2023
98dea23
Improve Diffusion Model
fabianlange18 Jan 31, 2023
34c7a64
merged upstream/development
Snagnar Feb 1, 2023
61cd1ab
removed unused files
Snagnar Feb 1, 2023
ab52d55
linting with flake8
Snagnar Feb 1, 2023
21e191b
added README explanation for imputations
Snagnar Feb 1, 2023
03b3425
fixed conda install instructions
Snagnar Feb 1, 2023
e4dde2b
Some comments/changes
rvandewater Feb 2, 2023
b8d0049
Merge branch 'development' into diffusion-model
Snagnar Feb 5, 2023
28fc5b5
added CSDI model
Snagnar Feb 5, 2023
ffbd85c
bug fixes
Snagnar Feb 5, 2023
6dfe609
Fixes to neural processes
alisher-turubayev Feb 7, 2023
2546540
fixed wandb bug
Snagnar Feb 8, 2023
ae37ee1
removed fixed project name for wandb
Snagnar Feb 8, 2023
759d951
fixed bugs
Snagnar Feb 8, 2023
a454ee8
Merge branch 'diffusion-model' into development
Snagnar Feb 8, 2023
a6e280a
latest changes
Snagnar Feb 9, 2023
93da3ae
Diffusion Model Improvements
fabianlange18 Feb 9, 2023
831ea31
added black out missingness
Snagnar Feb 9, 2023
ab68c27
SSSDS4 Draft
fabianlange18 Feb 9, 2023
20a7626
Merge branch 'development' into diffusion-model
Snagnar Feb 9, 2023
687d2cc
Minor fixes: Next step is to fix SSSDS4 Forward()
fabianlange18 Feb 9, 2023
e358a0f
Merge branch 'diffusion-model' of github.com:Snagnar/YAIB into diffus…
Snagnar Feb 9, 2023
38c7948
adapted sssds4 model
Snagnar Feb 9, 2023
8b065ba
Add DiffWave and SSSDSA
fabianlange18 Feb 10, 2023
cd6d1ea
Fix Bug, still crashes because of pykeops bug
fabianlange18 Feb 10, 2023
7ea00fc
fixed sssds4
Snagnar Feb 10, 2023
c07af5b
refactored critical elements
Snagnar Feb 17, 2023
ebff6d2
added environment parsing to setup.py
Snagnar Feb 18, 2023
dfc8dcd
added mps install to setup
Snagnar Feb 18, 2023
8dd0e62
added docstrings
Snagnar Feb 18, 2023
66f852c
fixed bugs
Snagnar Feb 18, 2023
a9ba73c
fixed error with pretrained imputation
Snagnar Feb 18, 2023
03e9da7
Bug fixes - NP
alisher-turubayev Feb 20, 2023
f5d98f1
Small changes to readme and moved pypots to pip in environment.yml
rvandewater Feb 20, 2023
e621fa2
Extracted wandb to seperate markdown document
rvandewater Feb 20, 2023
dbec891
Small changes to binary classification file
rvandewater Feb 20, 2023
e4f88f3
Small changes to environment.yml files
rvandewater Feb 20, 2023
c52dc42
Small changes to environment.yml file, loader, constants, and cross v…
rvandewater Feb 20, 2023
e752ecd
Small changes to environment.yml, added python version
rvandewater Feb 20, 2023
9450cab
Small fixes
rvandewater Feb 20, 2023
b9e9635
Revert "Small fixes"
rvandewater Feb 20, 2023
06386d0
Small fixes
rvandewater Feb 20, 2023
ade74c6
Small fixes
rvandewater Feb 20, 2023
985a03b
Small refactorings
rvandewater Feb 21, 2023
1608533
Structure Configs
fabianlange18 Feb 21, 2023
ff1f663
Diffusion Run Config
fabianlange18 Feb 21, 2023
497bdad
Config"
fabianlange18 Feb 21, 2023
2da13da
Merge branch 'diffusion-model' of https://github.com/Snagnar/YAIB int…
fabianlange18 Feb 21, 2023
f5c4d10
Merge branch 'diffusion-model' of https://github.com/Snagnar/YAIB int…
fabianlange18 Feb 21, 2023
6f64287
minor refactoring, batch size bugfix
Snagnar Feb 21, 2023
f2e2685
fixed bug with faulty constant enum class definition
Snagnar Feb 21, 2023
c2bed41
Merge branch 'development' into development
rvandewater Feb 22, 2023
3a4175f
Readme refactorings and black formatting
rvandewater Feb 22, 2023
1102bf9
Refactoring
rvandewater Feb 22, 2023
d0a8820
Introduction of RNN and Random Forest and some refactorings/comments
rvandewater Feb 24, 2023
14ca75d
fixed classification task issues
Snagnar Feb 24, 2023
06f457e
Merge branch 'development' of github.com:Snagnar/YAIB into development
Snagnar Feb 24, 2023
dfc4cd5
fixed logistic regression
Snagnar Feb 24, 2023
ea5cb05
fixed lgbmclassifier
Snagnar Feb 24, 2023
0996d7e
merged develop
Snagnar Feb 24, 2023
1059ed6
removed requirements
Snagnar Feb 24, 2023
a26d2c0
added different config for more proportions
Snagnar Feb 27, 2023
3d5b2be
made logging safe for distributed training
Snagnar Feb 27, 2023
fb05d11
Merge branch 'development' of github.com:Snagnar/YAIB into development
Snagnar Feb 27, 2023
5a0bbf4
Merge branch 'development' into diffusion-model
Snagnar Feb 27, 2023
4bfdbde
updated config
Snagnar Feb 27, 2023
28d3111
changed csdi sweep
Snagnar Feb 27, 2023
b358cbc
fix config
Snagnar Feb 27, 2023
a084fc6
fixed config again
Snagnar Feb 27, 2023
efab0dd
Merge branch 'diffusion-model' of github.com:Snagnar/YAIB into diffus…
Snagnar Feb 27, 2023
a31c64c
Documentation
rvandewater Feb 27, 2023
f979e29
Documentation and refactoring
rvandewater Feb 27, 2023
70580dd
fixed diff wave, ssdsa needs cubic sequence length at least
Snagnar Feb 27, 2023
bd91991
Merge branch 'diffusion-model' of github.com:Snagnar/YAIB into diffus…
Snagnar Feb 27, 2023
8346531
added hyperparameter sweep configs for NP and SSSDS4
Snagnar Feb 27, 2023
1c49622
fixed bug with SAITS
Snagnar Feb 27, 2023
47f996f
removed deprecated option
Snagnar Feb 27, 2023
ce6a676
merged diffusion branch
Snagnar Feb 27, 2023
1e4a68e
fixed randomly occuring bug with demo dataset
Snagnar Feb 27, 2023
c51a6ab
Merge remote-tracking branch 'upstream/development' into development
Snagnar Feb 27, 2023
2b62551
moved quiet logging to cross validation
Snagnar Feb 27, 2023
f869198
added first draft on training with missingness inside target
Snagnar Feb 28, 2023
eeae8f1
Documentation and reformatting
rvandewater Feb 28, 2023
057549f
updated simple diffusion
Snagnar Feb 28, 2023
4f65976
Merge branch 'feature/train_on_missing_data' into development
Snagnar Feb 28, 2023
46e3684
addapted sssds4 sweep config
Snagnar Feb 28, 2023
184dd5b
disabled progress bar in verbose=False setting
Snagnar Feb 28, 2023
9890bc6
Documentation and reformatting
rvandewater Feb 28, 2023
4f4e670
Merge pull request #78 from Snagnar/development
rvandewater Feb 28, 2023
d22a94a
moved sweep configs
rvandewater Feb 28, 2023
38ab058
fixed sssds4 sweep config
Snagnar Mar 1, 2023
68a1a76
merged
Snagnar Mar 1, 2023
4a340e2
fixed use of legacy attributes in BRITS and Attention models
Snagnar Mar 2, 2023
d07096e
added config files
Snagnar Mar 2, 2023
5037d2d
fixed test stage bug for saits and brits
Snagnar Mar 2, 2023
1b1920b
set optimal model parameters as obtained from hyperparameter sweeps
Snagnar Mar 4, 2023
98af2a6
SSSDS4 refactoring according to flake8
fabianlange18 Mar 8, 2023
eaed2b5
SSSDSA refactoring according to flake8
fabianlange18 Mar 8, 2023
79747e2
Config for experiment 2
fabianlange18 Mar 8, 2023
4b13215
Merge branch 'development' of https://github.com/Snagnar/YAIB into Sn…
fabianlange18 Mar 9, 2023
934b6bd
Merge branch 'Snagnar-development' into development
fabianlange18 Mar 9, 2023
d79e992
fixed sssds4 and diffwave
Snagnar Mar 10, 2023
05fcf22
fixed faulty setup.py
Snagnar Mar 13, 2023
f36c0be
Merge branch 'development' of github.com:Snagnar/YAIB into development
Snagnar Mar 13, 2023
a316abf
removed prints in setup
Snagnar Mar 13, 2023
43da42d
fixed setup
Snagnar Mar 13, 2023
6c7a804
added log message for gpu availability
Snagnar Mar 13, 2023
39909f9
Added prediction step to SSSDS4 and fixed loading bug
Snagnar Mar 23, 2023
397f77c
added all missing imputation methods from hyperimpute
Snagnar Mar 23, 2023
e24eee2
fixed prediction step bug with wrong mask dtype
Snagnar Apr 1, 2023
983932c
removed dirty fixes of dtype bug in S4 models
Snagnar Apr 1, 2023
ff53dd9
fixed csdi prediction returning nans
Snagnar Apr 1, 2023
7f4c27a
linted with flake8
Snagnar Apr 6, 2023
048069f
removed unused sweep configs
Snagnar Apr 6, 2023
efbe1d3
removed commented code and unused logging statements
Snagnar Apr 6, 2023
5deba1f
linted with flake8
Snagnar Apr 6, 2023
c0a8084
merged upstream
Snagnar Apr 6, 2023
2b102a2
Merge pull request #117 from Snagnar/development
rvandewater Apr 12, 2023
abe2d14
started sweep definition
rvandewater Apr 19, 2023
65fc313
started sweep definition and fixed potential data explosion bug
rvandewater Apr 21, 2023
3c2b2de
Small improvements and refactorings
rvandewater Apr 24, 2023
6ccef91
environment.yml major version update
rvandewater Apr 24, 2023
b46da84
environment.yml small change
rvandewater Apr 24, 2023
94050c5
Adjusted ram caching/caching and overwrite cache files from now on.
rvandewater Apr 25, 2023
45b5372
Documentation
rvandewater May 2, 2023
7b8e221
Added regression for classical ml models
rvandewater May 3, 2023
86ea980
Refactor to put all prediction models in one folder
rvandewater May 4, 2023
1dacea4
Fixes and refactorings
rvandewater May 8, 2023
e6fa22e
Minor adjustments
rvandewater May 8, 2023
97fc187
Standard deviation calculation corrected
rvandewater May 8, 2023
399dd4e
remove test
rvandewater May 8, 2023
b25dfbb
Small cleanups and regression changes
rvandewater May 11, 2023
c27dc31
Added los demo datasets
rvandewater May 11, 2023
a241fe9
Fix runmode and added safegaurds for data splitting
rvandewater May 12, 2023
ad3f8e7
Fix stay id extraction
rvandewater May 12, 2023
4b104fa
Refactoring
rvandewater May 16, 2023
944d6ec
Sweep configs
rvandewater May 16, 2023
3c990c0
Added creatinine task
rvandewater May 22, 2023
2195391
Adjusted preprocessing and wandb logging
rvandewater May 22, 2023
668bf62
Made ram_cache optional
rvandewater May 22, 2023
d40938f
Refactoring models
rvandewater May 23, 2023
c1d7382
Refactoring run.py and adding wandb naming
rvandewater May 23, 2023
fde4f6a
preprocessor.py adjustments
rvandewater May 23, 2023
dea1850
Added regression preprocessor options
rvandewater May 25, 2023
51545f8
Refactored preprocessing and fixed bugs
rvandewater May 25, 2023
31d08e3
renamed file
rvandewater May 25, 2023
cc25962
Fixed loss for ml models
rvandewater May 25, 2023
9d12cff
added runmode check
rvandewater May 25, 2023
c38a064
fix to ml models
rvandewater May 25, 2023
221b00f
fix to ml models
rvandewater May 26, 2023
b158e84
Update to ml models to reuse superclasses. Added ElasticNet.gin
rvandewater May 30, 2023
76d0771
Added sweeps to rerun benchmarks
rvandewater May 31, 2023
d88c4f5
Update README.md
rvandewater Jun 2, 2023
1225021
Merge branch 'development' into submission_experiments
rvandewater Jun 2, 2023
15c00c3
Updated README.md
rvandewater Jun 2, 2023
e527052
Updated README.md and ElasticNet.gin
rvandewater Jun 2, 2023
f090527
Update README.md
rvandewater Jun 6, 2023
aae1495
Demo data rename and added demo data sweeps
rvandewater Jun 6, 2023
7714995
Changed ElasticNet.gin
rvandewater Jun 6, 2023
b7427ca
Added PAPER.md for reproducibility
rvandewater Jun 6, 2023
5f0348e
Restructure arguments
rvandewater Jun 6, 2023
14477df
Restructure gin files
rvandewater Jun 6, 2023
702bc43
documentation
rvandewater Jun 6, 2023
ed625de
Splitting GIN files to increase modularity
rvandewater Jun 7, 2023
a77ef82
Centralized common model gin configs and refactored dataset
rvandewater Jun 7, 2023
25cdf2a
cleanup split_process_data.py
rvandewater Jun 7, 2023
396739b
Documentation for gin files
rvandewater Jun 7, 2023
0dffe2a
Readme and CONTRIBUTING.MD
rvandewater Jun 7, 2023
6888cad
Reformat
rvandewater Jun 7, 2023
d9b07d2
environments
rvandewater Jun 7, 2023
03ce1a6
removed specific files
rvandewater Jun 7, 2023
9ac264b
small change
rvandewater Jun 7, 2023
c90aece
Merge branch 'development' into submission_experiments
rvandewater Jun 7, 2023
780a868
reformat
rvandewater Jun 7, 2023
6aa8421
Merge remote-tracking branch 'origin/submission_experiments' into sub…
rvandewater Jun 7, 2023
d12d205
Merge pull request #118 from rvandewater/submission_experiments
rvandewater Jun 7, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,4 @@ jobs:
# - name: Setup package
# run: pip install -e .
# - name: Test command line tool
# run: python -m icu_benchmarks.run --help
# run: python -m icu_benchmarks.run --help
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,18 @@ lsf*
icu_benchmarks/legacy_MH
MH_DEBUG

.vscode
lightning_logs

# Mac file system
.DS_Store

# wandb logs
wandb/
# Cached data
**/cache/
.DS_Store
.vscode/launch.json
yaib_logs/
*.ckpt
*.csv
101 changes: 101 additions & 0 deletions CONTRIBUTING.MD
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# Contributing

When contributing to this repository, please first discuss the change you wish to make via issue,
email, or any other method with the owners of this repository before making a change.

Please note we have a code of conduct, please follow it in all your interactions with the project.

## Pull Request Process

1. Ensure any install or build dependencies are removed before the end of the layer when doing a
build.
2. Update the README.md with details of changes to the interface, this includes new environment
variables, exposed ports, useful file locations and container parameters.
3. Increase the version numbers in any examples files and the README.md to the new version that this
Pull Request would represent. The versioning scheme we use is [SemVer](http://semver.org/).
4. You may merge the Pull Request in once you have the sign-off of two other developers, or if you
do not have permission to do that, you may request the second reviewer to merge it for you.

## Code of Conduct

### Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.

### Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

### Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

### Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

[//]: # (### Enforcement)

[//]: # ()
[//]: # (Instances of abusive, harassing, or otherwise unacceptable behavior may be)

[//]: # (reported by contacting the project team at [INSERT EMAIL ADDRESS]. All)

[//]: # (complaints will be reviewed and investigated and will result in a response that)

[//]: # (is deemed necessary and appropriate to the circumstances. The project team is)

[//]: # (obligated to maintain confidentiality with regard to the reporter of an incident.)

[//]: # (Further details of specific enforcement policies may be posted separately.)

[//]: # ()
[//]: # (Project maintainers who do not follow or enforce the Code of Conduct in good)

[//]: # (faith may face temporary or permanent repercussions as determined by other)

[//]: # (members of the project's leadership.)

### Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

MIT License

Copyright (c) 2022, Robin van de Water, Hendrik Schmidt, Patrick Rockenschaub
Copyright (c) 2023, Robin van de Water, Hendrik Schmidt, Patrick Rockenschaub
Copyright (c) 2021, ETH Zurich, Biomedical Informatics Group; ratschlab

Permission is hereby granted, free of charge, to any person obtaining a copy
Expand Down
108 changes: 108 additions & 0 deletions PAPER.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
> 📋 This file follows the template for releasing ML research code
> from [papers with code](https://github.com/paperswithcode/releasing-research-code)

![YAIB](docs/figures/yaib_logo.png)

# Yet Another ICU Benchmark: _A Flexible Multi-Center Framework for Clinical ML_

This repository is the official implementation of [placeholder](https://arxiv.org/abs/2030.12345).
See a graphical overview of our framework below:
![yaib_flow](docs/figures/yaib_flow_combined.svg)
We propose Yet Another ICU Benchmark. It was designed to address the issues of reproduciblity and provide a unified interface to develop
clinical prediction models for the ICU. An experiment in YAIB consists of four steps:
1) Defining clinical concepts from the raw data.
2) Extracting the patient cohort and specifying the prediction task.
3) Preprocessing and feature generation.
4) Training and evaluation of the ML model.

## 📋 Requirements

YAIB can be installed using conda or pip. Below you will find the three CLI commands to install YAIB using conda.
The

The first command will install an environment based on Python 3.10 (currently).
This should work on x86 hardware.

```
conda env update -f environment.yml
```

We then activate the environment and install a package called `icu-benchmarks`, after which YAIB should be operational.

```
conda activate yaib
pip install -e .
```

To get the datasets for this paper, please see the [YAIB-cohorts repository](https://github.com/rvandewater/YAIB-cohorts) and
the [page on the YAIB wiki](https://github.com/rvandewater/YAIB/wiki/Generating-Cohorts). You
will need to get access to the ICU datasets that you want to run by following a credentialing procedure.

## Training

The easiest method to train the models in the paper is to run these commands from the directory root:

```train
wandb sweep --verbose experiments/benchmark_classification.yml
wandb sweep --verbose experiments/benchmark_regression.yml
```

This will create two hyperparameter sweeps for WandB for the classification and regression tasks.
This configuration will train all the models in the paper. You can then run the following command to train the models:

```train
wandb agent <sweep_id>
```

> Tip: You can choose to run each of the configurations on a SLURM cluster instance by `wandb agent --count 1 <sweep_id>`

### Quickstart

If you do not yet have access to the ICU datasets, you can run the following command to train models for the included demo
(MIMIC-III and eICU) task
cohorts:

```train
wandb sweep --verbose experiments/demo_benchmark_classification.yml
wandb sweep --verbose experiments/demo_benchmark_regression.yml
```

Use the command above to create a sweep and run this sweep.

## Evaluation

Evaluation will happen automatically after running this command. Additionally, YAIB will generate extensive log files and
model files. The logging location is specified within the `.yml` files. We recommend using the `wandb` web-interface to inspect
the results (see your personal WandB project.

## Pre-trained Models

You can download pretrained models here: [YAIB-models GitHub repository](https://github.com/rvandewater/YAIB-models).
YAIB has built-in functionality to evaluate these models. See the below command for an example:

```
icu-benchmarks evaluate \
-d demo_data/mortality24/eicu_demo \
-n eicu_demo \
-t BinaryClassification \
-tn Mortality24 \
-m LGBMClassifier \
--generate_cache \
--load_cache \
-s 2222 \
-l ../yaib_logs \
-sn mimic \
--source-dir ../yaib_logs/mimic_demo/Mortality24/LGBMClassifier/2022-12-12T15-24-46/fold_0
```

## 📊Results

The current latest results are shown below. Note that there have been major changes between the classification and regression
task experiments. However, results should be comparable overall. Updated results will be posted in the near future.
![Results](docs/figures/results_yaib.png)

## Contributing

This source code is released under the MIT license, included [here](LICENSE). We do not own any of the datasets used or
included in this repository. The demo datasets have been released under
an [Open Data Commons Open Database License (ODbL)](https://opendatacommons.org/licenses/odbl/1-0/).
Loading