Exemple #1
0
def test_autoencoder_item_cf(data_model):
    item_prediction, user_prediction = base_cf(data_model.data_matrix)
    item_rmse = rmse(item_prediction, data_model.data_matrix)
    # user_rmse = rmse(user_prediction, data_model.data_matrix)

    auto = denoising_autoencoder_model(item_prediction,
                                       training_epochs=1000,
                                       model_path='./checkpoint_dir_song')
    auto.DAE_model()
    prediction, autoencoder_item_RMSE = auto.evaluate_model()

    # item 推荐
    item_training_dict = generate_top_recommendations(data_model, prediction,
                                                      50)
    item_test_dict = get_test_sample_recommendations(data_model)

    # 评估
    item_ism_avg_recall_list, item_ism_avg_precision_list = calculate_precision_recall(
        data_model, item_training_dict, item_test_dict, top=50)
    redis = MyRedis()
    redis.setList("base_autoencoder__item_cf", item_ism_avg_recall_list,
                  item_ism_avg_precision_list)
    redis.setRmse("base_autoencoder__item_cf_Rmse", autoencoder_item_RMSE)
    plot_precision_recall(item_ism_avg_recall_list,
                          item_ism_avg_precision_list,
                          "base_autoencoder__item_cf")
Exemple #2
0
def test_base_cf(data_model):
    item_prediction, user_prediction = base_cf(data_model.data_matrix)
    item_rmse = rmse(item_prediction, data_model.data_matrix)
    # user_rmse = rmse(user_prediction, data_model.data_matrix)

    # item 推荐
    item_training_dict = generate_top_recommendations(data_model,
                                                      item_prediction, 50)
    item_test_dict = get_test_sample_recommendations(data_model)

    # # user 推荐
    # user_training_dict = generate_top_recommendations(data_model, user_prediction, 50)
    # user_test_dict = get_test_sample_recommendations(data_model)

    # 评估
    item_ism_avg_recall_list, item_ism_avg_precision_list = calculate_precision_recall(
        data_model, item_training_dict, item_test_dict, top=50)
    # user_ism_avg_recall_list, user_ism_avg_precision_list = calculate_precision_recall(data_model, user_training_dict,
    #                                                                                    user_test_dict,
    #                                                                                    top=50)
    redis = MyRedis()
    redis.setList("base_cf_cos_item", item_ism_avg_recall_list,
                  item_ism_avg_precision_list)
    redis.setRmse("base_cf_cos_item_Rmse", item_rmse)
    # redis.setList("base_cf_cos_user", user_ism_avg_recall_list, user_ism_avg_precision_list)
    plot_precision_recall(item_ism_avg_recall_list,
                          item_ism_avg_precision_list, "base_cf_cos_item")
Exemple #3
0
def test_autoencoder_cf(data_model):
    auto = denoising_autoencoder_model(data_model.data_matrix,
                                       training_epochs=1000,
                                       model_path='./checkpoint_dir_song')
    auto.DAE_model()
    prediction, autoencoder_cf_Rmse = auto.evaluate_model()
    #推荐
    training_dict = generate_top_recommendations(data_model, prediction, 50)
    test_dict = get_test_sample_recommendations(data_model)
    item_ism_avg_recall_list, item_ism_avg_precision_list = calculate_precision_recall(
        data_model, training_dict, test_dict, top=50)
    redis = MyRedis()
    redis.setList("autoencoder_cf_model", item_ism_avg_recall_list,
                  item_ism_avg_precision_list)
    redis.setRmse("autoencoder_cf_model_Rmse", autoencoder_cf_Rmse)
    plot_precision_recall(item_ism_avg_recall_list,
                          item_ism_avg_precision_list, "autoencoder_cf_model")
Exemple #4
0
def test_jaccard_cf(data_model):
    # m = data_model(sample_number=4000, test_size=0.4)
    jaccard = jaccard_model(data_model)
    cooccurence_matrix = jaccard.construct_cooccurence_matrix()

    # 推荐
    training_dict = generate_top_recommendations(data_model,
                                                 cooccurence_matrix,
                                                 top=50)
    test_dict = get_test_sample_recommendations(data_model)

    # 评估
    ism_avg_recall_list, ism_avg_precision_list = calculate_precision_recall(
        data_model, training_dict, test_dict, top=50)

    #保存到redis
    redis = MyRedis()
    redis.setList("jaccard_cf_model", ism_avg_recall_list,
                  ism_avg_precision_list)
    plot_precision_recall(ism_avg_recall_list, ism_avg_precision_list,
                          "jaccard_cf_model")
Exemple #5
0
def test_svd_cf(data_model):
    K = 100
    train_matrix = data_model.data_matrix

    urm = csc_matrix(train_matrix, dtype=np.float)
    U, S, Vt = computeSVD(urm, K)
    prediction_matrix = computeEstimatedRatings(data_model, U, S, Vt)
    svd_Rmse = rmse(train_matrix, prediction_matrix)
    # 推荐
    training_dict = generate_top_recommendations(data_model,
                                                 prediction_matrix,
                                                 top=50)
    test_dict = get_test_sample_recommendations(data_model)

    # 评估
    ism_avg_recall_list, ism_avg_precision_list = calculate_precision_recall(
        data_model, training_dict, test_dict, top=50)

    redis = MyRedis()
    redis.setList("svd_cf_model", ism_avg_recall_list, ism_avg_precision_list)
    redis.setRmse("svd_cf_model_Rmse", svd_Rmse)
    plot_precision_recall(ism_avg_recall_list, ism_avg_precision_list,
                          "svd_cf_model")
Exemple #6
0
from evaluation.EvaluationModel import calculate_precision_recall, plot_precision_recall
from jaccard_cf.JaccardModel import jaccard_model
from recommender.RecommenderModel import generate_top_recommendations, get_test_sample_recommendations

m = data_model(sample_number=4000, test_size=0.4)
j = jaccard_model(m)
cooccurence_matrix = j.construct_cooccurence_matrix()

# 推荐
training_dict = generate_top_recommendations(m, cooccurence_matrix, top=50)
test_dict = get_test_sample_recommendations(m)

# 评估
ism_avg_precision_list, ism_avg_recall_list = calculate_precision_recall(
    m, training_dict, test_dict, top=50)
plot_precision_recall(ism_avg_precision_list, ism_avg_recall_list,
                      "item_similarity_model")

# a = data_model(sample_number = 10000)
# a.generate_data_matrix()
# auto = denoising_autoencoder_model(a.data_matrix, training_epochs = 70, model_path='./checkpoint_dir_song')
# auto.DAE_model()
# prediction = auto.evaluate_model()
# print("prediction.shape")
# print(prediction.shape)

## 推荐
# training_dict = generate_top_recommendations(a, prediction,50)
# test_dict = get_test_sample_recommendations(a)

## 评估
# ism_avg_precision_list, ism_avg_recall_list = calculate_precision_recall(a, training_dict, test_dict,top=50)