def LoadMovieLensData(): ml = MovieLens() print("Loading movie ratings...") data = ml.loadMovieLensLatestSmall() print("\nComputing movie popularity ranks so we can measure novelty later...") rankings = ml.getPopularityRanks() return ml, data, rankings
""" Created on Wed May 9 10:10:04 2018 @author: Frank """ from CollaborativeFiltering.MovieLens import MovieLens from surprise import KNNBasic import heapq from collections import defaultdict from operator import itemgetter testSubject = '85' k = 10 ml = MovieLens() data = ml.loadMovieLensLatestSmall() trainSet = data.build_full_trainset() sim_options = {'name': 'cosine', 'user_based': False} model = KNNBasic(sim_options=sim_options) model.fit(trainSet) simsMatrix = model.compute_similarities() testUserInnerID = trainSet.to_inner_uid(testSubject) # Get the top K items we rated testUserRatings = trainSet.ur[testUserInnerID] # (item, rating) kNeighbors = heapq.nlargest(k, testUserRatings, key=lambda t: t[1])