我有一些时间序列数据,我正尝试使用 Numpy 中的 polyfit
函数将其拟合到曲线。我已使用 date2num
函数将日期时间 x 值转换为数字,并绘制了原始数据的图表,大约有 600 个数据点 (01-01-2014 - 10-08-2015)。
我正在尝试推导出曲线的表达式,以便我可以大致预测 future 的数据点,例如在接下来的 30 天内超出我的图形数据。然而,我的多项式表达式,当以任何顺序绘制时,都偏离了。我确信我做错了一些明显的错误,但似乎无法破解它。
x = df["dates"]
y= df["brand"]
poly = numpy.polyfit(x, y, 5)
polynomial = numpy.poly1d(poly)
xs = numpy.linspace(x[0], x[-1]+60, len(x)+60)
y_int = polynomial(xs)
plt.plot(x, y)
plt.plot(xs, y_int)
plt.show()
下图以蓝色显示原始曲线。
最佳答案
我不能发表评论,因为我缺乏声誉。如果管理员将此移动到评论中,我会很高兴。我认为问题在于您的数据看起来根本不是多项式的。你最终会得到一个多项式无法实现的平台。
也许试试其他功能。在不了解数据来源的情况下,很难判断哪种函数有用...
关于python - 使用 Python/Numpy 将数据拟合到多项式曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32179017/