Тюнинг rfsr c с нуля и запись в CSV - PullRequest
0 голосов
/ 29 апреля 2020

Мой код:

rm(list = ls(all.names = TRUE)) #will clear all objects includes hidden objects.
library(mlbench)
library(randomForestSRC)
data(Sonar)
t=c()
data_num=c(100,1150)
#core_list=c(1,4,8)
num_trees = c(50, 500)
#p=ncol(trainDF)
features_per_tree = c(1, 6, 10)
depths = c(2, 3, 8)
for(d in 1:length(depths))
    for(k in 1:length(num_trees)){
        for(l in 1:length(features_per_tree)){  
            for(i in 1:length(data_num)){
                a=system.time(model.wsrf <- rfsrc(Class ~ ., data=Sonar[1:data_num[i],],ntree=num_trees[k],mtry=features_per_tree[l],nodesize=d))

                t=append(t,a[2])
            }
        }

    }
}
print(t)
print(model.wsrf)
df=as.data.frame(cbind(data_num,num_trees,features_per_tree,depths,t))
df
ggplot(df, aes(x=data_num, y=t)) + geom_point()

Вывод:

  data_num num_trees features_per_tree depths    t
sys.self         100        50                 1      2 0.00
sys.self.1      1150       500                 6      3 0.03
sys.self.2       100        50                10      8 0.01
sys.self.3      1150       500                 1      2 0.02
sys.self.4       100        50                 6      3 0.01
sys.self.5      1150       500                10      8 0.00
sys.self.6       100        50                 1      2 0.15
sys.self.7      1150       500                 6      3 0.14
sys.self.8       100        50                10      8 0.03
sys.self.9      1150       500                 1      2 0.14
sys.self.10      100        50                 6      3 0.09
sys.self.11     1150       500                10      8 0.16
sys.self.12      100        50                 1      2 0.01
sys.self.13     1150       500                 6      3 0.03
sys.self.14      100        50                10      8 0.02
sys.self.15     1150       500                 1      2 0.02
sys.self.16      100        50                 6      3 0.01
sys.self.17     1150       500                10      8 0.00
sys.self.18      100        50                 1      2 0.10
sys.self.19     1150       500                 6      3 0.18
sys.self.20      100        50                10      8 0.13
sys.self.21     1150       500                 1      2 0.15
sys.self.22      100        50                 6      3 0.11
sys.self.23     1150       500                10      8 0.13
sys.self.24      100        50                 1      2 0.00
sys.self.25     1150       500                 6      3 0.01
sys.self.26      100        50                10      8 0.02
sys.self.27     1150       500                 1      2 0.02
sys.self.28      100        50                 6      3 0.00
sys.self.29     1150       500                10      8 0.00
sys.self.30      100        50                 1      2 0.10
sys.self.31     1150       500                 6      3 0.11
sys.self.32      100        50                10      8 0.16
sys.self.33     1150       500                 1      2 0.33
sys.self.34      100        50                 6      3 0.09
sys.self.35     1150       500                10      8 0.13

Я хотел рассчитать время вычислений для различных значений размера выборки, глубины, количества деревьев, количества объектов каждый разбить вместе с соответствующими ошибками и записать их в файл CSV. Я думаю, мой результат не точен. Я видел несколько повторений. Кроме того, я не мог не добавить ошибку OBB в мою таблицу выше. Мне было интересно, если вы могли бы дать некоторые предложения по улучшению моего кода. Спасибо за ваше время!

...