Exemplo n.º 1
0
        if list_of_list_of_list:
            sequences_spm.append([[i] for i in to_append])
        else:
            sequences.append(to_append)
    return sequences_spm


if __name__ == "__main__":

    dr = Datareader(mode='offline', verbose=False, only_load=True)
    ev = Evaluator(dr)

    print("building dict", end=" ")
    test_interactions_df = dr.get_df_test_interactions()
    test_interactions_df.sort_values(['pos'], ascending=True)
    test_playlists_df = dr.get_df_test_playlists()
    test_playlists = test_playlists_df['pid'].as_matrix()

    # A list of list [pos, tid] for each playlist sorted by pos
    test_known_tracks = test_interactions_df.groupby(
        ['pid'])[['pos', 'tid']].apply(lambda x: x.values.tolist())
    for s in test_known_tracks:
        s = s.sort(key=lambda x: x[0])
    print("> done")

    urm_pos = dr.get_position_matrix(position_type='last')

    print("urm pos loaded")

    test_pids_nine = dr.get_test_pids(cat=9)
from personal.Tommaso.Recommenders.top_pop_rec import TopPopRecommender
from utils.datareader import Datareader
from utils.submitter import Submitter
"""
This script shows how to perform correctly a submission.
Basically you have to initialize a Submitter object with csv files 
and then call the method submit which takes in input a numpy array
of recommendations of shape (10.000, 500).
"""

# SUBMITTER
dr = Datareader(mode='online', only_load=True)
sb = Submitter(dr)

# TOP POP
t = TopPopRecommender()
t.fit(dr.get_df_train_interactions(), dr.get_df_test_interactions())
rec_list = t.make_recommendation(dr.get_df_test_playlists()['pid'].as_matrix())

# SUBMISSION
# rec_list is an ordered list of recommendations
# This submission will be rejected due to duplicates occurrences.
sb.submit(recommendation_list=rec_list,
          name='top_pop',
          track='main',
          verify=True,
          gzipped=False)