Advanced Examples#
These examples demonstrate advanced Hyperactive features for more sophisticated optimization workflows.
Warm Starting Optimization#
Start optimization from known good points to accelerate convergence:
from hyperactive.opt.gfo import HillClimbing
# Previous best parameters
warm_start_points = [
{"n_estimators": 100, "max_depth": 10, "min_samples_split": 5},
]
optimizer = HillClimbing(
search_space=search_space,
n_iter=40,
experiment=experiment,
initialize={"warm_start": warm_start_points},
)
best_params = optimizer.solve()
Comparing Optimizers#
Compare different optimization strategies on the same problem:
from hyperactive.opt.gfo import (
HillClimbing,
RandomSearch,
BayesianOptimizer,
ParticleSwarmOptimizer,
)
optimizers = {
"HillClimbing": HillClimbing,
"RandomSearch": RandomSearch,
"Bayesian": BayesianOptimizer,
"ParticleSwarm": ParticleSwarmOptimizer,
}
results = {}
for name, OptClass in optimizers.items():
optimizer = OptClass(
search_space=search_space,
n_iter=50,
experiment=experiment,
random_state=42,
)
best = optimizer.solve()
score, _ = experiment.score(best)
results[name] = {"params": best, "score": score}
print(f"{name}: score={score:.4f}")
Tips for Advanced Usage#
Warm Starting
Use results from previous runs to seed new optimizations
Helpful when iterating on model architecture or features
Combine with local search for fine-tuning around known good points
Optimizer Comparison
Always use the same
random_statefor reproducible comparisonsRun multiple trials to account for optimizer randomness
Consider both final score and convergence speed