- Compare the predicted rating with the actual rating - Output the result - Compute the Mean Absolute Error (MAE) Inputs: method, filename - method: ID of the collaborative filtering method to be used - filename: name of the file containing the list of test cases """ if __name__ == '__main__': filename = 'data/jester-data-1.csv' items = {} users = {} matrix = [] matrix, users, items = parse(filename) f = Filter(matrix, users, items) if len(sys.argv) == 3: method = sys.argv[1] testFile = sys.argv[2] testData = csv.reader(open(testFile, "r")) results = f.execute(method, testData) print_evaluation(f, method, results) elif len(sys.argv) == 2 and sys.argv[1] == 'all': method = "adj_weighted_sum" testData1 = csv.reader(open("data/TestSet01.csv", "r")) testData2 = csv.reader(open("data/TestSet02.csv", "r")) testData3 = csv.reader(open("data/TestSet03.csv", "r")) testData4 = csv.reader(open("data/TestSet04.csv", "r")) results1 = f.execute(method, testData1)
return tests if __name__ == '__main__': if len(sys.argv) != 3: print 'Expected input format: python EvaluateCFList.py <method> <testList>' else: filename = 'data/jester-data-1.csv' items = {} users = {} matrix = [] size = int(sys.argv[2]) matrix, users, items = parse(filename) testData = gen_tests(users, size) f = Filter(matrix, users, items) method = sys.argv[1] print "Starting predictions" if method == 'all': w_results = f.execute('weighted_sum', testData) a_w_results = f.execute('adj_weighted_sum', testData) c_w_results = f.execute('cosine_weighted_sum', testData) c_a_w_results = f.execute('cosine_adj_weighted_sum', testData) print_evaluation(f, "Weighted Sum", w_results) print_evaluation(f, "Adjusted Weighted Sum", a_w_results) print_evaluation(f, "Cosine Weighted Sum", c_w_results) print_evaluation(f, "Cosine Adjusted Weighted Sum", c_a_w_results) else: results = f.execute(method, testData) print_evaluation(f, method, results)
if __name__ == '__main__': if len(sys.argv) != 3: print 'Expected input format: python EvaluateCFList.py <method> <testList>' else: filename = 'data/jester-data-1.csv' items = {} users = {} matrix = [] size = int(sys.argv[2]) matrix, users, items = parse(filename) testData = gen_tests(users, size) f = Filter(matrix, users, items) method = sys.argv[1] print "Starting predictions" if method == 'all': w_results = f.execute('weighted_sum', testData) a_w_results = f.execute('adj_weighted_sum', testData) c_w_results = f.execute('cosine_weighted_sum', testData) c_a_w_results = f.execute('cosine_adj_weighted_sum', testData) print_evaluation(f, "Weighted Sum", w_results) print_evaluation(f, "Adjusted Weighted Sum", a_w_results) print_evaluation(f, "Cosine Weighted Sum", c_w_results) print_evaluation(f, "Cosine Adjusted Weighted Sum", c_a_w_results) else: results = f.execute(method, testData) print_evaluation(f, method, results)