class WekaModel: def __init__(self, weka_model="weka.classifiers.trees.J48",addops=[]): self.weka_model=weka_model self.addops=addops self.tmpdir=TempDirectory() @staticmethod def load(file_, *args, **kwargs): assert(False) def train(self,data,label,online=False,cross_validation_result=True): assert(online==False) #print "DATA=",data #print "LABEL=",label infile=os.path.join(self.tmpdir.get(),"train.arff") mdlfile=os.path.join(self.tmpdir.get(),"out.mdl") addops=["-r", "-v"] if cross_validation_result==False: addops+=["-no-cv" ] xdata=numpy.hstack([data,label]) numpy2arff(infile,xdata) cmdline=' '.join(["CLASSPATH='%s'"%(WEKACLASSPATH,),JAVA_CMD,self.weka_model, "-t",infile , "-d",mdlfile]+self.addops+addops) print cmdline os.system(cmdline) def test(self,test_data,ground_truth=None): assert(online==False) infile=os.path.join(self.tmpdir.get(),"test.arff") mdlfile=os.path.join(self.tmpdir.get(),"out.mdl") addops=[] numpy2arff(infile,test_data) os.system(' '.join(["CLASSPATH='%s'"%(WEKACLASSPATH,),JAVA_CMD,self.weka_model, "-l",mdlfile, "-T",infile ])) def memory_cost(self, *args, **kwargs): assert(False) def cpu_cost(self, *args, **kwargs): assert(False) def random_improve(self,value,amount=0.5, prec=1): ## TRY TO RANDOMLY CHANGE WITH A NEAREST NEIGHBOR #print "random_improve not yet implemented doing sample instead !!! hist" #return self.sample(value.shape[0]) assert(False)
def __init__(self, weka_model="weka.classifiers.trees.J48",addops=[]): self.weka_model=weka_model self.addops=addops self.tmpdir=TempDirectory()