时间序列数据分析与预测

时间序列数据是指与时间相关的数据序列,它能够展示出趋势、非平稳性和季节性等特点。这种数据类型通常基于日、周、年的时间间隔进行分析。数据科学家在分析时间序列数据时,需要识别这些特征,并据此进行预测,以便建立基准模型,用于未来的预测或预测分析。

在预测分析领域,存在多种模型,如机器学习中的ARIMA(自回归积分滑动平均模型)、自回归模型、指数平滑、LSTM(长短期记忆)等。这些模型需要输入数据,并经过一定的调整和微调,以帮助进行预测。但如果存在一个第三方库,能够在内部完成所有的微调工作,而只需要输入模型并等待结果,那将是多么方便的事情。

例如,冰淇淋的销售在夏季高而在冬季低,这种趋势无论年份如何变化都持续存在,这就是季节性数据的一个例子。对于用作预测分析模型的时间序列数据,应避免季节性,并且在时间间隔上保持平稳性。在使用ARIMA、AR等模型时,总是存在消除季节性和非平稳性的问题,但有了Prophet,这个问题得到了解决。

该库提供了许多参数供调整和优化模型,例如指定节假日、日季节性、傅里叶变换等。接下来,让通过Python实现这个库的使用。

安装

  1. pip install pystan - 首先安装Pystan库,它有助于轻松运行Fbprophet。
  2. pip install fbprophetconda install -c conda-forge fbprophet - 安装Fbprophet库。

Python实现

使用Fbprophet库之前,需要确保系统中已安装Pandas、Matplotlib、Numpy、Warnings(异常处理)、Jupyter Notebook或Lab等库。以下是使用Fbprophet库进行预测分析的步骤:

  1. 导入必要的库。
  2. 使用Pandas库导入数据。
  3. 数据预处理,只保留日期列和目标列,忽略其他列。同时,将日期列转换为日期时间格式,并重命名为“ds”和“y”。
  4. 在Prophet库下拟合/训练整个模型。
  5. 使用Prophet创建新数据,并在这些新数据上进行预测。
  6. 绘制预测结果。

以下是数据集的链接:https://raw.githubusercontent.com/Sagu12/FBPROPHET-TIME-SERIES-FORECASTING/main/milk.csv

在导入数据后,需要检查数据类型,并绘制线图以观察季节性和平稳性。从图中可以清楚地看到,数据是非平稳的,存在上升趋势,并且由于在时间间隔上的周期性波动,它也是季节性的。因此,需要使数据平稳且非季节性。Fbprophet库能够处理这类数据,因此不必担心预处理部分。

根据Prophet的要求,需要将列重命名为“ds”和“y”。Fbprophet库假设单变量分析与时间变量有关,因此不需要指定其他列。

接下来,需要将日期列的数据类型更改为日期时间格式。

在导入Fbprophet进行时间序列预测和训练模型时,其机制与任何机器学习算法相同,即拟合模型然后预测输出。唯一的区别是在模型训练部分需要提供整个数据集,而不需要将其分割为训练集和测试集。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485