我有一个类似于python nonlinear least squares fitting的问题,除了我想要优化矢量和一些自由参数。
我已经习惯了scipy.optimize.curve_fit包装函数,但没有为我优化的向量提供函数形式。我需要最小化这个残差的平方和(使用乳胶符号,抱歉它不具有超级可读性):
\ sum_n [f_n - \ sum_N(a_N + b_N + DATA(n,N))]
现在,我的代码只是优化了f_n:
def residuals(fn, a, b, DATA):
return fn - function(a, b, DATA)
def function(aN, bN, DATA):
stuff = np.zeros(max_n)
for N in range(len(DATA)):
stuff += aN[N] + bN[N]*np.array(range(max_n)) + DATA[N]
return stuff
bestfit_f_n = sp.optimize.leastsq(residuals,INITIAL_GUESS_FOR_f_n,args=(aN,bN, DATA), full_output=1)
但我想让a_N和b_N成为可以优化并返回的自由参数。
如果有更好的功能使用,我很高兴听到。现在,这可以线性优化,但我可能会在未来使用非常大的数据集,并且更喜欢非线性优化。