def main(alpha, beta, URM_train, URM_test):

    ICM = load_icm()

    cf = GeneralEnsemble(URM_train, ICM, 50, epsilon=beta)
    cf.fit(alpha)

    target = pd.read_csv('../../data/target_playlists.csv', index_col=False)
    recommended = cf.recommendALL(target.values)

    playlists = recommended[:, 0]
    recommended = np.delete(recommended, 0, 1)
    i = 0
    res_fin = []
    for j in recommended:
        res = ''
        for k in range(0, len(j)):
            res = res + '{0} '.format(j[k])
        res_fin.append(res)
        i = i + 1
    d = {'playlist_id': playlists, 'track_ids': res_fin}
    df = pd.DataFrame(data=d, index=None)
    df.to_csv("./results/resultsEnsembleAll.csv", index=None)

    return evaluate_csv(URM_test, "./results/resultsEnsembleAll.csv")
def load_data():
    URM_text = np.loadtxt('../data/train.csv', delimiter=',', dtype=int, skiprows=1)
    user_list, item_list = zip(*URM_text)
    rating_list = np.ones(len(user_list))
    URM = sps.csr_matrix((rating_list, (user_list, item_list)))
    urm_train, urm_test =  load_random_urms(0, 999)
    icm = load_icm()
    return { "URM_complete" : URM, "URM_test" : urm_test, "URM_train" : urm_train, "ICM" : icm}
def load_data():
    URM_text = np.loadtxt('../data/train.csv', delimiter=',', dtype=int, skiprows=1)
    user_list, item_list = zip(*URM_text)
    rating_list = np.ones(len(user_list))
    URM = sps.csr_matrix((rating_list, (user_list, item_list)))
    urm_train, urm_test = train_test_holdout(urm_all=URM)
    topPop = create_top_pop_list()
    urm_train.tocoo()
    j = 0
    for i in topPop:
        # factor = (len(topPop)-j)**POPULARITY_SCALING_EXP
        factor = (j)**POPULARITY_SCALING_EXP
        urm_train[:,i].multiply(1/(1+factor))
        j += 1
    urm_train.tocsr()
    icm = load_icm()
    return { "URM_complete" : URM, "URM_test" : urm_test, "URM_train" : urm_train, "ICM" : icm}
def main( write=True):
    URM_text = np.loadtxt('./data/train.csv', delimiter=',', dtype=int, skiprows=1)
    user_list, item_list = zip(*URM_text)
    rating_list = np.ones(len(user_list))
    URM = sps.csr_matrix((rating_list, (user_list, item_list)))
    urm_train, urm_test = load_random_urms()
    icm = load_icm()

    general = GeneralEnsemble(URM, urm_test, icm, recommendation_mode='linComb')
                              # alpha=alpha,
                              # beta=beta,
                              # gamma=gamma,
                              # epsilon=epsilon,
    general.fit(0.001)

    target = pd.read_csv('./data/target_playlists.csv', index_col=False)
    #evaluator_MF = SequentialEvaluator(URM_test_list=urm_test, cutoff_list=[10])
    #print(evaluator_MF.evaluateRecommender(general))

    if write is True:
        recommended = general.recommendALL(target.values)

        playlists = recommended[:, 0]
        recommended = np.delete(recommended, 0, 1)
        i = 0
        res_fin = []
        for j in recommended:
            res = ''
            for k in range(0, len(j)):
                res = res + '{0} '.format(j[k])
            res_fin.append(res)
            i = i + 1
        d = {'playlist_id': playlists, 'track_ids': res_fin}
        df = pd.DataFrame(data=d, index=None)
        df.to_csv("./results/TESTING_GENERAL_ENSEMBLE17_nocf.csv", index=None)
        del general
        return evaluate_csv(urm_test, "./results/TESTING_GENERAL_ENSEMBLE17_nocf.csv")
Beispiel #5
0
from Base.Evaluation.Evaluator import SequentialEvaluator
from SLIM_BPR.Cython.SLIM_BPR_Cython import SLIM_BPR_Cython
from refactored_code.utils import load_random_urms, load_icm

if __name__ == '__main__':
    urm_train, urm_test = load_random_urms()
    icm = load_icm(0.7, 0.3, 0.5)
    slim = SLIM_BPR_Cython(urm_train, positive_threshold=0,
                           symmetric=True).fit(epochs=10,
                                               topK=300,
                                               batch_size=500,
                                               sgd_mode='adagrad',
                                               learning_rate=1e-4)
    evaluator_MF = SequentialEvaluator(urm_test, cutoff_list=[10])
    print(evaluator_MF.evaluateRecommender(slim))
def before():
    model = LightFM(loss='warp')
    train, test = train_test_holdout(load_urm())
    model.fit(train, epochs=3, num_threads=2)

    pid_array = np.arange(test.shape[1], dtype=np.int32)
    a = model.predict(7, pid_array)
    print(a)
    test_auc = auc_score(model, test, train_interactions=train, num_threads=2).mean()
    print(test_auc)


if __name__ == '__main__':
    train, test = train_test_holdout(load_urm())
    recsys = LightFM_Recommender(train, load_icm(), 200)
    target = pd.read_csv('./data/target_playlists.csv', index_col=False)

    recsys.fit(epochs=100)

    recommended = recsys.recommendALL(target.values)

    playlists = recommended[:, 0]
    recommended = np.delete(recommended, 0, 1)
    i = 0
    res_fin = []
    for j in recommended:
        res = ''
        for k in range(0, len(j)):
            res = res + '{0} '.format(j[k])
        res_fin.append(res)