-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path00.main.R
141 lines (111 loc) · 3.26 KB
/
00.main.R
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
source("00.includes.R")
conf.seed = 1
conf.nb.cores = 2
conf.nb.cv = 2
conf.nb.cv.reps = 5
conf.fss = "iamb.sp-mi.pr0.a0.0001" # "fdr.iamb.mi.pr0.a0.0001"
conf.labels.ci = "ci.sp-mi.pr0.a0.0001" # "ci.sp-mi.pr0.a0.0001"
conf.base.learner = "rf"
conf.plot = "png" # c("png", "eps")
conf.dbs = c(NULL
,"emotions"
,"image"
,"scene"
# ,"yeast"
# ,"slashdot"
# ,"genbase"
# ,"medical"
# ,"enron"
# ,"bibtex"
# ,"corel5k"
)
conf.dbs.x2 = c(NULL
,"emotions"
,"image"
,"scene"
# ,"yeast"
# ,"slashdot"
# ,"genbase"
# ,"medical"
# ,"enron"
# ,"bibtex"
# ,"corel5k"
)
if(length(conf.dbs.x2) > 0) {
conf.dbs = c(conf.dbs, paste(conf.dbs.x2, "2", sep=""), NULL)
}
stopifnot(all(conf.fss %in% names(conf.fss.methods)))
stopifnot(all(conf.labels.ci %in% names(conf.labels.ci.methods)))
conf.log = TRUE
if (conf.log) {
t = format(Sys.time(), "%Y%m%d_%H%M%S")
log.file = sprintf("%s.log", t)
log.mutex = sprintf("mlc-benchmark.main.%s", t)
}
conf.meta.learners = rbind(
NULL
,data.frame(
desc = "BR",
meta = "br",
learner = conf.base.learner,
fss.method = NA,
ci.method = NA,
stringsAsFactors = FALSE)
,data.frame(
desc = "LP",
meta = "lp",
learner = conf.base.learner,
fss.method = NA,
ci.method = NA,
stringsAsFactors = FALSE)
,data.frame(
desc = sprintf("ILF-OR %s - %s", conf.fss, conf.labels.ci),
meta = "ilf-or",
learner = conf.base.learner,
fss.method = conf.fss,
ci.method = conf.labels.ci,
stringsAsFactors = FALSE)
,data.frame(
desc = sprintf("ILF-AND %s - %s", conf.fss, conf.labels.ci),
meta = "ilf-and",
learner = conf.base.learner,
fss.method = conf.fss,
ci.method = conf.labels.ci,
stringsAsFactors = FALSE)
)
write.log(paste("conf.dbs:", paste(conf.dbs, collapse=" ")), ts=FALSE)
write.log(paste("conf.fss:", paste(conf.fss, collapse=" ")), ts=FALSE)
write.log(paste("conf.labels.ci:", paste(conf.labels.ci, collapse=" ")), ts=FALSE)
write.log(paste("conf.base.learner:", conf.base.learner), ts=FALSE)
write.log(paste("conf.seed:", conf.seed), ts=FALSE)
write.log(paste("conf.nb.cores:", conf.nb.cores), ts=FALSE)
write.log(paste("conf.nb.cv:", conf.nb.cv), ts=FALSE)
write.log(paste("conf.nb.cv.reps:", conf.nb.cv.reps), ts=FALSE)
write.log("", ts=FALSE)
write.log("EXTRACT.DATA")
source("01.data.extract.R")
write.log("EXTRACT.MBS.IN.X")
source("02.extract.mbs.in.x.R")
write.log("EXTRACT.ILF")
source("03.extract.ilf.R")
write.log("LEARN.MODELS")
source("04.learn.models.R")
write.log("MAKE.RESULTS")
source("05.results.R")
load("results.rda")
# Hamming loss
hloss = aggregate(1 - results[, "acc"], by = results[, c("meta", "db"), drop=F], FUN = mean)
array(hloss$x,
dim = c(nlevels(hloss$meta), nlevels(hloss$db)),
dimnames = lapply(hloss[, c("meta", "db")], levels))
# Subset 0-1 loss
hloss = aggregate(1 - results[, "gacc"], by = results[, c("meta", "db"), drop=F], FUN = mean)
array(hloss$x,
dim = c(nlevels(hloss$meta), nlevels(hloss$db)),
dimnames = lapply(hloss[, c("meta", "db")], levels))
write.log("PLOT.ILF.GRAPH")
source("11.plot.ilf.graph.R")
write.log("PLOT.LABELS.MB.IN.X.SIZE.DIST")
source("12.plot.labels.mb.in.x.size.dist.R")
write.log("PLOT.LABELS.LF.SIZE.DIST")
source("13.plot.labels.lf.size.dist.R")