Exemple #1
0
def train(training_data, set_id):
    EM_result = {}
    Utils.initPlot( len(no_of_experts), set_id)
    for ex in xrange(len(no_of_experts)):
        #generate expert #self.Training_instances = self.N - self.Testing_instanceswrong percentage
        #60% good:40 % bad
        print "For group ", ex
        expert_wrong_percentage = []
        for i in xrange(int(no_of_experts[ex]*expert_bads)):
            #bads
            num = 0.90 #((random()%0.5) + 0.5) % 1.0
            expert_wrong_percentage.append(num)
        for i in xrange(int(no_of_experts[ex]*expert_goods)):
            #goods
            num = 0.20 #random()%0.5
            expert_wrong_percentage.append(num)                        
        crowds_EM = None    
        failed = 0
        iterations = 0
        total_iter = 10
        while iterations < total_iter :
            try:
                crowds_EM = Crowds_EM( training_data, min_class_label, max_class_label, expert_wrong_percentage, verbose= verbose_output, synthetic=synthetic_data)
                crowds_EM.run_EM_missing()
            except Exception,e:
                #Rerunning ...
                import traceback
                print traceback.print_exc()
                failed+=1
                try:
                    crowds_EM = Crowds_EM( training_data, min_class_label, max_class_label, expert_wrong_percentage, verbose= verbose_output, synthetic = synthetic_data)
                    crowds_EM.run_EM_missing()
                except Exception,e:
                    failed+=1
                    pass
                else :
                    EM_result[ex] = crowds_EM.results
                    break
            else :
                EM_result[ex] = crowds_EM.results
                break
            #print "iteration :" , iterations
            iterations+=1