Я пытался использовать функцию mutlticore пакета rfsr c. Я не вижу каких-либо улучшений в вычислениях для использования большего количества ядер. Я попытался с параметрами (rf.cores = detectCores (), m c .cores = detectCores ()) и пакетом DoSNOW. Я запустил свой код на Windows 10. Я также буду использовать виртуальную машину Linux для запуска своего кода. Ваши предложения будут оценены.
rm(list = ls(all.names = TRUE)) #will clear all objects includes hidden objects.
gc() #free up memrory and report the memory usage.
memory.limit()
memory.limit(size=56000)
#memory.size(max =TRUE)
library(caret)
library(randomForestSRC)
library(randomForest)
library(tictoc)
library(ggRandomForests)
library(parallel)
library(e1071)
library(ggplot2)
library("doSNOW")
detectCores()
options(rf.cores=detectCores(), mc.cores=detectCores())
tic("Time to load the data")
df= read.csv('C:HiggsData/higgsclean.csv', header=T)
toc()
sample_size = round(nrow(df)*.80) # setting what is 70%
index <- sample(seq_len(nrow(df)), size = sample_size)
train <- df[index, ]
test <- df[-index, ]
str(train)
str(test)
dim(train)
dim(test)
warnings()
#################################### Final Run Version###########################
set.seed(228)
#core_list = [1, 4, 8]
num_trees <- list(1, 8,64)
features_per_tree<-list(1,4,6,19)
features_per_tree # In this case, used to simulate different feature widths in dataset
max_depths <-list(1, 10, 100)
max_depths
data_num <-list(100, 1000, 10000, 100000, 654590)
time <- NULL
depth<-NULL
tr<-NULL
Nfeature <-NULL
obb<-NULL
obb<-c()
Nfeature<-c()
time<-c()
tr<-c()
depth<-c()
#registerDoSNOW(makeCluster(4, type="SOCK"))
for(j in num_trees) {
for(f in features_per_tree) {
for(k in max_depths) {
for(i in data_num) { #The counter declaration
#then do something for each iteration
print(i)
#....
#And finish the enviroment.
#Full data
tic()
#higgs.obj <- rfsrc(Label ~ ., data =train[(1:x),])
fast.o <- rfsrc.fast(Label ~ ., data =train[(1:i),],ntree=j, mtry=f, block.size=1,nodedepth=k, forest=TRUE)
errrate <- as.numeric(round( fast.o$err.rate[nrow( fast.o$err.rate), 1], 2))
toc(log = TRUE, quiet = TRUE)
#Put the result in a log
log.txt <- tic.log(format = TRUE)
res <- gsub( " sec elapsed", "", unlist(log.txt))
t=as.numeric(res)
tic.clearlog()
b<-t
s<-j
dp<-k
ft<-f
tr<-c(tr,s)
time<-c(time,b)
depth<-c(depth,dp)
Nfeature <-c(Nfeature,ft)
obb<-c(obb,errrate)
print(fast.o)
}
}
}
}
#stopCluster(makeCluster(4, type="SOCK"))