Beispiel #1
0
"""
This module describes the most basic usage of Surprise: 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 surprise import SVD
from surprise import Dataset
from surprise.model_selection import cross_validate
import numpy as np

# Load the movielens-100k dataset (download it if needed),
data = Dataset.load_builtin('ml-100k')
sizefinder = data.build_full_trainset()
# We'll use the famous SVD algorithm.
algo = SVD()
s = (sizefinder.n_users + 1, sizefinder.n_items + 1)
weight = np.ones(s)
algo.weightUpdate(weight)
# Run 5-fold cross-validation and print results
cross_validate(algo, data, measures=['RMSE', 'MAE'], cv=5, verbose=True)
Beispiel #2
0
    PredictM = np.zeros(size_mui)
    # Initializing RMSE vector to store RMSE of ABtestset from each model in Adaboost iteration
    ABRMSE = np.zeros(m, dtype=float)

    # Initializing Rating Matrix to store true ratings from T_train
    RatingM = np.zeros(size_ui)
    for uid, iid, rating in trainset.all_ratings():
        RatingM[uid, iid] = rating

    # Starting the main Adaboost loop
    for mm in range(m):

        #Obtain prediction using current W
        ############################################    Adaboost Step 1   #########################################
        # algo = BaselineOnly(bsl_options = bsl_options)
        algo.weightUpdate(W)
        predictions = algo.fit(trainset).test(ABtestset)
        # predictions = algo.test(ABtestset)
        ABRMSE[mm] = accuracy.rmse(predictions)
        for (ruid, riid, _, est, _, _) in predictions:
            # print("predictM loop: ", ruid,riid,est)
            uid = WholeSet.to_inner_uid(ruid)
            iid = WholeSet.to_inner_iid(riid)
            ABPredictM[mm, uid, iid] = est

        ############################################    Adaboost Step 2   #########################################
        # predictions = algo.fit(trainset).test(testset)
        # algo = BaselineOnly(bsl_options = bsl_options)
        # algo.weightUpdate(W)
        predictions = algo.fit(trainset).test(testset)
        # predictions = algo.test(testset)