""" ******************************************************* Owner: Ashutosh Jha For: APPCAIR BITS Pilani Goa Campus, Reflexis Systems Function Name: CreateFirstRule Takes the first row from the dataset, target column, column list, maximal set and instance number z as input Creates first rule as c0 and adds name, prediction, row number, input condition and data. ******************************************************* """ from chooseRule import chooseRule from addChosenRule import addChosenRule from Tree import Tree from addCombination import addCombination from addCombinationRules import addCombinationRules def CreateFirstRule(first_row,target_col,col_list,maximal_set,z): #print(first_row) #creates the first node in RDR tree. c0 = Tree() c0.name = "c0" c0.row_no = z if(target_col != None): c0.pred_label = first_row[target_col] rule_list,feature_used,isstr = addCombination(col_list,first_row,target_col) if(rule_list != None): addCombinationRules(c0,rule_list,first_row,isstr) c0.f_used = feature_used else: j=1 for i in range(0,len(col_list)): if(col_list[i] != target_col): if(type(first_row[col_list[i]])== str): maximal_set[j] = [str(col_list[i]) , str(first_row[col_list[i]]), "str"] j = j+1 else: maximal_set[j] = [str(col_list[i]) , str(first_row[col_list[i]]), "nstr"] j = j+1 #print(maximal_set) rule_no = chooseRule(j,maximal_set) #print(maximal_set[rule_no]) #print(noOfNodes) addChosenRule(c0,maximal_set[rule_no]) if(target_col == None): c0.pred_label = input("Since this dataset has no target column, which can be used to indicate conclusion" + " from a rule, kindly assign a class value as conclusion if this rule is satisfied:") c0.f_used.append(maximal_set[rule_no][0]) maximal_set.clear() print("\nThe condition added by you:") print(c0.name,":",c0.inp_cond) return c0