为scipy.differential_evolution设置初始参数

时间:2018-07-23 00:38:41

标签: python scipy mathematical-optimization differential-evolution

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

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

1 个答案:

答案 0 :(得分:0)

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. 库的
  3. 最新版本(来自SciPy v1.1.0)允许指定通过init关键字执行的总体初始化类型:

      

    init : str or array-like, optional

         

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

         
        
    • “ latinhypercube”
    •   
    • “随机”
    •   
    • 指定初始人口的数组。数组应具有形状(M, len(x)),其中len(x)是参数的数量。 init在使用前已被裁剪到边界。
    •   
         

    [剪切]

         

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