-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTuneHyperparameters.r
More file actions
60 lines (33 loc) · 1.86 KB
/
TuneHyperparameters.r
File metadata and controls
60 lines (33 loc) · 1.86 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
53
54
55
56
57
58
59
TuneTask = function(openML.task, learner, paramsets, ctrls, result.measures){
library("mlr")
library("OpenML")
saveOMLConfig(apikey = "dce6d7b81d7eb26de554be95c812f0db", overwrite = TRUE)
resample.desc = makeResampleDesc("CV", iters = 10L)
mlr.classif.task = convertOMLTaskToMlr(openML.task)
result = lapply(ctrls, function(ct) {
lrns = makeTuneWrapper(learner=learner, resampling=resample.desc, par.set=paramsets, control=ct, show.info=FALSE)
res = resample(learner=lrns, task=mlr.classif.task$mlr.task, extract=getTuneResult, resampling=resample.desc,
models=TRUE, show.info = FALSE, measures=result.measures)
save(res, file = mlr.classif.task$mlr.task$task.desc$id+class(res)[1])
return(res)
})
return(result)
}
TuneTaskFromData = function(openml.dataset, learner, paramsets, ctrls, result.measures){
library("mlr")
library("OpenML")
saveOMLConfig(apikey = "dce6d7b81d7eb26de554be95c812f0db", overwrite = TRUE)
resample.desc = makeResampleDesc("CV", iters = 10L)
#data.no.missing = openml.dataset$data[complete.cases(openml.dataset$data),]
imp = impute(openml.dataset$data, classes = list(integer = imputeMean(), factor = imputeMode()),
dummy.classes = "integer")
mlr.classif.task = makeClassifTask(data = imp$data, target = openml.dataset$desc$default.target.attribute)
result = lapply(ctrls, function(ct) {
lrns = makeTuneWrapper(learner=learner, resampling=resample.desc, par.set=paramsets, control=ct, show.info=FALSE)
res = resample(learner=lrns, task=mlr.classif.task, extract=getTuneResult, resampling=resample.desc,
models=TRUE, show.info = FALSE, measures=result.measures)
save(res, file = paste(mlr.classif.task$mlr.task$task.desc$id,class(res)[1],sep = ""))
return(res)
})
return(result)
}