python - 使用 Python/Numpy 将数据拟合到多项式曲线

标签 python numpy scipy curve-fitting polynomial-math

我有一些时间序列数据,我正尝试使用 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()

下图以蓝色显示原始曲线。

Graph of two curves.

最佳答案

我不能发表评论,因为我缺乏声誉。如果管理员将此移动到评论中,我会很高兴。我认为问题在于您的数据看起来根本不是多项式的。你最终会得到一个多项式无法实现的平台。

也许试试其他功能。在不了解数据来源的情况下,很难判断哪种函数有用...

关于python - 使用 Python/Numpy 将数据拟合到多项式曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32179017/

相关文章:

python - scipy.optimize.curve_fit 产生无意义的曲线拟合

python - 如何在Python中获得具有多个值的相同名称并获得唯一的结果

python - 在 Python 2.6 中发送 TLS 1.2 请求

python - 值错误 : import data via chunks into pandas. csv_reader()

python - numpy 多重切片 bool 值

大张量上的 numpy n 维智能索引 - 内存效率

python - 用 numpy 统计

scipy 稀疏矩阵到 cvxopt spmatrix?

python - 将 scipy.optimize.broyden2 与接收多个参数的函数一起使用

python - 获取列 "number"和列名称,以便更轻松地在 pandas 的大型 df 中选择多个(并不总是相邻)列