scipy 如何改变曲线拟合/最小二乘步长?

khbbv19g  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(109)

我有一个python函数,它需要一堆(1或2),并返回一个二维数组。我一直在尝试使用scipycurve_fitleast_squares来优化输入参数,以便得到的二维数组与另一个预先制作的二维数组相匹配。我遇到了两种方法都返回我的初始猜测作为收敛解的问题。在扯掉我头上的头发后,我发现问题在于,由于它对初始猜测值的增量太小,无法对函数返回的2D数组产生任何影响(因为阵列中的单元值被量化并且不连续),因此scipy假定其已经达到收敛(或局部最小值)。
我想知道是否有办法绕过这个问题(比如在猜测时强制它使用更大的增量)。谢谢。

1hdlvixo

1hdlvixo1#

我最近遇到了一个非常类似的问题,结果发现这类优化器只对连续可微函数有效。这就是为什么它们会返回初始参数,因为你想拟合的函数不能被微分。在我的例子中,我可以手动使我的拟合函数可微分,首先拟合一个多项式函数,然后将它插入curve_fit优化器。

相关问题