我正在使用scipy.optimize.curve_fit
,但我懷疑它正在收斂到局部最小值而不是全局最小值。SciPy全局最小曲線擬合
我試着用模擬退火以下列方式:
def fit(params):
return np.sum((ydata - specf(xdata,*params))**2)
p = scipy.optimize.anneal(fit,[1000,1E-10])
其中specf
是我試圖擬合曲線。 p
的結果顯然比curve_fit
返回的最小值還要差,即使返回值表示達到全局最小值(see anneal)。
我該如何改進結果? SciPy中是否有全局曲線擬合?
感謝您的回答。我意識到全局優化的麻煩,但我猜測(希望)這個輪廓表現相對較好。我使用L2標準來衡量健康是否正確? – Gus 2011-03-22 16:55:01