Loading dependencies
library(breastCancerVDX) library(microbenchmark) library(Biobase) library(dplyr) library(ggplot2) library(gpowerr)
Loading data
data(vdx) expressions <- t(exprs(vdx))
Select level of sparsity, find corresponding rho and run benchmark again. Manually select a value of i for which you want to know rho.
i <- 20000 data <- expressions[, 1:i] a <- auto_gpower(data, k = 2, prop_sparse = 0.5, reg = 'l1') b <- auto_gpower(data, k = 2, prop_sparse = 0.5, reg = 'l0')
Benchmark for gpower()
i <- 200 data <- expressions[, 1:i] df <- print(microbenchmark(gpower(data, k = 2, rho = 0.0488, reg = 'l1'), gpower(data, k = 2, rho = 0.00293, reg = 'l0'), times = 50), unit = "s")[, c("expr", "mean")] df["i"] <- i df["method"] <- c("l1", "l0") result <- df
i <- 2000 data <- expressions[, 1:i] df <- print(microbenchmark(gpower(data, k = 2, rho = 0.04004, reg = 'l1'), gpower(data, k = 2, rho = 0.00171 , reg = 'l0'), times = 20), unit = "s")[, c("expr", "mean")] df["i"] <- i df["method"] <- c("l1", "l0") result <- bind_rows(result, df)
i <- 20000 data <- expressions[, 1:i] df <- print(microbenchmark(gpower(data, k = 2, rho = 0.03418, reg = 'l1'), gpower(data, k = 2, rho = 0.00134, reg = 'l0'), times = 10), unit = "s")[, c("expr", "mean")] df["i"] <- i df["method"] <- c("l1", "l0") result <- bind_rows(result, df)
png("figures/running_times.png", width = 600, height = 370, res=90) ggplot(result, aes(x=i, y=mean, color=method)) + geom_line() + scale_x_log10(breaks = c(200, 2000, 20000)) + scale_y_log10() + labs(x = "Number of variables", y = "Running time (seconds)", title = "Mean running times on the VDX expressions dataset", color = "Method", caption = "Both axis are on a log scale") dev.off()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.