optuna.samplers.nsgaii.UNDXCrossover

class optuna.samplers.nsgaii.UNDXCrossover(sigma_xi=0.5, sigma_eta=None)[源代码]

NSGAIISampler 使用的单峰正态分布交叉(UNDX)。

使用多元正态分布从三个父代个体生成子代个体。

参数:
  • sigma_xi (float) – 参数化从中抽取 xi 的正态分布。

  • sigma_eta (float | None) – 参数化从中抽取 etas 的正态分布。如果未指定,默认为 0.35 / sqrt(len(search_space))

注意

在 v3.0.0 中作为实验性功能添加。接口可能在未来版本中更改,恕不另行通知。参见 https://github.com/optuna/optuna/releases/tag/v3.0.0

方法

crossover(parents_params, rng, study, ...)

对选定的父代个体进行交叉。

属性

n_parents

crossover(parents_params, rng, study, search_space_bounds)[源代码]

对选定的父代个体进行交叉。

此方法在 sample_relative() 中调用。

参数:
  • parents_params (np.ndarray) – 维度为 num_parents x num_parametersnumpy.ndarray。表示每个父代个体的参数空间。此空间对于数值参数是连续的。

  • rng (np.random.RandomState) – numpy.random.RandomState 的实例。

  • study (Study) – 目标 study 对象。

  • search_space_bounds (np.ndarray) – 维度为 len_search_space x 2numpy.ndarray,表示从转换后的搜索空间构建的数值分布边界。

返回:

一个包含新参数组合的 1 维 numpy.ndarray

返回类型:

np.ndarray