Optimization Results#
Results Vary Between Runs#
Cause: Optimization algorithms are stochastic.
Solution: Set a random seed for reproducibility:
optimizer = HillClimbing(
search_space=space,
n_iter=100,
experiment=objective,
random_state=42,
)
Optimizer Gets Stuck in Local Optima#
Cause: Local search algorithms (like HillClimbing) can get trapped.
Solutions:
Use a global search algorithm:
from hyperactive.opt.gfo import RandomSearch, BayesianOptimizer
Use population-based methods:
from hyperactive.opt.gfo import ParticleSwarmOptimizer, GeneticAlgorithm
Increase exploration in local search:
optimizer = HillClimbing( search_space=space, n_iter=100, experiment=objective, epsilon=0.2, # Larger steps )
Best Score is Very Low or Negative#
Check these:
Objective function errors — Make sure your objective doesn’t crash:
def objective(params): try: score = evaluate(params) return score except Exception as e: print(f"Error: {e}") # Debug return -np.inf
Sign convention — Hyperactive maximizes. Negate if minimizing:
def objective(params): error = compute_error(params) return -error # Negate for minimization