Esempio n. 1
0
                        "latent_features": latent_features,
                        "learning_rate": learning_rate,
                        "percent_zeros": percent_zero
                    }
                    results = 0
                    for run in range(params["number_of_runs"]):
                        T = {}
                        new_playlist_tracks = {}
                        for input_playlist_index in range(
                                params["number_of_playlists_to_test"]):
                            input_pid = indexed_pids[input_playlist_index]
                            T[input_pid], new_playlist_tracks[
                                input_pid] = matrix.split_playlist(
                                    input_pid, playlist_dict)
                            matrix.update_input_playlist_tracks(
                                input_playlist_index,
                                new_playlist_tracks[input_pid],
                                track_playlist_matrix, unique_track_dict)

                        factorized_matrix = nn_mf.get_factorized_matrix(
                            mongo_collection, track_playlist_matrix,
                            train_params)

                        for input_playlist_index in range(
                                params["number_of_playlists_to_test"]):
                            input_pid = indexed_pids[input_playlist_index]

                            ranked_tracks = nn_mf.get_ranked_tracks(
                                factorized_matrix, input_playlist_index,
                                indexed_tids)
                            recommended_tracks = helpers.recommend_n_tracks(
                                N, ranked_tracks,
input_playlist_index = 0
for index, pid in enumerate(indexed_pids):
    if pid == input_pid:
        input_playlist_index = index
        break

avg_ndcg = {}
avg_r = {}
for N in range(1, max_N + 1):
    avg_ndcg[N] = 0
    avg_r[N] = 0

num_runs = 10
for run in range(num_runs):
    T, new_playlist_tracks = matrix.split_playlist(input_pid, playlist_dict)
    matrix.update_input_playlist_tracks(input_playlist_index, new_playlist_tracks, track_playlist_matrix, unique_track_dict)

    ranked_tracks = []
    if rec_system == 'item':
        ranked_tracks = item_based.get_ranked_tracks(new_playlist_tracks, indexed_tids, track_playlist_matrix, mongo_collection)
    elif rec_system == 'user':
        ranked_tracks = user_based.get_ranked_tracks(input_pid, input_playlist_index, playlist_dict, unique_track_dict, track_playlist_matrix, mongo_collection)
    elif rec_system == 'mf':
        factorized_matrix = matrix_factorization.get_factorized_matrix(mongo_collection, track_playlist_matrix)
        ranked_tracks = matrix_factorization.get_ranked_tracks(factorized_matrix, input_playlist_index, indexed_tids)
    elif rec_system == 'feature_mf':
        feature_matrix = []
        for tid in unique_track_dict.keys():
            feature_matrix.append([
                unique_track_dict[tid]["danceability"],
                unique_track_dict[tid]["energy"],