Beispiel #1
0
    item_ids = list(set(training_items.keys() +
                        test_items.keys()))  #all unique items in the dataset
    hits = 0
    div_metric1 = []
    div_metric2 = []
    recommended_ratings = []
    for u in test_users.keys():
        for i in test_users[u].keys():

            user_items = []
            if u in training_users:
                user_items = training_users[u].keys()
            if u in test_users:
                user_items += test_users[u].keys()

            items_for_cremonesi_validation = testing.choose_some_items(
                item_ids, user_items, i, 40)
            ratings = recommender.get_ratings(u,
                                              items_for_cremonesi_validation)

            recommendations = ranker.topRatings(ratings)
            #recommendations = ranker.maximizeKGreatItems(1, ratings, training_items)
            recommended_ratings += ev.totalOfRatings(u, recommendations)
            hits += ev.hadAHit(recommendations, i)
            div_metric1.append(
                ev.simpleDiversity(recommendations, training_items))
            div_metric2.append(
                ev.diversityEILD(recommendations, training_items))

    test_size = 3191.0
    print 'rec', hits / test_size, 'prec', hits / (test_size * N)
    print 'sim simple', sum(div_metric1) / len(div_metric1)
    #TODO clean this interface!
    item_ids = list(set(training_items.keys() + test_items.keys())) #all unique items in the dataset
    hits = 0
    div_metric1 = []
    div_metric2 = []
    recommended_ratings = []
    for u in test_users.keys():
        for i in test_users[u].keys():

            user_items = []
            if u in training_users:
                user_items = training_users[u].keys()
            if u in test_users:
                user_items += test_users[u].keys()

            items_for_cremonesi_validation = testing.choose_some_items(item_ids, user_items, i, 40)            
            ratings = recommender.get_ratings(u, items_for_cremonesi_validation)

            recommendations = ranker.topRatings(ratings)
            #recommendations = ranker.maximizeKGreatItems(1, ratings, training_items)
            recommended_ratings += ev.totalOfRatings(u, recommendations)
            hits += ev.hadAHit(recommendations, i)
            div_metric1.append(ev.simpleDiversity(recommendations, training_items))
            div_metric2.append(ev.diversityEILD(recommendations, training_items))
             
    test_size = 3191.0
    print 'rec', hits/test_size, 'prec', hits/(test_size * N)
    print 'sim simple', sum(div_metric1)/len(div_metric1)
    print 'div vargas', sum(div_metric2)/len(div_metric2)