Python 中的曲线拟合用于外推、回归分析
Curve Fitting in Python for extrapolation, Regression analysis
这个问题是关于 python 中的曲线拟合的。
首先,我想说我不知道要插入scipy库中的"curve_fit"函数的曲线拟合函数;因此,我正在尝试使用 polyfit,如果我对插值感兴趣,这是可以的,但我的目标是预测未来点的值,换句话说就是外推。
我附上了原始信号的屏幕截图,经过平滑处理及其 polyfit 结果。 它具有正确的多边形顺序,但外推时仍然失败。我的结论是 poly fit 在这里不是正确的方法,但我无法估计曲线函数。你有什么想法?
请注意,这不是分布,因为 y 值可能会无限缓慢地下降,甚至低于 0。
我会说该函数看起来像指数高斯函数,但它又不是分布,所以不想那样做。
我最后的想法是将图一分为二,第一个模型当然可以建模为多项式,第二个模型可以建模为指数。 (值与第一个 png 不同,因为它具有不同的信号)。
然后,也许将两者结合起来。你怎么看待这件事?
附件也是这个的截图。
由于许多曲线可以拟合数据并进行不同的推断,因此您需要选择正确的基函数以获得所需的行为。
到目前为止,您已经尝试过多项式,例如,这些趋向于 +- 无穷大,这可能不是您想要的。
我会尝试对 Hermite 多项式或 Laguerre 多项式求和使用 curve_fit。例如,对于拉盖尔多项式,您可以尝试
a + b*exp(-k x) + c*(1-x)*exp(-k x) + d*(x^2 - 4*x + 2)*exp(-k x) + ...
Python 有很多内置的便利功能,参见例如https://docs.scipy.org/doc/numpy-1.13.0/reference/routines.polynomials.laguerre.html
但是请注意,您还应该将 k
拟合到您的数据中,您可以使用 curve_fit
。
这个问题是关于 python 中的曲线拟合的。
首先,我想说我不知道要插入scipy库中的"curve_fit"函数的曲线拟合函数;因此,我正在尝试使用 polyfit,如果我对插值感兴趣,这是可以的,但我的目标是预测未来点的值,换句话说就是外推。
我附上了原始信号的屏幕截图,经过平滑处理及其 polyfit 结果。
请注意,这不是分布,因为 y 值可能会无限缓慢地下降,甚至低于 0。
我会说该函数看起来像指数高斯函数,但它又不是分布,所以不想那样做。
我最后的想法是将图一分为二,第一个模型当然可以建模为多项式,第二个模型可以建模为指数。 (值与第一个 png 不同,因为它具有不同的信号)。
由于许多曲线可以拟合数据并进行不同的推断,因此您需要选择正确的基函数以获得所需的行为。
到目前为止,您已经尝试过多项式,例如,这些趋向于 +- 无穷大,这可能不是您想要的。
我会尝试对 Hermite 多项式或 Laguerre 多项式求和使用 curve_fit。例如,对于拉盖尔多项式,您可以尝试
a + b*exp(-k x) + c*(1-x)*exp(-k x) + d*(x^2 - 4*x + 2)*exp(-k x) + ...
Python 有很多内置的便利功能,参见例如https://docs.scipy.org/doc/numpy-1.13.0/reference/routines.polynomials.laguerre.html
但是请注意,您还应该将 k
拟合到您的数据中,您可以使用 curve_fit
。