我正在寻找一种“方法”来获取公式,该公式来自拟合一组数据(3000 点)。我使用的是勒让德多项式,但对于 > 20 点,它给出的值不准确。我可以写chi2测试,但是算法需要大量时间来计算N个参数,而且一开始我不知道函数长什么样,所以需要时间。我在考虑样条曲线......也许......
所以输入是:3000品脱
输出:f(x) = ... 某事
我想有一个适合的公式。在 python 中执行此操作的最佳方法是什么?
让原力与我们同在!尼康
我正在寻找一种“方法”来获取公式,该公式来自拟合一组数据(3000 点)。我使用的是勒让德多项式,但对于 > 20 点,它给出的值不准确。我可以写chi2测试,但是算法需要大量时间来计算N个参数,而且一开始我不知道函数长什么样,所以需要时间。我在考虑样条曲线......也许......
所以输入是:3000品脱
输出:f(x) = ... 某事
我想有一个适合的公式。在 python 中执行此操作的最佳方法是什么?
让原力与我们同在!尼康
多项式拟合怎么样:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.polyfit.html
或其他一些插值方案:
http://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html
如果不了解数据集的更多信息以及需要的拟合程度,很难推荐合适的方法。
除了,样条不会给你一个“公式”,至少除非你有足够的资金来处理所有的分段段。即便如此,它也不会轻易写下来,或者给你任何好看的东西。
一个简单的样条曲线给你一个插值。更糟糕的是,对于 3000 个点,插值样条曲线会给你大致那么多的三次段!你之前确实说过插值。当然,一个如此高阶的插值多项式无论如何都是完整的,所以不要认为你可以回到那里。
如果您只需要一个可以在任何点提供精确插值的工具,并且您真的不需要明确的公式,那么插值样条曲线是一个不错的选择。
或者你真的想要一个近似值?一个可以近似拟合您的数据、消除任何噪音的函数?事实是,很多时候,当不知道自己在做什么的人说“插值”时,他们确实指的是近似,平滑。这当然是可能的,但是关于曲线拟合、经验数据建模的主题有整本书。然后,您的首要目标是选择一个智能模型来表示这些数据。最好的当然是,如果您从对所研究关系的物理理解中对模型进行了一些明智的选择,那么您可以使用非线性回归方案估计该模型的参数,其中有很多可以找到。
如果您没有模型,并且不愿意选择大致具有适当形状的模型,那么您将获得样条形式的通用模型,它可以在回归意义上进行拟合,或者使用高阶多项式模型,用于我很少尊重。
我的观点是,您需要做出一些选择并对模型的选择进行一些研究。
唯一的公式是 3000 阶的多项式。
合身需要有多好?你期望什么类型的公式?
您可以对观察到的点进行采样(随机最好)并将三次样条拟合到该样本(如果重复此过程,您可以创建样条分布)。将样条曲线拟合到 3,000 个点有点多,但是根据样本生成样条曲线分布可以让您了解函数的外观。正如 Josh 上面提到的,http ://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html是开始搜索的好地方。