时间预测fbprophet

新冠预测

导包

1 import pandas as pd
2 import numpy as np
3 import matplotlib.pyplot as plt
4 from fbprophet import Prophet
5 data=pd.read_csv('covid_19_data.csv')

时间预测fbprophet

                   图 1-1 data数据集

数data括各个地方十几万条数据,这里我选取湖北省来进行确诊预测.

提取信息

1 # 在湖北省数据中提取日期和确诊数两个label
2 hubei_confirm=data[['ObservationDate','Confirmed'][data['Province/State']=='Hebei']
3 # 重新索引
4 hubei_confirm.reset_index(drop=True,inplace=True)

时间预测fbprophet

           图1-2  提取后的湖北确诊数据

时间预测fbprophet

  图 1-3  湖北确诊数据信息

因为没有缺失数据,我们可以直接用模型预测

1 # 将列名改为官方默认的名称
2 hubei_confirm.columns=['ds','y']
3 # 将日期改为标准日期格式
4 hubei_confirm['ds']=pd.to_datetime(hubei_confirm['ds'])

时间预测fbprophet

   图 1-4 更改格式后湖北确诊信息

 模型训练

1 m_v2=Prophet()
2 #添加中国节假日,可能影响确诊人数
3 m_v2.add_country_holidays(country_name='CN')
4 m_v2.fit(hubei_confirm)
1 # 以天为单位,预测30次,也就是预测一个月
2 future_v2=m.make_future_dataframe(freq='D',periods=30)
3 forecast_v2=m.predict(future)
4 # forecast_v2记录着预测的疫情时间,预测值,预测波动范围
5 forecast_v2[['ds','yhat','yhat_lower','yhat_upper']].tail()

时间预测fbprophet

                 图  1-5 湖北疫情确诊一个月预测图

黑色的点是实际确诊数,深蓝色的线是预测值,浅蓝色是我们预测的波动范围,可以看出预测出了未来一个月的数据。

时间预测fbprophet

                 图 1-6一个月湖北疫情确诊预测数据

我们可以根据图形看确诊人数走向,根据表格查看具体确诊人数.预测一个季度同理

1 m=Prophet()
2 m.fit(hubei_confirm)
3 future=m.make_future_dataframe(freq='D',periods=90)
4 forecast=m.predict(future)
5 forecast[['ds','yhat','yhat_lower','yhat_upper']].tail()

时间预测fbprophet

                 图 1-7 一个季度湖北疫情确诊预测数据

时间预测fbprophet

                 图  1-8 湖北疫情确诊一个季度预测图

 

上一篇:Solving Linear Equation


下一篇:时间序列算法fbprophet安装-Mac