def main(): # Get the command line args args = sys.argv[1:] # Check to make sure correct number of args were added if len(args) != 3: print "Usage: python main.py <inputFile.ext> <min_support(int)> <outputFile.ext>" sys.exit() # Initialize Data class with the input file data_class = Data(args[0]) # Get the data as 2D array print "Getting Data from file..." start = time.time() data_array = data_class.get_data() end = time.time() print "Done - Took %1.1f seconds" % (end - start) min_support = int(args[1]) a = Apriori(min_support) print "Performing Apriori Algorithm..." start = time.time() results = a.apriori(data_array) end = time.time() print "Done - Took %1.1f seconds" % (end - start) print "Writing to " + args[2] + "..." start = time.time() Output(results, args[2]) end = time.time() print "Done - Took %1.1f seconds" % (end - start)
def buildRules(): level = ['优', '良', '中', '差'] apr = Apriori() db = DatabaseOperations() ans = [] for item in level: data = load_data(item) L, supportData = apr.apriori(data, minSupport=0.5) rules = apr.generateRules(L, supportData, minConf=0.6) rules = list(rules) i = 0 # sort the convidence about rules and print top 3 rules sorted_rules = sorted(rules, key=lambda x: float(x[2]), reverse=True) for rule in sorted_rules: pre_course_num = '' pre_course_name = '' for item in list(list(rule)[0]): # ans = db.search_course(item[:-2]) pre_course_num += item[:-2] + ',' pre_course_name += db.search_course( item[:-2])[0][1] + ' ~ ' + item[-1:] + ',' # pre_name = db.search_course(pre_course_num[:-2]) last_course_num = '' last_course_name = '' for item in list(list(rule)[1]): last_course_num += item[:-2] + ',' last_course_name += db.search_course( item[:-2])[0][1] + ' ~ ' + item[-1:] + ',' # last_name = db.search_course(last_course_num[:-2]) # print(pre_course_num+"-->"+last_course_num+" "+str(list(rule)[2])) ans.append([ pre_course_num, pre_course_name, last_course_num, last_course_name, str(list(rule)[2]) ]) i += 1 if i >= 3: break return ans