{"id":16272844,"url":"https://github.com/adibender/machine-learning-for-survival-ecml2020","last_synced_at":"2025-03-19T23:31:13.914Z","repository":{"id":74634348,"uuid":"274065056","full_name":"adibender/machine-learning-for-survival-ecml2020","owner":"adibender","description":"Code repository for \"A General Machine Learning Framework for Survival Analysis\" published at ECML 2020","archived":false,"fork":false,"pushed_at":"2020-06-26T05:05:08.000Z","size":22,"stargazers_count":8,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-17T12:21:56.668Z","etag":null,"topics":["gradient-boosting","machine-learning","survival-analysis"],"latest_commit_sha":null,"homepage":"","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adibender.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-22T07:08:40.000Z","updated_at":"2025-03-14T02:02:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"f40b9e17-04e8-4b01-8adc-02dd4a2caeca","html_url":"https://github.com/adibender/machine-learning-for-survival-ecml2020","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adibender%2Fmachine-learning-for-survival-ecml2020","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adibender%2Fmachine-learning-for-survival-ecml2020/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adibender%2Fmachine-learning-for-survival-ecml2020/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adibender%2Fmachine-learning-for-survival-ecml2020/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adibender","download_url":"https://codeload.github.com/adibender/machine-learning-for-survival-ecml2020/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244524897,"owners_count":20466523,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gradient-boosting","machine-learning","survival-analysis"],"created_at":"2024-10-10T18:19:37.251Z","updated_at":"2025-03-19T23:31:13.624Z","avatar_url":"https://github.com/adibender.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\nThis is the code repository for \"A General Machine Learning Framework for Survival Analysis\" published at ECML 2020\n\nThe analyses in the publication were based on a prototype implementation of\nPiece-wise-exponential models (PEMs) using XGBoost in R. This prototype implementation\nis available as an R package **`pem.xgb`** and must be installed to run the\nbenchmarks. The package is available from a [separate repository](https://github.com/adibender/pem.xgb). If you are only interested in how to make XGBoost\nestimate PEMs head over to that repository. Note that the package is a prototype and should not be used in production. In the near future we are planing to integrate the general framework, including GBT (PEM) into **`mlr3`** via **`mlr3proba`** and\n**`mlr3pipelines`**.\n\nIf you experience any problems or need advice on how to run the models, don't\nhesitate to open an issue or contact the first author.\n\n# Benchmark experiments\nTo run the code for the benchmark experiments you first need to install\ntwo packages:\n\n\n```r\n# install pem.xgb\ndevtools::install_github(\"adibender/pem.xgb\") # PEM via XGBoost\ndevtools::install_github(\"adibender/pammtools\", ref = \"ecml\")# Data trafo\n```\n\n## Folder structure\n- Code for benchmarks based on real data sets is contained within folder\n**`benchmark`**\n  - `prep_data.R`: preprocesses the different data sets used for benchmarking\n  - `problems.R`: contains functions that generate an instances during each\n  iteration of the benchmark\n  - `algorithms.R`: contains wrapper functions for the different algorithms that\n  - are compared to each other\n  - `deep_c_index.R`: an R version of the C-index as implemented in the DeepHit package\n  - `calling_deephit.R`: an R version of the DeepHit package wrapped in a random search function\n  - `benchmark-deephit.R`: contains the code to perform the random search for DeepHit \n  on all benchmark data sets\n  - `benchmark.R`: contains the code that will performs the benchmark experiments\n  and is based on package `batchtools`.\n  - `bench-time.R`: benchmark w.r.t. different strategies w.r.t. cut-point selection (scaling experiment)\n  - `benchmark-metabric.R`: benchmarks for `metabric` data set for comparison with DeepHit\n  - `benchmark-pbc-tvf`: benchmark of the PBC data sets (with time-dependent covariates)\n  - `benchmark-mgus2.CR`: benchmark of the MGUS data with competing risks for\n  comparison with DeepHit\n  - `extract-benchmark-instances.R` script that extracts results from benchmark\n  as well as instances to facilitate comparison with DeepHit\n\n- Code for benchmarks based on synthetic data sets is contained within\nfolder **`simulation`**\n  - `sim_funs.R` contains functions that simulate data for right-censored and\n  competing risks data\n  - `tv-effects.R`: contains code to run benchmark w.r.t. to performance in presence of time-varying effects/non-proportional hazards (right-censored and competing\n  risks)\n\n- Code for the aggregation and evaluation of benchmark studies are contained in folder **`paper`**\n  - `results.R`: reads in the results from different experiments, combines results, creates raw tables (manually processed for publication)\n\n## Usage of DeepHit wrapper in R\n\nIn order to use DeepHit in R, clone the [DeepHit repository](https://github.com/chl8856/DeepHit) into the benchmark folder. The `calling_deephit.R` wrapper that calls DeepHit from R needs a suitable Python environment (Python 2.7) and will import the functions `class_DeepHit.py`, `import_data.py` and\n`utils_eval.py`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadibender%2Fmachine-learning-for-survival-ecml2020","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadibender%2Fmachine-learning-for-survival-ecml2020","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadibender%2Fmachine-learning-for-survival-ecml2020/lists"}