from jyimportlib import importjar, importbin, importdir importbin() importjar("srldb.jar") importjar("tumutils.jar") importjar("weka_fipm.jar") #importdir("../WEKA/bin") from java.util import Vector, HashMap from java.lang import String, Double import jarray from weka.classifiers.trees import J48, DecisionStump, RandomForest from weka.classifiers.rules import OneR from weka.classifiers.functions import SMO from weka.classifiers.trees.j48 import Rule from weka.classifiers.meta import MultiBoostAB, AdaBoostM1, RandomCommittee, Bagging from weka.core import Attribute, FastVector, Instance, Instances class WekaClassifier(object): def __init__(self, numericAttributes=None): self.attName2Domain = {} self.numericAttributes = [] if numericAttributes is not None: self.numericAttributes = list(numericAttributes) self.instances = [] def setDomain(self, attName, domain): domain = set( domain ) #remove duplicates, make sure it is set if things are added later on self.attName2Domain[attName] = domain
from jyimportlib import importjar, importbin, importdir importjar("jahmm.jar") from be.ac.ulg.montefiore.run.jahmm import OpdfGaussian, ObservationReal from java.util import Vector from java.lang import Double class DiscreteDist(object): def __init__(self, varName, values): self.values = values self.varName = varName self.dist = [1.0 for i in xrange(len(values))] def normalize(self): Z = sum(self.dist) self.dist = map(lambda x: x / Z, self.dist) def addExample(self, d): idx = self.values.index(d[self.varName]) self.dist[idx] += 1.0 def finish(self): self.normalize() def density(self, v): return self.dist[self.values.index(v)] class ContDist(object): def __init__(self, varName):
import sys import os from jyimportlib import importjar, importbin importbin() importjar("srldb.jar") importjar("tumutils.jar") importjar("bnj.jar") importjar("bnj_res.jar") importjar("log4j-1.2.9.jar") importjar("ssj.jar") importjar("optimization.jar") importjar("yprolog.jar") from probcog.srl.directed.inference import BLNinfer def infer(network, decls, logic, algorithm, evidence, queries, cwPreds = None, maxSteps = None, args=None): ''' network: the model's fragment network (filename) decls: the model's declarations (filename) logic: the model's logical constraints (filename) algorithm: an algorithm name (use printInferenceAlgorithmList()) evidence: an evidence database (filename) queries: a comma-separated list of queries (predicate names or fully or partially grounded atoms) cwPreds: a comma-separated list of closed-world predicates maxSteps: maximum number of steps to take args: list of additional arguments to pass (see BLNinfer help) returns the BLNinfer object, which can be used to immediately obtain the results via .getResults() and other information ''' a = ['-ia', algorithm, '-x', network, '-b', decls, '-l', logic, '-e', evidence, '-q', queries] if cwPreds is not None: a.extend(["-cw", cwPreds])
from jyimportlib import importjar, importbin, importdir importbin() importjar("srldb.jar") importjar("tumutils.jar") importjar("weka_fipm.jar") #importdir("../WEKA/bin") from java.util import Vector, HashMap from java.lang import String, Double import jarray from weka.classifiers.trees import J48, DecisionStump, RandomForest from weka.classifiers.rules import OneR from weka.classifiers.functions import SMO; from weka.classifiers.trees.j48 import Rule; from weka.classifiers.meta import MultiBoostAB, AdaBoostM1, RandomCommittee, Bagging from weka.core import Attribute, FastVector, Instance, Instances class WekaClassifier(object): def __init__(self, numericAttributes = None): self.attName2Domain = {} self.numericAttributes = [] if numericAttributes is not None: self.numericAttributes = list(numericAttributes) self.instances = [] def setDomain(self, attName, domain): domain = set(domain) #remove duplicates, make sure it is set if things are added later on self.attName2Domain[attName] = domain def setNumericAttribute(self, attName):
import sys import os from jyimportlib import importjar, importbin importbin() importjar("srldb.jar") importjar("tumutils.jar") importjar("bnj.jar") importjar("bnj_res.jar") importjar("log4j-1.2.9.jar") importjar("ssj.jar") importjar("optimization.jar") importjar("yprolog.jar") from probcog.srl.directed.inference import BLNinfer def infer(network, decls, logic, algorithm, evidence, queries, cwPreds=None, maxSteps=None, args=None): ''' network: the model's fragment network (filename) decls: the model's declarations (filename) logic: the model's logical constraints (filename) algorithm: an algorithm name (use printInferenceAlgorithmList()) evidence: an evidence database (filename)