我有一些函数可以将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优化包,但我不确定从哪里开始。
答案 0 :(得分:0)
如果你的函数输出在它的所有参数中平滑变化(输入的微小变化,输出产生微小的变化),你可以考虑采用渐变方法。
但是,正如您可以看到here (scipy.optimize docs),您还可以选择不需要先验知识的优化方法,例如powell
。您将始终需要的是一组起始值和您的功能。
但请注意:如果您对#function guts
了解不多并且有很多参数(您的arr1-4
具有高维度),那么这需要一段时间......
希望这会有所帮助