最小化函数的成本函数,该函数将多个数组作为Python中的输入

时间:2017-03-29 21:04:46

标签: python scipy mathematical-optimization

我有一些函数可以将4个1-D数组作为输入,并返回单个1-D数组作为输出。

def func(arr1,arr2,arr3,arr4):
    #function guts
    return answer

我试图让这个函数的输出数组与预先知道的正确数组答案相匹配。我已经制作了一个成本函数,可以将函数输出与实际答案进行比较,并给出一个表示它有多接近的值(较低的数字更好)

def cost_function(guess, real_answer):
   #function guts
   return cost      #lower number means guess is close to real answer

我想找到一种方法来找到用于原始输入数组的最佳值,以接近真正的答案。据推测,这将使用SciPy优化包,但我不确定从哪里开始。

1 个答案:

答案 0 :(得分:0)

如果你的函数输出在它的所有参数中平滑变化(输入的微小变化,输出产生微小的变化),你可以考虑采用渐变方法。

但是,正如您可以看到here (scipy.optimize docs),您还可以选择不需要先验知识的优化方法,例如powell。您将始终需要的是一组起始值和您的功能。

但请注意:如果您对#function guts了解不多并且有很多参数(您的arr1-4具有高维度),那么这需要一段时间......

希望这会有所帮助