Calculates cross-validated likelihood for a set of parameters by:
Splitting data into training/validation sets
Fitting model on training data
Evaluating likelihood on validation set
Repeating across folds To calculate one NLL per set of parameters, the function uses a pooled errors approach which combines all validation errors into one set, then calculate a single NLL. This approach has two main advantages: 1- It treats all validation errors equally, respecting the underlying error distribution assumption 2- It properly accounts for the total number of validation points
likelihood_function(
distance_matrix,
mapping_max_iter,
relative_epsilon,
N,
k0,
cooling_rate,
c_repulsion,
folds = 20,
num_cores = 1
)
List with:
Mean absolute error on validation data
Negative log likelihood
Distance matrix to fit
Maximum map optimization iterations
Convergence threshold
Number of dimensions
Initial spring constant
Spring constant decay rate
Repulsion constant
Number of CV folds
Number of cores for parallel processing