예제 #1
0
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)   
예제 #2
0
 def __init__(self, weka_model="weka.classifiers.trees.J48",addops=[]):
     self.weka_model=weka_model
     self.addops=addops
     self.tmpdir=TempDirectory()