通过s拟合样条曲线

2024-10-01 09:37:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两组数据,我想找出它们之间的相关性。虽然有相当多的分散的数据,但有明显的关系。我目前使用的是numpy polyfit(8阶),但有一些“摇摆”的行(特别是在开头和结尾),这是不合适的。第二,我不认为在直线的开始处拟合得很好(曲线应该稍微陡峭一点)。在

如何通过这些数据点获得最佳拟合“样条曲线”?在

Data scatter with polyfit

我的当前代码:

# fit regression line
regressionLineOrder = 8
regressionLine = np.polyfit(data['x'], data['y'], regressionLineOrder)
p = np.poly1d(regressionLine)

Tags: 数据代码numpydata关系结尾np曲线
1条回答
网友
1楼 · 发布于 2024-10-01 09:37:17

看看@MatthewDrury对Why use regularisation in polynomial regression instead of lowering the degree?的回答。这简直太棒了,而且很到位。最有趣的一点出现在最后,当他开始谈论用一个自然三次样条曲线来拟合一个回归,而不是一个10次的正则多项式。您可以使用^{}的实现来完成非常类似的事情。对于类似的方法,^{}中包含了许多其他样条线方法的类。在

下面是一个简单的例子:

from scipy.interpolate import CubicSpline

cs = CubicSpline(data['x'], data['y'])
x_range = np.arange(x_min, x_max, some_step)
plt.plot(x_range, cs(x_range), label='Cubic Spline')

相关问题 更多 >