from misc import * def onefold(inr,inm,tot,clist,folds,resm) #clist=[0.0001, 0.005, 0.01, 0.05, 0.1, 0.5, 1, 10, 100, 1000] #inr="a.rid" #folds=4 #tot=316 #inm="%d.m" #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="t%g.m" % 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) params = "-T -d -m %s -i %s -o %s -c %g" % (inm,inr,resm,optc) train(params)