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)