예제 #1
0
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]))
예제 #2
0
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))
예제 #3
0
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))
예제 #4
0
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]))
예제 #5
0
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))
예제 #6
0
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))
예제 #7
0
def task_2():
    md = MovieData('data/movies.dat')
    print(md.get_title(1))