Skip to content

Commit bdf08df

Browse files
committed
[DOC] rework user-guide + add diagrams
1 parent 89418af commit bdf08df

25 files changed

Lines changed: 1656 additions & 804 deletions

‎docs/source/_snippets/user_guide/introduction.py‎

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,17 @@
1313
X = X_train
1414
y = y_train
1515

16+
# [start:simplest_example]
17+
from hyperactive.opt.gfo import HillClimbing
18+
19+
def score(p):
20+
return -(p["x"] ** 2) # Find x that minimizes x²
21+
22+
opt = HillClimbing({"x": range(-10, 11)}, experiment=score)
23+
best = opt.solve() # {"x": 0}
24+
# [end:simplest_example]
25+
26+
1627
# [start:simple_objective]
1728
def objective(params):
1829
x = params["x"]
@@ -35,6 +46,14 @@ def objective(params):
3546
# [end:sklearn_experiment_intro]
3647

3748

49+
# [start:sklearn_3_lines]
50+
from hyperactive.experiment.integrations import SklearnCvExperiment
51+
from sklearn.ensemble import GradientBoostingClassifier
52+
53+
experiment = SklearnCvExperiment(GradientBoostingClassifier(), X, y, cv=5)
54+
# [end:sklearn_3_lines]
55+
56+
3857
# [start:optimizer_imports]
3958
from hyperactive.opt.gfo import (
4059
HillClimbing, # Local search
@@ -118,6 +137,67 @@ def my_objective(params):
118137
# [end:warm_starting]
119138

120139

140+
# [start:swap_hill_climbing]
141+
from hyperactive.opt.gfo import HillClimbing
142+
143+
optimizer = HillClimbing(search_space, experiment=experiment)
144+
best = optimizer.solve()
145+
# [end:swap_hill_climbing]
146+
147+
148+
# [start:swap_bayesian]
149+
from hyperactive.opt.gfo import BayesianOptimizer
150+
151+
optimizer = BayesianOptimizer(search_space, experiment=experiment)
152+
best = optimizer.solve()
153+
# [end:swap_bayesian]
154+
155+
156+
# [start:swap_genetic]
157+
from hyperactive.opt.gfo import GeneticAlgorithmOptimizer
158+
159+
optimizer = GeneticAlgorithmOptimizer(search_space, experiment=experiment)
160+
best = optimizer.solve()
161+
# [end:swap_genetic]
162+
163+
164+
# [start:complete_example]
165+
import numpy as np
166+
from sklearn.datasets import load_iris
167+
from sklearn.ensemble import RandomForestClassifier
168+
from hyperactive.experiment.integrations import SklearnCvExperiment
169+
from hyperactive.opt.gfo import BayesianOptimizer
170+
171+
# 1. Load your data
172+
X, y = load_iris(return_X_y=True)
173+
174+
# 2. Define the experiment (what to optimize)
175+
experiment = SklearnCvExperiment(
176+
estimator=RandomForestClassifier(),
177+
X=X, y=y, cv=5,
178+
)
179+
180+
# 3. Define the search space (where to search)
181+
search_space = {
182+
"n_estimators": list(range(10, 200, 10)),
183+
"max_depth": [3, 5, 10, 20, None],
184+
"min_samples_split": [2, 5, 10],
185+
}
186+
187+
# 4. Choose an optimizer (how to search)
188+
optimizer = BayesianOptimizer(
189+
search_space=search_space,
190+
n_iter=50,
191+
experiment=experiment,
192+
random_state=42,
193+
)
194+
195+
# 5. Run and get the best parameters
196+
best_params = optimizer.solve()
197+
print(f"Best parameters: {best_params}")
198+
# [end:complete_example]
199+
200+
121201
if __name__ == "__main__":
122202
# The actual test code runs here
123203
print("Introduction snippet file is importable!")

‎docs/source/_static/css/custom.css‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1298,3 +1298,23 @@ html[data-theme="dark"] .segmented-tab-btn.active {
12981298
padding: 0.5rem 0.75rem;
12991299
}
13001300
}
1301+
1302+
/* ============================================
1303+
Theme-Aware Diagrams
1304+
============================================ */
1305+
1306+
/* Container for theme-aware images */
1307+
.theme-aware-diagram {
1308+
width: 100%;
1309+
text-align: center;
1310+
}
1311+
1312+
.theme-aware-diagram img {
1313+
max-width: 100%;
1314+
height: auto;
1315+
}
1316+
1317+
/* Override pydata theme's white background for diagram images */
1318+
html[data-theme="dark"] .theme-aware-diagram img.only-dark {
1319+
background-color: transparent !important;
1320+
}
Lines changed: 1 addition & 0 deletions
Loading

0 commit comments

Comments
 (0)