def task_10(): md = MovieData('data/movies.dat') uim = UserItemData('data/user_ratedmovies.dat', min_ratings=1000) rp = ItemBasedPredictor() rec = Recommender(rp) rec.fit(uim) movies = uim.data['movieID'].unique() movies.sort() comparisons = [] for m1 in movies: for m2 in movies: if not m1 < m2: continue sim = rp.similarity(m1, m2) comparisons.append((m1, m2, sim)) print(m1, m2, sim) comparisons.sort(key=itemgetter(2), reverse=True) for result in comparisons[:21]: print("Movie1: {}, Movie2: {}, similarity: {}".format( md.get_title(result[0]), md.get_title(result[1]), result[2]))
def task_7(): md = MovieData('data/movies.dat') uim = UserItemData('data/user_ratedmovies.dat') ap = STDPredictor(100) rec = Recommender(ap) rec.fit(uim) rec_items = rec.recommend(78, n=5, rec_seen=False) for idmovie, val in rec_items: print("Movie: {}, score: {}".format(md.get_title(idmovie), val))
def task_12(): md = MovieData('data/movies.dat') uim = UserItemData('data/user_ratedmovies.dat', min_ratings=1000) rp = ItemBasedPredictor() rec = Recommender(rp) rec.fit(uim) rec_items = rec.recommend(133337, n=15, rec_seen=False) for idmovie, val in rec_items: print("Movie: {}, score: {}".format(md.get_title(idmovie), val))
def task_3(): md = MovieData('data/movies.dat') uim = UserItemData('data/user_ratedmovies.dat') rp = RandomPredictor(1, 5) rp.fit(uim) pred = rp.predict(78) print(type(pred)) items = [1, 3, 20, 50, 100] for item in items: print("Movie: {}, score: {}".format(md.get_title(item), pred[item]))
def task_13(): md = MovieData('data/movies.dat') uim = UserItemData('data/user_ratedmovies.dat', min_ratings=1000) rp = SlopeOnePredictor() rec = Recommender(rp) rec.fit(uim) print("Predictions for 78: ") rec_items = rec.recommend(78, n=15, rec_seen=False) for idmovie, val in rec_items: print("Movie: {}, score: {}".format(md.get_title(idmovie), val))
def task_11(): md = MovieData('data/movies.dat') uim = UserItemData('data/user_ratedmovies.dat', min_ratings=1000) rp = ItemBasedPredictor() rec = Recommender(rp) rec.fit(uim) rec_items = rp.similar_items(7361, 30) print( 'Movies similar to "The Lord of the Rings: The Fellowship of the Ring": ' ) for idmovie, val in rec_items: print("Movie: {}, score: {}, id: {}".format(md.get_title(idmovie), val, idmovie))
def task_2(): md = MovieData('data/movies.dat') print(md.get_title(1))