matplotlib多项式回归(polyfit)的值太高

时间:2018-12-02 20:53:18

标签: python datetime matplotlib graph regression

首先,对不起我的英语。

第二,但是我的帖子的目的是我不了解应用于数据的polyfit方法的结果。

我正在尝试获取一天的下载速度图,所有值(点)都可以,但是当我尝试获取多项式线时,系数很疯狂。

有我的代码:

import matplotlib.dates as pltDates
import numpy as np
import numpy.polynomial.polynomial as poly

dates = pltDates.date2num(timeValues)
polyLineEq = poly.polyfit(dates, downloadValues, 2)
polyLine = np.poly1d(polyLineEq)
plt.plot(xx, polyLine(xx))

其中timeValues是速度捕获的时间列表,而downloadValues是速度捕获的列表。

这里的条目:

  • 下载值:

    [637.7002837917455, 360.3778120551389, 619.5766620821665, 636.9486179554266, 664.3231094306018, 738.2680311720497, 243.8327594142206, 742.9903527743229, 686.7140415927788, 668.3225185514085, 676.523718421761, 649.8826401724951, 672.2717746125593, 538.7263431234095, 753.3713378294058, 741.35418932585, 236.69393515608996, 644.9317040466514]
    
  • 日期:

    [737025.89454078 737025.90627192 737025.90696364 737025.9076631 737025.90835721 737025.90905097 737025.90974066 737025.91043157 737025.91113666 737025.91183039 737025.91252393 737025.91321981 737025.91391471 737025.91460573 737025.91529649 737025.91599611 737025.91668863 737025.91738283]
    

结果为度= 2:

  • polyLineEq:

    -9.52e+07 x + 0.0002777 x + 0.0001752
    
  • polyLine(xx):

    [-5.17110011e+19 -5.17110013e+19 -5.17110014e+19 -5.17110016e+19 -5.17110018e+19 -5.17110020e+19 -5.17110022e+19 -5.17110024e+19 -5.17110026e+19 -5.17110028e+19 -5.17110030e+19 -5.17110031e+19 -5.17110033e+19 -5.17110035e+19 -5.17110037e+19 -5.17110039e+19 -5.17110041e+19 -5.17110043e+19]
    

对于度= 0:

  • polyLineEq:

    606.3
    
  • polyLine(xx):

    [606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286]
    

0度使一条线看起来不错,但它只是一条直线(0度为法线)。

有关信息,我已经尝试过将值取整并除以较小的值但结果相同的值。

我误会什么?

是否可以做我想要的(代表我的下载速度趋势的线)?

非常感谢您的帮助!

祝你有美好的一天;)

答案:我的数据杂乱无章。

0 个答案:

没有答案