- 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)
Example #3
0
       - 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)
Example #4
0

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)