Machine learning 使用scipy(Python)将样条曲线拟合到具有重复x的数据

Machine learning 使用scipy(Python)将样条曲线拟合到具有重复x的数据,machine-learning,regression,interpolation,curve-fitting,spline,Machine Learning,Regression,Interpolation,Curve Fitting,Spline,我正在尝试使用python中“scipy”包中的“interp1d”函数,在有5700个数据样本(具有重复的x值,即x:水平轴)的数据上拟合样条曲线。我尝试了低阶样条曲线(k=1)和二次样条曲线(k=2),三次样条曲线(k=3)。 在我的数据上看到“样条曲线”的奇怪反应,我感到震惊。虽然“k=1”的样条曲线有一定的道理,但却荒谬地拟合过度(二次和三次样条曲线表现得太差)。在我的第一次试验中,我使用多项式拟合数据,结果令人鼓舞。 我原以为样条拟合的结果会比多项式拟合的结果好。。 请告诉我,我错在哪

我正在尝试使用python中“scipy”包中的“interp1d”函数,在有5700个数据样本(具有重复的x值,即x:水平轴)的数据上拟合样条曲线。我尝试了低阶样条曲线(k=1)和二次样条曲线(k=2),三次样条曲线(k=3)。 在我的数据上看到“样条曲线”的奇怪反应,我感到震惊。虽然“k=1”的样条曲线有一定的道理,但却荒谬地拟合过度(二次和三次样条曲线表现得太差)。在我的第一次试验中,我使用多项式拟合数据,结果令人鼓舞。 我原以为样条拟合的结果会比多项式拟合的结果好。。
请告诉我,我错在哪里?

如果数据集的每个X值都有单独的唯一值点,则每个数据点的有效权重为1.0。但是,如果该数据集中的单个数据点的有效权重为2.0,则该数据集中的单个数据点将加倍或复制

如果一个数据集中的所有数据点复制一次,则每个点的有效权重均为2.0,也就是说,所有数据点的权重都相同


如果此数据集中的某些数据点具有唯一的X值,并且某些数据点多次出现,则一种方法是对“重复”数据点的Y值求平均值,以便每个点的有效权重再次为1.0。这有时可以在我描述的特定情况下使用。

谢谢James,我用它们的平均值删除了重复项。现在k=1上的样条曲线与k=2上的样条曲线与k=3上的样条曲线相同。我是否应该期望“二次”、“三次”样条曲线的性能优于“线性”样条曲线?或者还有其他问题?我建议做一些简单的测试,很容易编程。提取一个较小的数据集,其中包含最小值(x)、最大值(x)、平均值(x)以及其他几个点,这些点应按预期工作。然后每100个数据点尝试一个数据集,然后每10个数据点尝试一个数据集,然后每其他数据点尝试一个数据集。分析旨在确定数据点数量对结果的影响。这应该花费很少的时间来执行,并且应该是有用的。通过查看您的图形,我怀疑样条曲线工作正常,并且平滑了数据中的噪声。