【问题标题】:Fitting a curve without knowing function type in python在不知道python中的函数类型的情况下拟合曲线
【发布时间】:2022-06-28 00:56:08
【问题描述】:

这是我的第一篇文章,如果我不清楚,请见谅。

我正在尝试为一组非常嘈杂的数据拟合一条平滑曲线。通过使用 scipy 中的“UnivariateSpline”函数,我几乎设法达到了我的目标,但曲线的拟合似乎无法正确拟合开始。 第一张图片显示了整个图(红色是拟合曲线,绿色是噪声数据)。 First plot

第二张图放大了拟合错误的部分。 Second plot with the fitting error

有没有人知道如何使它与绿色数据更加一致?

我尝试将数据的第一部分(从 x=0 到尖峰,类似指数的曲线)和第二部分从尖峰顶部分开(负指数函数)。但这不起作用。

最后,重要的是始终使 y 的值在尖峰之前随着 x 的增加而增加,而在尖峰之后随着 x 的增加而相反。

感谢所有帮助!

【问题讨论】:

    标签: python interpolation curve-fitting


    【解决方案1】:

    首先,如果数据有噪声并且您不关心拟合噪声,那么插值总是很棘手,因为它专注于拟合所有数据点。不过,一次性分析可能没问题。

    您观察到的问题是由平滑因子和数据中的急剧过渡设置的权衡。您可以尝试将s 减少到小于数据点数的值,但您可能会发现它会开始拟合噪声。

    否则,我建议您尝试安装MLP model。请务必使用activation='tanh',因为这将使函数逼近更平滑。您可能还想增加alpha,它控制权重衰减并进一步帮助保持神经网络功能平滑。最后,设置early_stopping=True 以减少过度拟合噪声的机会。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-19
      • 2021-12-12
      • 2011-11-09
      • 2016-05-18
      • 1970-01-01
      • 2012-10-30
      • 1970-01-01
      相关资源
      最近更新 更多