# \donttest{
library(survdnn)
library(survival)
set.seed(123)
# Simulate small dataset
n <- 300
x1 <- rnorm(n); x2 <- rbinom(n, 1, 0.5)
time <- rexp(n, rate = 0.1)
status <- rbinom(n, 1, 0.7)
df <- data.frame(time, status, x1, x2)
# Split into training and validation
idx <- sample(seq_len(n), 0.7 * n)
train <- df[idx, ]
valid <- df[-idx, ]
# Define formula and param grid
formula <- Surv(time, status) ~ x1 + x2
param_grid <- list(
hidden = list(c(16, 8), c(32, 16)),
lr = c(1e-3),
activation = c("relu"),
epochs = c(100),
loss = c("cox", "coxtime")
)
# Run grid search
results <- gridsearch_survdnn(
formula = formula,
train = train,
valid = valid,
times = c(10, 20, 30),
metrics = c("cindex", "ibs"),
param_grid = param_grid
)
# View summary
dplyr::group_by(results, hidden, lr, activation, epochs, loss, metric) |>
dplyr::summarise(mean = mean(value, na.rm = TRUE), .groups = "drop")
# }
Run the code above in your browser using DataLab