时间序列数据是指与时间相关的数据序列,它能够展示出趋势、非平稳性和季节性等特点。这种数据类型通常基于日、周、年的时间间隔进行分析。数据科学家在分析时间序列数据时,需要识别这些特征,并据此进行预测,以便建立基准模型,用于未来的预测或预测分析。
在预测分析领域,存在多种模型,如机器学习中的ARIMA(自回归积分滑动平均模型)、自回归模型、指数平滑、LSTM(长短期记忆)等。这些模型需要输入数据,并经过一定的调整和微调,以帮助进行预测。但如果存在一个第三方库,能够在内部完成所有的微调工作,而只需要输入模型并等待结果,那将是多么方便的事情。
例如,冰淇淋的销售在夏季高而在冬季低,这种趋势无论年份如何变化都持续存在,这就是季节性数据的一个例子。对于用作预测分析模型的时间序列数据,应避免季节性,并且在时间间隔上保持平稳性。在使用ARIMA、AR等模型时,总是存在消除季节性和非平稳性的问题,但有了Prophet,这个问题得到了解决。
该库提供了许多参数供调整和优化模型,例如指定节假日、日季节性、傅里叶变换等。接下来,让通过Python实现这个库的使用。
pip install pystan
- 首先安装Pystan库,它有助于轻松运行Fbprophet。pip install fbprophet
或 conda install -c conda-forge fbprophet
- 安装Fbprophet库。使用Fbprophet库之前,需要确保系统中已安装Pandas、Matplotlib、Numpy、Warnings(异常处理)、Jupyter Notebook或Lab等库。以下是使用Fbprophet库进行预测分析的步骤:
以下是数据集的链接:https://raw.githubusercontent.com/Sagu12/FBPROPHET-TIME-SERIES-FORECASTING/main/milk.csv
在导入数据后,需要检查数据类型,并绘制线图以观察季节性和平稳性。从图中可以清楚地看到,数据是非平稳的,存在上升趋势,并且由于在时间间隔上的周期性波动,它也是季节性的。因此,需要使数据平稳且非季节性。Fbprophet库能够处理这类数据,因此不必担心预处理部分。
根据Prophet的要求,需要将列重命名为“ds”和“y”。Fbprophet库假设单变量分析与时间变量有关,因此不需要指定其他列。
接下来,需要将日期列的数据类型更改为日期时间格式。
在导入Fbprophet进行时间序列预测和训练模型时,其机制与任何机器学习算法相同,即拟合模型然后预测输出。唯一的区别是在模型训练部分需要提供整个数据集,而不需要将其分割为训练集和测试集。