def runCode(generator): cpcode = generator.generate(m) cc = CPCompiler() runmodel = cc.compileCode(cpcode,d) runmodel.iterations = 1000 result = runmodel.run() return result
def doLearn(model,data): cm = LinearCPLogicGenerator() cpcode = cm.generate(model) cc = CPCompiler() runmodel = cc.compileCode(cpcode,data) runmodel.iterations = 500 return runmodel.run()
#for i in xrange(i+1,i+1+15): # data.append(ProblogExample(i,"throws(john),breaks")) #for i in xrange(i+1,i+1+10): # data.append(ProblogExample(i,"throws(john)")) #i = 0 #for i in xrange(i+1,i+1+23): # data.append(ProblogExample(i,"throws(mary),throws(john),breaks")) #for i in xrange(i+1,i+1+2): # data.append(ProblogExample(i,"throws(mary),throws(john),problog_not(breaks)")) #for i in xrange(i+1,i+1+15): # data.append(ProblogExample(i,"problog_not(throws_mary),throws(john),breaks")) #for i in xrange(i+1,i+1+10): # data.append(ProblogExample(i,"problog_not(throws_mary),throws(john),problog_not(breaks)")) #To make it work, be sure the proofs only contain positive information #if necessary, marginalize variables data.append(ProblogExample(0,"breaks",weight=0.76)) data.append(ProblogExample(1,"throws(mary)",weight=0.5)) data.append(ProblogExample(2,"throws(john)",weight=1)) data.append(ProblogExample(3,"throws(john),throws(mary),breaks",weight=0.46)) #We give the weights, so don't calculate them cc.weight=False runmodel = cc.compileCode(cpcode,otherexamples=data) runmodel.iterations = 500 result = runmodel.run() g = GnuplotDrawer() g.draw(result) pprint.pprint(result.probs[-1])
from semcplogic.model import ModelBuilder from semcplogic.cpmodel import NonLinearCPLogicGenerator,TableResultInterpreter from semcplogic.cpcompiler import CPCompiler from semcplogic.problogresult import GnuplotDrawer import pprint b = ModelBuilder() b.addNode("a") b.addNode("b",0,0) b.addNode("c",0,0) b.setInfluence("a","b",5) b.setInfluence("a","c",5) m = b.consume() m.nodes["c"].setLevels(["laag","middel","hoog"]) d = m.sample(100) d2 = d.discretise({"a":["laag","hoog"],"b":["laag","hoog"],"c":["laag","middel","hoog"]}) cm = NonLinearCPLogicGenerator() cpcode = cm.generate(m) cc = CPCompiler() runmodel = cc.compileCode(cpcode,d2) runmodel.iterations = 100 result = runmodel.run() g = GnuplotDrawer() g.draw(result) t = TableResultInterpreter() r = t.interprete(m,result.latest()) pprint.pprint(r)