-
Notifications
You must be signed in to change notification settings - Fork 0
/
main_ActiveLearning.py
89 lines (62 loc) · 3.52 KB
/
main_ActiveLearning.py
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
import random
import numpy as np
from Data import Data
from ActiveLearning import ActiveLearning
import Util
from Visualize import Visualize
#-----------------------------------
if __name__ == "__main__":
random.seed( 12345 )
#-----------------------------------
viz = Visualize()
colors = ['y','c','m','b','g','k','r']
# datasetname = "optdigits"
datasetname = "pendigits"
# datasetname = "CNAE9"
data = Data( source_file = datasetname )
print "nb data points:", len(data.X), "nb features in data:", data.nb_features
#-----------------------------------
'''
opt = {}
opt["random"] = Util.pickleLoad('___AL Results\\optdigits\\random\\_optdigits.random.50.opt-10-margin.txt')
# opt["entropy"] = Util.pickleLoad('___AL Results\\optdigits\\entropy\\_optdigits.entropy.50.opt-10-margin.txt')
# opt["margin"] = Util.pickleLoad('___AL Results\\optdigits\\margin\\_optdigits.margin.50.opt-10-margin.txt')
opt["proba"] = Util.pickleLoad('___AL Results\\optdigits\\proba\\_optdigits.proba.50.opt-10-margin.txt')
# opt["weight"] = Util.pickleLoad('___AL Results\\optdigits\\weight\\_optdigits.weight.50.opt-20-entropy.txt')
opt["etc_"] = Util.pickleLoad('___AL Results\\optdigits\\etc\\_optdigits.etc_.50.opt-20-margin.txt')
opt["etc"] = Util.pickleLoad('___AL Results\\optdigits\\etc\\_optdigits.etc.50.opt-20-margin.txt')
for ic,key in enumerate(opt):
al = opt[key]
print key, "==> color=", colors[ic], "==>", np.mean(al.accuracys[:100]), np.mean(al.accuracys[:200]), np.mean(al.accuracys[:300])
viz.do_plot( [range(300), al.accuracys[:300]], color = colors[ic], marker = '-' )
viz.end_plot( fig = "AL_opt.png" )
print ""
pen = {}
pen["random"] = Util.pickleLoad('___AL Results\\pendigit\\random\\_pendigits.random.50.opt-10-margin.txt')
# pen["entropy"] = Util.pickleLoad('___AL Results\\pendigit\\entropy\\_pendigits.entropy.50.opt-10-margin.txt')
# pen["margin"] = Util.pickleLoad('___AL Results\\pendigit\\margin\\_pendigits.margin.50.opt-10-margin.txt')
pen["proba"] = Util.pickleLoad('___AL Results\\pendigit\\proba\\_pendigits.proba.50.opt-10-margin.txt')
# pen["weight"] = Util.pickleLoad('___AL Results\\pendigit\\weight\\_pendigits.weight.50.opt-20-margin.txt')
pen["etc_"] = Util.pickleLoad('___AL Results\\pendigit\\etc\\_pendigits.etc_.50.opt-20-margin.txt')
pen["etc"] = Util.pickleLoad('___AL Results\\pendigit\\etc\\_pendigits.etc.50.opt-20-margin.txt')
for ic,key in enumerate(pen):
al = pen[key]
print key, "==> color=", colors[ic], "==>", np.mean(al.accuracys[:100]), np.mean(al.accuracys[:200]), np.mean(al.accuracys[:300])
viz.do_plot( [range(300), al.accuracys[:300]], color = colors[ic], marker = '-' )
viz.end_plot( fig = "AL_pen.png" )
print ""
'''
#-----------------------------------
# '''
AL_Method = "intuition" # margin etc, etc_ proba entropy random weight // expectedErrorReduction test intuition
# AL_Method = "margin" # margin etc, etc_ proba entropy random weight // expectedErrorReduction test intuition
AL_Init = 50
filename = datasetname+"."+AL_Method+"."+str(AL_Init)
al = ActiveLearning( data.X[:AL_Init], data.Y[:AL_Init], data.X[AL_Init:AL_Init+200], data.Y[AL_Init:AL_Init+200], data.Tx, data.Ty )
al.train( mtd = AL_Method, backupfile = filename )
filename += ".opt-"+str(al.optimization_limit)+"-"+al.optimization_method+".txt"
Util.pickleSave(filename, al)
al = Util.pickleLoad(filename)
viz = Visualize(); viz.plot( [range(len(al.accuracys)), al.accuracys], fig = filename+".png", color = 'r', marker = '-' )
# '''
#-----------------------------------