Skip to content

Instantly share code, notes, and snippets.

View RaphaelS1's full-sized avatar
🐢

Raphael Sonabend RaphaelS1

🐢
View GitHub Profile
set_seed(1234)
library(mlr3)
library(mlr3proba)
## get the `whas` task from mlr3proba
whas <- tsk("whas")
## create our own task from the rats dataset
rats_data <- survival::rats
## convert characters to factors
library(mlr3pipelines)
create_pipeops <- function(learner) {
 po("encode") %>>% po("scale") %>>% po("learner", learner)
}
## apply our function
learners <- lapply(learners, create_pipeops)
library(survivalmodels)
install_pycox(pip = TRUE, install_torch = TRUE)
install_keras(pip = TRUE, install_tensorflow = TRUE)
## load ggplot2 for autoplots
library(ggplot2)
## critical difference diagrams for IGS
autoplot(bma, meas = "graf", type = "cd", ratio = 1/3, p.value = 0.1)
library(mlr3tuning)
create_autotuner <- function(learner) {
 AutoTuner$new(
  learner = learner,
  search_space = search_space,
  resampling = rsmp("holdout"),
  measure = msr("surv.cindex"),
  terminator = trm("evals", n_evals = 2),
  tuner = tnr("random_search")
library(paradox)
search_space <- ps(
 ## p_dbl for numeric valued parameters
 dropout = p_dbl(lower = 0, upper = 1),
 weight_decay = p_dbl(lower = 0, upper = 0.5),
 learning_rate = p_dbl(lower = 0, upper = 1),
 ## p_int for integer valued parameters
 nodes = p_int(lower = 1, upper = 32),
## learners are stored in mlr3extralearners
library(mlr3extralearners)
## load learners
learners <- lrns(
 paste0("surv.", c("coxtime", "deephit", "deepsurv", "loghaz", "pchazard")),
 frac = 0.3, early_stopping = TRUE, epochs = 10, optimizer = "adam"
)
# apply our function
library(mlr3benchmark)
## create mlr3benchmark object
bma <- as.BenchmarkAggr(bm)
## run global Friedman test
bma$friedman_test()
@RaphaelS1
RaphaelS1 / massign.R
Last active March 16, 2022 15:52
Multiple assignment of variable values in R
`%=%` <- function(l, r) {
l <- trimws(strsplit(l, ",", TRUE)[[1]])
if (all(l == "USE.NAMES") || all(l == "*") || all(l == "?")) {
stopifnot(length(names(r)) > 0)
l <- names(r)
} else {
stopifnot(identical(length(l), length(r)))
which <- l == "?"
if (any(which)) {
stopifnot(length(names(r)) > 0)