【问题标题】:setting initial parameters for scipy.differential_evolution为 scipy.differential_evolution 设置初始参数
【发布时间】:2018-12-30 09:45:57
【问题描述】:

scipydifferential evolution 优化算法中,如果我有一些好的起点,是否可以设置初始参数?

例如,假设我知道最好的x[0.1, 0.5,0.3],是否可以在scipy.differential_evolution 中添加它

【问题讨论】:

    标签: python scipy mathematical-optimization differential-evolution


    【解决方案1】:

    scipy.optimize.differential_evolution 函数有两个可以使用的参数:

    1. bounds : sequence

      变量的界限。 (min, max)x 中的每个元素,定义 func 的优化参数的下限和上限。 [剪切]

      你可以试试:

      >>> bounds = [(0.0, 0.2), (0.4, 0.6), (0.2, 0.4)]
      >>> result = differential_evolution(my_func, bounds)
      
    2. 最新版本的库(来自 SciPy v1.1.0)允许通过 init 关键字指定执行哪种类型的人口初始化:

      init : str or array-like, optional

      指定执行哪种类型的人口初始化。应该是以下之一:

      • ‘拉丁超立方体’
      • ‘随机’
      • 指定初始种群的数组。数组的形状应为(M, len(x)),其中len(x) 是参数的数量。 init 在使用前被剪裁到边界。

      [剪切]

      可以使用数组来指定人口子集,例如,在已知存在解的位置创建一组紧密的初始猜测,从而减少收敛时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      相关资源
      最近更新 更多