import json from collections import defaultdict from surprise import SVD from surprise import Dataset def get_top_n(predictions, n=10): ''' 予測セットに基いて各ユーザにトップN件のレコメンデーションを返す。 ''' # まず各ユーザに予測値をマップする。 top_n = defaultdict(list) for uid, iid, true_r, est, _ in predictions: top_n[uid].append((iid, est)) # そして各ユーザに対して予測値をソートして最も高いk個を返す。 for uid, user_ratings in top_n.items(): user_ratings.sort(key=lambda
