def train(X, y, set_id):
    EM_result = {}
    #Utils.initPlot( len(no_of_expert_groups), set_id)
    for ex in xrange(len(no_of_expert_groups)):
        #generate expert #self.Training_instances = self.N - self.Testing_instanceswrong percentage
        #60% good:40 % bad
        EM_result[ex] = {}
        for missing_percent in pmissing:    
            print "For group ", ex
            expert_wrong_percentage = []
            for i in xrange(int(no_of_expert_groups[ex]*expert_bads)):
                #bads
                num = 0.50 #((random()%0.5) + 0.5) % 1.0
                expert_wrong_percentage.append(num)
            for i in xrange(int(no_of_expert_groups[ex]*expert_goods)):
                #goods
                num = 0.50 #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( X, y, min_class_label, max_class_label, expert_wrong_percentage, verbose= verbose_output, synthetic=synthetic_data, missing=missing_data, percent_missing=missing_percent)
                    crowds_EM.run_EM_missing()
                except Exception,e:
                    #Rerunning ...
                    import traceback
                    print traceback.print_exc()
                    failed+=1
                    try:
                        crowds_EM = Crowds_EM( X, y, min_class_label, max_class_label, expert_wrong_percentage, verbose= verbose_output, synthetic=synthetic_data, missing=missing_data, percent_missing=missing_percent)
                        crowds_EM.run_EM_missing()
                    except Exception,e:
                        failed+=1
                        pass
                    else :
                        EM_result[ex][missing_percent] = crowds_EM.results
                        break
                else :
                    EM_result[ex][missing_percent] = crowds_EM.results
                    break
                #print "iteration :" , iterations
                iterations+=1
示例#2
0
def train(X, y, set_id):
    EM_result = {}

    for ex in xrange(len(no_of_expert_groups)):
        EM_result[ex] = {} 
        for ex_good in expert_good_bad:
            print "For group ", ex
            expert_wrong_percentage = []
            expert_bads = 1-ex_good
            for i in xrange(int(no_of_expert_groups[ex]*expert_bads)):
                #bads
                num = 0.90 #((random()%0.5) + 0.5) % 1.0 #0.9
                expert_wrong_percentage.append(num)
            expert_goods = ex_good
            for i in xrange(int(no_of_expert_groups[ex]*expert_goods)):
                #goods
                num = 0.00 #random()%0.5 # 0.30
                expert_wrong_percentage.append(num)                        
            crowds_EM = None    
            failed = 0
            iterations = 0
            total_iter = 10
            while iterations < total_iter :
                try:
                    crowds_EM = Crowds_EM( X, y, min_class_label, max_class_label, expert_wrong_percentage, verbose= verbose_output)
                    crowds_EM.run()
                except Exception,e:
                    #Rerunning ...
                    import traceback
                    print traceback.print_exc()
                    failed+=1
                    try:
                        crowds_EM = Crowds_EM( X, y, min_class_label, max_class_label, expert_wrong_percentage, verbose= verbose_output)
                        crowds_EM.run()
                    except Exception,e:
                        failed+=1
                        pass
                    else :
                        crowds_EM.results['']
                        EM_result[ex][ex_good] = crowds_EM.results
                        break
                else :
                    EM_result[ex][ex_good] = crowds_EM.results
                    break
                iterations+=1