예제 #1
0
import numpy as np
import eval.ranking as rk
import ml_metrics as metrics
import matplotlib.pyplot as plt
import dal.load_dblp_data as dblp
import eval.evaluator as dblp_eval

filter_zero = True
at_k_mx = 10
at_k_set = range(1, at_k_mx + 1, 1)

user_HIndex = dblp.get_user_HIndex()
user_skill_dict = dblp.get_user_skill_dict(dblp.load_preprocessed_dataset())
foldIDsampleID_strata_dict = dblp.get_foldIDsampleID_stata_dict(
    data=dblp.load_preprocessed_dataset(),
    train_test_indices=dblp.load_train_test_indices(),
    kfold=10)

OKLO = '../output/predictions/O_KL_O_output.csv'
OKLU = '../output/predictions/O_KL_U_output.csv'
OVAEO = '../output/predictions/O_VAE_O_output.csv'
OVAEU = '../output/predictions/O_VAE_U_output.csv'
SKLO = '../output/predictions/S_KL_O_output.csv'
SKLU = '../output/predictions/S_KL_U_output.csv'
SVAEO = '../output/predictions/S_VAE_O_output.csv'
SVAEU = '../output/predictions/S_VAE_U_output.csv'
Sapienza = '../output/predictions/Sapienza_output.csv'
SVDpp = '../output/predictions/SVDpp_output.csv'
RRN = '../output/predictions/RRN_output.csv'
BL2009 = '../output/predictions/BL2009_output.csv'
BL2017 = '../output/predictions/BL2017_output.csv'
    # Arguments
        args (tensor): mean and log of variance of Q(z|X)

    # Returns
        z (tensor): sampled latent vector
    """

    z_mean, z_log_var = args
    batch = K.shape(z_mean)[0]
    dim = K.int_shape(z_mean)[1]
    # by default, random_normal has mean = 0 and std = 1.0
    epsilon = K.random_normal(shape=(batch, dim))
    return z_mean + K.exp(0.5 * z_log_var) * epsilon


train_test_indices = dblp.load_train_test_indices(file_path='../dataset/Train_Test_indices.pkl')


# k_fold Cross Validation
cvscores = []

# Defining evaluation scores holders for train data
r_at_k_all_train = dblp_eval.init_eval_holder(evaluation_k_set)  # all r@k of instances in one fold and one k_evaluation_set
r_at_k_overall_train = dblp_eval.init_eval_holder(evaluation_k_set)  # overall r@k of instances in one fold and one k_evaluation_set
mapk_train = dblp_eval.init_eval_holder(evaluation_k_set)  # all r@k of instances in one fold and one k_evaluation_set

# Defining evaluation scores holders for test data
r_at_k_all = dblp_eval.init_eval_holder(evaluation_k_set)  # all r@k of instances in one fold and one k_evaluation_set
r_at_k_overall = dblp_eval.init_eval_holder(evaluation_k_set)  # overall r@k of instances in one fold and one k_evaluation_set
mapk = dblp_eval.init_eval_holder(evaluation_k_set)  # all r@k of instances in one fold and one k_evaluation_set
ndcg = dblp_eval.init_eval_holder(evaluation_k_set)  # all r@k of instances in one fold and one k_evaluation_set