summaryrefslogtreecommitdiff
path: root/main.py
blob: 6b046386cf881e25e2b0735989b2f497b34f52ea (plain)
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
from misc import *

clist=[0.001]

inr="a.rid"

folds=4

tot=316

for ite in range(10):
    print("iter %d" % ite)
    inm="%d.m" % ite
    
    o=ite+1

    step = tot // folds

    ourb=inr

    for i in range(folds-1):
        inra=ourb
        oura="a%d.rid"%i
        ourb="b%d.rid"%i
        params = "-c %d -i %s -a %s -b %s" %(step,inra,oura,ourb)
        split(params)
    
    inra=ourb
    oura="a%d.rid"% (folds-1)
    params = "-s -i %s -a %s"%(inra,oura)
    split(params)
    
    for a in range(folds):
        entries=['0','0']
        for b in range(folds):
            if b!=a:
                tmp=take("a%d.rid"%b)
                entries = merge(tmp,entries)
        rid="b%d.rid" %a
        put(rid,entries)

    optc=1
    bcmc=-1

    for c in clist:
        print(c)
        oum="%d-%g.m" % (o,c)
        
        acmc = -1;
        for a in range(folds):
            rid = "b%d.rid"%a
            params = "-T -d -m %s -i %s -o %s -c %g --iter 1 > /dev/null" % (inm,rid,oum,c)
            train(params)
            params = "-V -C -m %s -i %s -s" %(oum,rid)
            ncmc=cmc(params)
            if acmc==-1:
                acmc=ncmc
            else:
                for b in range(100):
                    acmc[b]+=ncmc[b]
        
        if bcmc==-1:
            optc=c
            bcmc=ncmc
        else:
            for b in range(100):
                if bcmc[b]<ncmc[b]:
                    optc=c
                    bcmc=ncmc
                    break

    
    oum="%d.m"% o
    params = "-T -d -m %s -i %s -o %s -c %g --iter 1 > /dev/null" % (inm,inr,oum,optc)
    train(params)