Esempio n. 1
0
    def test_predict(self):
        data = np.array([[0, 0, 5], [3, 0, 5], [3, 1, 2]])
        ratings = csr_matrix(data)
        train = ds.array(x=ratings, block_size=(1, 1))
        als = ALS(tol=0.01, random_state=666, n_f=5, verbose=False)
        als.fit(train)
        predictions = als.predict_user(user_id=0)

        # Check that the ratings for user 0 are similar to user 1 because they
        # share preferences (third movie), thus it is expected that user 0
        # will rate movie 1 similarly to user 1.
        self.assertTrue(2.75 < predictions[0] < 3.25 and
                        predictions[1] < 1 and
                        predictions[2] > 4.5)
Esempio n. 2
0
if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument("--num_subsets", type=int, default=48)
    parser.add_argument("--num_factors", type=int, default=100)
    parser.add_argument("--data_path", type=str, default='./tests/files/')

    args = parser.parse_args()

    num_subsets = args.num_subsets

    data_path = args.data_path
    n_f = args.num_factors

    train, test = load_movielens(data_path=data_path)

    exec_start = time()
    als = ALS(tol=0.0001, n_f=n_f, max_iter=2, verbose=True)

    # Fit using training data to check convergence
    # als.fit(train)

    # Fit using test data to check convergence
    als.fit(train, test)

    exec_end = time()

    print("Ratings for user 0:\n%s" % als.predict_user(0))

    print("Execution time: %.2f" % (exec_end - exec_start))