def test_unnormalized(self): u = 3712 expected = [(641,5.000), (603,4.856), (105,4.739)] R = user_based_knn(self.model, 5, [self.data.new_user_idx(u)], range(self.data.num_items()), pearson, promote_users = False) recs = top_ns([R],3, keep_order = True) self.assertTrue(','.join(['%d,%.3f' % (self.data.old_item_idx(a),b) for (a,b) in recs[0]]) == ','.join(['%d,%.3f' % a for a in expected]))
def test(self): n = 5 input = np.matrix([10, 1, 9, 2, 8, 3, 7, 4, 6, 5]) output = np.array([(0, 10), (2, 9), (4, 8), (6, 7), (8, 6)]) self.assertTrue(np.array_equal(top_n(input, n), output)) self.assertTrue( np.array_equal(top_ns([ input, ] * 3, n), [ output, ] * 3))
def test_unnormalized(self): u = 3712 expected = [(641, 5.000), (603, 4.856), (105, 4.739)] R = user_based_knn(self.model, 5, [self.data.new_user_idx(u)], range(self.data.num_items()), pearson, promote_users=False) recs = top_ns([R], 3, keep_order=True) self.assertTrue(','.join( ['%d,%.3f' % (self.data.old_item_idx(a), b) for ( a, b) in recs[0]]) == ','.join(['%d,%.3f' % a for a in expected]))
n = 3 part_1_file = "part_1.csv" part_2_file = "part_2.csv" # part 1 data = DataIO() data.load(ratings_file) model = UserModel(normalize=False) model.build(data) given_users = data.translate_users(given_users) given_items = range(data.num_items()) R = user_based_knn(model, NN, given_users, given_items, pearson, promote_users=False) recs = top_ns(R, n, keep_order=True) file = open(part_1_file, "w") file.write("\n".join(["%d %.3f" % (data.old_item_idx(i), s) for u in recs for (i, s) in u])) file.close() # part 2 R = user_based_knn( model, NN, given_users, given_items, pearson, promote_users=False, exclude_seen=False, normalize=True ) recs = top_ns(R, n, keep_order=True) file = open(part_2_file, "w") file.write("\n".join(["%d %.3f" % (data.old_item_idx(i), s) for u in recs for (i, s) in u])) file.close()
def test(self): n = 5 input = np.matrix([10,1,9,2,8,3,7,4,6,5]) output = np.array([(0,10),(2,9),(4,8),(6,7),(8,6)]) self.assertTrue(np.array_equal(top_n(input, n), output)) self.assertTrue(np.array_equal(top_ns([input,]*3, n), [output,]*3))
data = DataIO() data.load(ratings_file) model = UserModel(normalize=False) model.build(data) given_users = data.translate_users(given_users) given_items = range(data.num_items()) R = user_based_knn(model, NN, given_users, given_items, pearson, promote_users=False) recs = top_ns(R, n, keep_order=True) file = open(part_1_file, 'w') file.write('\n'.join( ['%d %.3f' % (data.old_item_idx(i), s) for u in recs for (i, s) in u])) file.close() # part 2 R = user_based_knn(model, NN, given_users, given_items, pearson, promote_users=False, exclude_seen=False,