Skip to content

Commit 21d9aeb

Browse files
committed
Add a .random_sample function to the optimizer
1 parent d413b76 commit 21d9aeb

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

bayes_opt/bayesian_optimization.py

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -236,10 +236,28 @@ def probe(self, params: ParamsType, lazy: bool = True) -> None:
236236
self._space.keys, self._space.res()[-1], self._space.params_config, self.max
237237
)
238238

239+
def random_sample(self, n: int = 1) -> dict[str, float | NDArray[Float]]:
240+
"""Generate a random sample of parameters from the target space.
241+
242+
Parameters
243+
----------
244+
n: int, optional(default=1)
245+
Number of random samples to generate.
246+
247+
Returns
248+
-------
249+
list of dict
250+
List of randomly sampled parameters.
251+
"""
252+
return [
253+
self._space.array_to_params(self._space.random_sample(random_state=self._random_state))
254+
for _ in range(n)
255+
]
256+
239257
def suggest(self) -> dict[str, float | NDArray[Float]]:
240258
"""Suggest a promising point to probe next."""
241259
if len(self._space) == 0:
242-
return self._space.array_to_params(self._space.random_sample(random_state=self._random_state))
260+
return self.random_sample(1)[0]
243261

244262
# Finding argmax of the acquisition function.
245263
suggestion = self._acquisition_function.suggest(
@@ -259,9 +277,7 @@ def _prime_queue(self, init_points: int) -> None:
259277
if not self._queue and self._space.empty:
260278
init_points = max(init_points, 1)
261279

262-
for _ in range(init_points):
263-
sample = self._space.random_sample(random_state=self._random_state)
264-
self._queue.append(self._space.array_to_params(sample))
280+
self._queue.extend(self.random_sample(init_points))
265281

266282
def maximize(self, init_points: int = 5, n_iter: int = 25) -> None:
267283
r"""

0 commit comments

Comments
 (0)