def test_SVD_parameters(u1_ml100k, pkf): """Ensure that all parameters are taken into account.""" # The baseline against which to compare. algo = SVD(n_factors=1, n_epochs=1, random_state=1) rmse_default = cross_validate(algo, u1_ml100k, ['rmse'], pkf)['test_rmse'] # n_factors algo = SVD(n_factors=2, n_epochs=1, random_state=1) rmse_factors = cross_validate(algo, u1_ml100k, ['rmse'], pkf)['test_rmse'] assert rmse_default != rmse_factors # n_epochs algo = SVD(n_factors=1, n_epochs=2, random_state=1) rmse_n_epochs = cross_validate(algo, u1_ml100k, ['rmse'], pkf)['test_rmse'] assert rmse_default != rmse_n_epochs # biased algo = SVD(n_factors=1, n_epochs=1, biased=False, random_state=1) rmse_biased = cross_validate(algo, u1_ml100k, ['rmse'], pkf)['test_rmse'] assert rmse_default != rmse_biased # lr_all algo = SVD(n_factors=1, n_epochs=1, lr_all=5, random_state=1) rmse_lr_all = cross_validate(algo, u1_ml100k, ['rmse'], pkf)['test_rmse'] assert rmse_default != rmse_lr_all # reg_all algo = SVD(n_factors=1, n_epochs=1, reg_all=5, random_state=1) rmse_reg_all = cross_validate(algo, u1_ml100k, ['rmse'], pkf)['test_rmse'] assert rmse_default != rmse_reg_all # lr_bu algo = SVD(n_factors=1, n_epochs=1, lr_bu=5, random_state=1) rmse_lr_bu = cross_validate(algo, u1_ml100k, ['rmse'], pkf)['test_rmse'] assert rmse_default != rmse_lr_bu # lr_bi algo = SVD(n_factors=1, n_epochs=1, lr_bi=5, random_state=1) rmse_lr_bi = cross_validate(algo, u1_ml100k, ['rmse'], pkf)['test_rmse'] assert rmse_default != rmse_lr_bi # lr_pu algo = SVD(n_factors=1, n_epochs=1, lr_pu=5, random_state=1) rmse_lr_pu = cross_validate(algo, u1_ml100k, ['rmse'], pkf)['test_rmse'] assert rmse_default != rmse_lr_pu # lr_qi algo = SVD(n_factors=1, n_epochs=1, lr_qi=5, random_state=1) rmse_lr_qi = cross_validate(algo, u1_ml100k, ['rmse'], pkf)['test_rmse'] assert rmse_default != rmse_lr_qi # reg_bu algo = SVD(n_factors=1, n_epochs=1, reg_bu=5, random_state=1) rmse_reg_bu = cross_validate(algo, u1_ml100k, ['rmse'], pkf)['test_rmse'] assert rmse_default != rmse_reg_bu # reg_bi algo = SVD(n_factors=1, n_epochs=1, reg_bi=5, random_state=1) rmse_reg_bi = cross_validate(algo, u1_ml100k, ['rmse'], pkf)['test_rmse'] assert rmse_default != rmse_reg_bi # reg_pu algo = SVD(n_factors=1, n_epochs=1, reg_pu=5, random_state=1) rmse_reg_pu = cross_validate(algo, u1_ml100k, ['rmse'], pkf)['test_rmse'] assert rmse_default != rmse_reg_pu # reg_qi algo = SVD(n_factors=1, n_epochs=1, reg_qi=5, random_state=1) rmse_reg_qi = cross_validate(algo, u1_ml100k, ['rmse'], pkf)['test_rmse'] assert rmse_default != rmse_reg_qi
""" This module describes the most basic usage of Amaze: you define a prediction algorithm, (down)load a dataset and run a cross-validation procedure. """ from __future__ import (absolute_import, division, print_function, unicode_literals) from amaze import SVD from amaze import Dataset from amaze.model_selection import cross_validate # Load the movielens-100k dataset (download it if needed), data = Dataset.load_builtin('ml-100k') # We'll use the famous SVD algorithm. algo = SVD() # Run 5-fold cross-validation and print results cross_validate(algo, data, measures=['RMSE', 'MAE'], cv=5, verbose=True)
""" This module describes how to use the train_test_split() function. """ from __future__ import (absolute_import, division, print_function, unicode_literals) from amaze import SVD from amaze import Dataset from amaze import accuracy from amaze.model_selection import train_test_split # Load the movielens-100k dataset (download it if needed), data = Dataset.load_builtin('ml-100k') # sample random trainset and testset # test set is made of 25% of the ratings. trainset, testset = train_test_split(data, test_size=.25) # We'll use the famous SVD algorithm. algo = SVD() # Train the algorithm on the trainset, and predict ratings for the testset algo.fit(trainset) predictions = algo.test(testset) # Then compute RMSE accuracy.rmse(predictions)
""" This module descibes how to test the performances of an algorithm on the trainset. """ from __future__ import (absolute_import, division, print_function, unicode_literals) from amaze import Dataset from amaze import SVD from amaze import accuracy from amaze.model_selection import KFold data = Dataset.load_builtin('ml-100k') algo = SVD() trainset = data.build_full_trainset() algo.fit(trainset) testset = trainset.build_testset() predictions = algo.test(testset) # RMSE should be low as we are biased accuracy.rmse(predictions, verbose=True) # ~ 0.68 (which is low) # We can also do this during a cross-validation procedure! print('CV procedure:') kf = KFold(n_splits=3) for i, (trainset_cv, testset_cv) in enumerate(kf.split(data)): print('fold number', i + 1)