python - 运行时错误 : Optimal parameters not found: Number of calls to function has reached maxfev = 800

标签 python random scipy

我有一个图像,我在其中选择一个随机行并尝试在该行中拟合高斯曲线。我正在使用 scipy.optimize curve_fit 方法 来拟合高斯分布。

随机行的选择是根据数组向量 [10, 20, 40, 60, 100],这意味着在第一次尝试中我在该图像中选择 10 个随机行(因此,10 个高斯拟合),然后,选择了更多行,依此类推。

大多数时候,代码都可以正常工作,但是,有时我会遇到错误(尤其是当行数很大时:大约 60 或更多),提示未找到最佳参数

我在stackoverflow上找了一些类似的帖子,还是没能解决这个问题。似乎这个问题经常出现在 curve_fit 方法 中。

最佳答案

激光束,有机会吗? ;-)

无论如何,问题可能是被选中的行“很难”拟合高斯曲线 scipy's curve_fit功能。我的第一个建议是调试(使用例如 python 的 logging 模块)以查看错误是否仅在特定行上弹出。

我的第二个建议是更改 curve_fit 的初始猜测。从可以进行曲线拟合的行中,您应该能够提取一些参数。在其他行上,高斯均值大致位于相同位置,幅度也不会变化太多。一个好的初始猜测肯定有助于曲线拟合。

如果您想分析这个问题,我肯定会同时进行:尝试找到在 800 次迭代后曲线拟合失败的行。然后通过更改初始猜测来查看曲线拟合是否有效。

关于python - 运行时错误 : Optimal parameters not found: Number of calls to function has reached maxfev = 800,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23672819/

相关文章:

javascript - 如何从 html 的其他部分在 var textarray 中输入文本?

python - Python 中的 interp2d 函数运行时错误

python - scipy 稀疏矩阵,复制参数

python - 通过循环更新字典中的键

python - 如何在matplotlib中的不同图形中使用不同的颜色图显示图像?

c# - 如何从随机池中选择一个号码,然后让号码不能重新选择

java - 如何从枚举生成随机值并将其放入数组中?

Python:二进制掩码中从索引到1的距离

python - 如何使用命令更新 Django 中用户配置文件中的属性?

python - Numpy 索引顺序