Esempio n. 1
0
 def predict(self,
             to_predict,
             targets,
             top_n=5,
             remove_known=True,
             mask=True):
     targets = targets['track_id'].unique()
     test = to_predict['playlist_id'].unique()
     predictions = []
     for i in tqdm(test):
         playlist_index = utils.get_target_index(i, self.playlists)
         current_ratings = self.recommender.urm[playlist_index, :]
         ratings = self.recommender.predict(current_ratings, remove_known)
         if mask:
             not_selected = np.where(~np.in1d(self.tracks, targets))[0]
             ratings[not_selected] = 0
         top_n_indexes = utils.get_n_best_indexes(ratings, top_n)
         top_n_predictions = self.tracks[top_n_indexes]
         predictions.append((i, top_n_predictions))
     self.predictions = predictions