Run nested cross-validation experiment on the Jester dataset, with 
the All Gaussian model (multivariate posterior) wih ARD.
'''

import sys, os
project_location = os.path.dirname(__file__)+"/../../../../"
sys.path.append(project_location)

from BMF_Priors.code.models.bmf_gaussian_gaussian_ard import BMF_Gaussian_Gaussian_ARD
from BMF_Priors.code.cross_validation.nested_matrix_cross_validation import MatrixNestedCrossValidation
from BMF_Priors.data.jester.load_data import load_processed_jester_data_integer


''' Settings BMF model. '''
method = BMF_Gaussian_Gaussian_ARD
R, M = load_processed_jester_data_integer()
hyperparameters = { 'alpha':1., 'beta':1., 'alpha0':1., 'beta0':1. }
train_config = {
    'iterations' : 120,
    'init' : 'random',
}
predict_config = {
    'burn_in' : 100,
    'thinning' : 1,
}


''' Settings nested cross-validation. '''
K_range = [1,2,3,4,5,6,7]
no_folds = 5
no_threads = 5
'''
Run cross-validation experiment on the Jester dataset, with the row-average baseline.
'''

import sys, os
project_location = os.path.dirname(__file__) + "/../../../../"
sys.path.append(project_location)

from BMF_Priors.code.models.baseline_average_row import RowAverage
from BMF_Priors.code.cross_validation.matrix_single_cross_validation import MatrixSingleCrossValidation
from BMF_Priors.data.jester.load_data import load_processed_jester_data_integer
''' Settings BMF model. '''
method = RowAverage
R, M = load_processed_jester_data_integer()
hyperparameters = {}
train_config = {'iterations': 0, 'init': ''}
predict_config = {'burn_in': 0, 'thinning': 0}
parameters = {'K': 0, 'hyperparameters': hyperparameters}
''' Settings nested cross-validation. '''
no_folds = 5
folder_results = './results/baseline_average_row/'
output_file = folder_results + 'results.txt'
''' Run the cross-validation framework. '''
crossval = MatrixSingleCrossValidation(
    method=method,
    R=R,
    M=M,
    K=no_folds,
    parameters=parameters,
    train_config=train_config,
    predict_config=predict_config,