使用facebook的fbprophet模型预测湖北新冠肺炎确诊人数(包含源码和具体分析过程)

就在最近,一次偶然的机会学习了以下fbprophet时序预测模型,就决定使用这个框架来进行未来20天人数的预测。但是传染病模型通常比较复杂,此次使用此模型来预测,仅仅是用来练习,结果仅供参考。

fbprophet模型简介

  • 这个模型(算法)是由facebook公司在2017年正式开源的,主要用于对时间序列进行预测。
  • 这个模型上手非常容易,即便是很一般的数据分析师也能够做一个比较精准的预测。
  • 该模型只需要设置基本配置,并传入指定格式的数据,就可以完成数据的预测。
  • 整体框架分为Modeling、Forecast Evaluation、Surface Problems以及Visually Inspect Forecasts这四个部分。
  • 模型有三部分组成,增长趋势,季节趋势,节假日影响。

更多关于这个模型的介绍,腾讯技术写过一篇我见过最详细的介绍,我就不做重复工作了,大家自行查看把
腾讯技术工程 | 基于Prophet的时间序列预测

python实战

一、包的安装

首先强调一下安装fbprophet我遇到的坑:

  • 需要首先安装pystan,这个包使用pip安装很难成功,建议使用anaconda安装。
  • 成功安装pystan后,使用pip安装fbprophet。怪吧,因为我使用anaconda安装不上fbprophet。
二、使用的数据

我所使用的数据是湖北省从2019年12月1日到2020年2月29日的确诊人数数据【数据下载】(提取码:vmnv):
在这里插入图片描述
根据官网的描述,只要用 csv 文件存储两列即可,第一列的名字是 ‘ds’, 第二列的名称是 ‘y’。第一列表示时间序列的时间戳,第二列表示时间序列的取值。所以这里我们可以手动在文件中更改列名,也可以在程序中改。这里我们使用后者方法。

三、处理数据
import pandas as pd
import pystan
from fbprophet import Prophet
import matplotlib.pyplot as plt

pdata = pd.read_csv("data/20200301-nCoV-hb.csv")
pdata.rename(columns={
   'date':'ds','confirmed':'y'},inplace=True)
pdata['ds'] = pd.to_datetime(pdata['ds'],format='%Y%m%d')

首先我们将列名修改成了官方要求的’ds’和’y’,其次我们将’ds‘的格式修改成了datatime时间格式。

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值