evaluate_candidate#

obsidian.experiment.advanced_design.evaluate_candidate(i, seed_start, n, continuous_params, conditional_subparameters, subparam_mapping, existing_design, continuous_keys, categorical_keys, metrics_to_optimize, n_category_trials=100, corr_threshold=0.01)[source]#

Generate n new samples, append them to existing_design, and compute quality metrics for the combined design.

This function is a top-level callable so it can be pickled by ProcessPoolExecutor.

Parameters:
  • i – Candidate index (added to seed_start to form the random seed).

  • seed_start – Base seed value.

  • n – Number of new samples to generate.

  • continuous_params – Continuous parameter specifications.

  • conditional_subparameters – Conditional subparameter specifications.

  • subparam_mapping – Subparameter mapping dict.

  • existing_design – DataFrame of existing design rows.

  • continuous_keys – List of continuous parameter column names.

  • categorical_keys – List of categorical column names.

  • metrics_to_optimize – List of metric names to compute.

  • n_category_trials – Forwarded to sample_design. Defaults to 100.

  • corr_threshold – Forwarded to sample_design. Defaults to 0.01.

Returns:

Contains 'seed', 'metrics' (dict), 'metric_values'

(list), and 'new_samples' (DataFrame).

Return type:

dict