forked from jeffwong/imputation
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathbenchmark.R
More file actions
executable file
·52 lines (42 loc) · 2.38 KB
/
benchmark.R
File metadata and controls
executable file
·52 lines (42 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
library(imputation)
library(microbenchmark)
dat_list <- list(x1= matrix(rnorm(300), nrow= 10),
x2= matrix(rnorm(3000), nrow= 100),
x3= matrix(rnorm(30000), nrow= 1000),
x4= matrix(rnorm(300000), nrow= 10000),
x5= matrix(rnorm(3000000), nrow= 100000))
dat_list <- lapply(dat_list, function(l) {l[l>1.25] <- NA; return(l)})
# 01. Non-parallel, no canopies
#------------------------------------------------
(m1 <- microbenchmark(
n10= kNN_impute(x= dat_list[[1]], k=3, q= 4, verbose= FALSE, check_scale= FALSE,
parallel= FALSE),
n100= kNN_impute(x= dat_list[[2]], k=3, q= 4, verbose= FALSE, check_scale= FALSE,
parallel= FALSE),
n1000= kNN_impute(x= dat_list[[3]], k=3, q= 4, verbose= FALSE, check_scale= FALSE,
parallel= FALSE),
n10000= kNN_impute(x= dat_list[[4]], k=3, q= 4, verbose= FALSE, check_scale= FALSE,
parallel= FALSE), times= 20L))
# 02. parallel, no canopies
#------------------------------------------------
(m2 <- microbenchmark(
n10= kNN_impute(x= dat_list[[1]], k=3, q= 4, verbose= FALSE, check_scale= FALSE,
parallel= TRUE, leave_cores= 1),
n100= kNN_impute(x= dat_list[[2]], k=3, q= 4, verbose= FALSE, check_scale= FALSE,
parallel= TRUE, leave_cores= 1),
n1000= kNN_impute(x= dat_list[[3]], k=3, q= 4, verbose= FALSE, check_scale= FALSE,
parallel= TRUE, leave_cores= 1),
n10000= kNN_impute(x= dat_list[[4]], k=3, q= 4, verbose= FALSE, check_scale= FALSE,
parallel= TRUE, leave_cores= 1), times= 20L))
# 03. parallel, canopies vs no-canopies
#------------------------------------------------
(m3 <- microbenchmark(
n10k_no_can= kNN_impute(x= dat_list[[4]], k=3, q= 4, verbose= FALSE, check_scale= FALSE,
parallel= TRUE, leave_cores= 1),
n100k_no_can= kNN_impute(x= dat_list[[5]], k=3, q= 4, verbose= FALSE, check_scale= FALSE,
parallel= TRUE, leave_cores= 1),
n10k_can= kNN_impute(x= dat_list[[4]], k=3, q= 4, verbose= FALSE, check_scale= FALSE,
parallel= TRUE, leave_cores= 1, n_canopies= 100),
n100k_can= kNN_impute(x= dat_list[[5]], k=3, q= 4, verbose= FALSE, check_scale= FALSE,
parallel= TRUE, leave_cores= 1, n_canopies= 1000), times= 10L))
# save.image("knn_timing.Rdata")