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
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