簡體   English   中英

使用Python / Numpy將數據擬合到多項式曲線

[英]Fitting data to a polynomial curve with Python/Numpy

我有一些時間序列數據,試圖使用Numpy中的polyfit函數擬合到曲線。 我已使用date2num函數將datetime x值轉換為數字,並繪制了原始數據的圖表,該數據大約為600個數據點(2014年1月1日-2015年10月8日)。

我正在嘗試得出曲線的表達式,以便可以大致預測未來的數據點,例如超出圖形數據的未來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()

下圖以藍色顯示了原始曲線。

兩條曲線的圖形。

我無法發表評論,因為我缺乏聲譽。 如果管理員將其移至評論,我將很高興。 我認為問題在於您的數據看起來根本不是多項式。 最終,您會遇到一個無法通過多項式實現的平台。

也許嘗試其他功能。 在不了解數據來源的情況下,很難說出哪種功能有用。

嘗試在75的間隔上使用1級函數。 真正使用多項式擬合並不是這種函數所需要的。 看起來最像是2個線段連接在一起,因此在某些點上的線性擬合將為您提供非常好的擬合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM