diff options
Diffstat (limited to 'cross.py')
-rw-r--r-- | cross.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/cross.py b/cross.py new file mode 100644 index 0000000..5fa9504 --- /dev/null +++ b/cross.py @@ -0,0 +1,68 @@ +from misc import * + +clist=[0.0001, 0.005, 0.01, 0.05, 0.1, 0.5, 1, 10, 100, 1000] + +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=folds + + for c in clist: + print(c) + oum="%d-%g.m" % (o,c) + + acmc = 0; + for a in range(folds): + rid = "b%d.rid"%a + params = "-T -d -m %s -i %s -o %s -c %g --cg_iter 100" % (inm,rid,oum,c) + train(params) + rid="a%d.rid"%a + params = "-V -C -m %s -i %s -s" %(oum,rid) + acmc+=cmc(params) + + print(acmc/folds) + + if bcmc>acmc: + optc=c + bcmc=acmc + + print("train with: %g" % optc) + oum="%d.m"% o + params = "-T -d -m %s -i %s -o %s -c %g" % (inm,inr,oum,optc) + train(params) + |