【发布时间】:2019-12-29 20:21:49
【问题描述】:
您好,我正在尝试使用 python FbProphet 模型生成时间序列预测模型。我在实施过程中遇到以下错误。以下是我收到的错误。
----------------------------------- ---------------------------- TypeError Traceback(最近一次调用 最后)在() 36 f14.set_figheight(5) 37 f14.set_figwidth(15) ---> 38 fig = model_prop.plot(forecast, ax=ax14)
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\fbprophet\forecaster.py 在情节(自我,fcst,ax,不确定性,plot_cap,xlabel,ylabel)1520 返回图(1521 m=self,fcst=fcst,ax=ax, 不确定性=不确定性, -> 1522 plot_cap=plot_cap,xlabel=xlabel,ylabel=ylabel,1523)1524
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\fbprophet\plot.py 在 绘图(m,fcst,ax,不确定性,plot_cap,xlabel,ylabel,figsize) 68 无花果 = ax.get_figure() 69 fcst_t = fcst['ds'].dt.to_pydatetime() ---> 70 ax.plot(m.history['ds'].dt.to_pydatetime(), m.history['y'], 'k.') 71 ax.plot(fcst_t, fcst['yhat'], ls='-', c='#0072B2') 72 如果 fcst 和 plot_cap 中的“上限”:
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\matplotlib__init__.py 在 内部(斧头,*args,**kwargs)1853“的 Matplotlib 列表!)" % (label_namer, func.name), 1854
运行时警告,堆栈级别 = 2) -> 1855 return func(ax, *args, **kwargs) 1856 1857 inner.doc = _add_data_doc(inner.doc,C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\matplotlib\axes_axes.py in plot(self, *args, **kwargs) 1526 1527 for line in self._get_lines(*args, **kwargs): -> 1528 self.add_line(line) 1529 lines.append(line) 1530
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\matplotlib\axes_base.py 在 add_line(self, line) 1930
line.set_clip_path(self.patch) 1931 -> 1932 self._update_line_limits(line) 1933 如果不是 line.get_label(): 1934 line.set_label('_line%d' % len(self.lines))C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\matplotlib\axes_base.py 在 _update_line_limits(self, line) 1952 中找出 给定行的数据限制,更新 self.dataLim。 1953
""" -> 1954 path = line.get_path() 1955 if path.vertices.size == 0: 1956 返回C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\matplotlib\lines.py 在 获取路径(自我) 第949章 950 如果 self._invalidy 或 self._invalidx: --> 951 self.recache() 第952章 第953章
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\matplotlib\lines.py 在 重新缓存(自我,总是) 650 如果总是或 self._invalidx: 第651章 --> 652 x = _to_unmasked_float_array(xconv).ravel() 653 其他: 654 x = 自我._x
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\matplotlib\cbook__init__.py 在 _to_unmasked_float_array(x) 2048 中返回 np.ma.asarray(x, 浮动)。填充(np.nan)2049其他: -> 2050 返回 np.asarray(x, float) 2051 2052
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\numpy\core\numeric.py 在 asarray(a, dtype, 顺序) 536 第537章 --> 538 返回数组(a,dtype,copy=False,order=order) 539 540
TypeError: float() 参数必须是字符串或数字,而不是 '日期时间.日期时间'
以下是我试过的代码
for i in Brokers:
series2=TimeSeriesData[TimeSeriesData.BrokerName == b][['Gross_Premium']]
series2['ds']=Broker_Clusters.index
series2['y'] = series2.Gross_Premium
series2=series2.drop('Gross_Premium',axis=1)
series2['ds'] = series2['ds'].apply(str)
#divide into train and validation set
train = series2[:int(0.7*(len(series2)))]
test = series2[int(0.7*(len(series2))):]
model_prop=Prophet()
model_prop.fit(train)
forecast = model_prop.predict(test)
# Plot the forecast
f14, ax14 = plt.subplots(1)
f14.set_figheight(5)
f14.set_figwidth(15)
fig = model_prop.plot(forecast, ax=ax14)
以下是我的测试数据集
ds y
Date
2016-03-15 2016-03-15 00:00:00 0.00000
2016-04-15 2016-04-15 00:00:00 180534.47230
2016-05-15 2016-05-15 00:00:00 0.00000
2016-06-15 2016-06-15 00:00:00 2545.12000
2016-07-15 2016-07-15 00:00:00 0.00000
2016-08-15 2016-08-15 00:00:00 0.00000
2016-09-15 2016-09-15 00:00:00 0.00000
2016-10-15 2016-10-15 00:00:00 20637.88000
2016-11-15 2016-11-15 00:00:00 0.00000
2016-12-15 2016-12-15 00:00:00 0.00000
2017-01-15 2017-01-15 00:00:00 0.00000
2017-02-15 2017-02-15 00:00:00 0.00000
2017-03-15 2017-03-15 00:00:00 8878.08000
2017-04-15 2017-04-15 00:00:00 198174.32710
2017-05-15 2017-05-15 00:00:00 0.00000
2017-06-15 2017-06-15 00:00:00 3458.61875
2017-07-15 2017-07-15 00:00:00 0.00000
2017-08-15 2017-08-15 00:00:00 0.00000
2017-09-15 2017-09-15 00:00:00 0.00000
2017-10-15 2017-10-15 00:00:00 5159.47000
2017-11-15 2017-11-15 00:00:00 0.00000
2017-12-15 2017-12-15 00:00:00 0.00000
【问题讨论】:
标签: python time-series