以下内容整理自2023年夏季学期大数据能力提升项目《大数据实践课》同学们所做的期末答辩汇报。
随着石化行业市场日趋饱和,市场竞争日益激烈,企业利润空间不断被压缩,大多数石化企业急需转型开拓新市场,化工原料价格的波动对于石化企业的决策和利润都会产生直接影响,所以对于化工原料价格精确、高效的预测显得尤为重要。目前业界已有部分实践和相关技术,但仍然存在价格不全、小品类商品价格信息难以获取等痛点。基于此,本项目以1,4-丁二醇为例,先对产品价格影响因素进行分析,并构建化工品价格时序预测模型,寻找化工品价格变化规律,最终实现模型的在线部署。
首先对数据进行预处理。采用front fill的方式填补缺失值,将颗粒度统一为日度,删去缺失值过多的数据和明显高度相关的变量。第二步采用多种方法对数据作进一步筛选,第三步尝试采用两种计量模型、三种机器学习模型和三种深度学习模型进行构建模型和模型比选,通过比选最终决定采用深度学习模型。最后结合前端开发实现模型在网页的调用。
我们获得的原始数据包括175个变量在1293个日期的数据,经过预处理之后,最终得到95个变量在1885个日期的数据。得到95个变量之后,我们又通过计量方法、XGBoost以及Transformer三种方法对输入变量进行进一步筛选。其中相关分析通过相关系数判断变量间关系密切程度,XGBoost模型可以量化并输出原始变量在预测过程中的重要程度,Transformer可以输出各个变量的因果门因子,据此可以挑选出与因变量因果关系密切的变量。结合这三种方法能够得到变量之间的相关性以及在模型当中的重要性。最终我们将结果整理成了变量筛选分析报告,最终简化为包含11种化工品、54个特征的重要变量。
基于上述变量我们进行预测建模。首先是RNN模型的框架。我们对二维原始数据进行归一化和时间切片,得到下图所示三维模型输入,三个维度分别是batch_size,window_size和feature_size。window_size指的是我们使用从现在开始回溯多少天的数据进行价格预测。我们使用了五层RNN,每个单层RNN中包括添加噪声、隐藏层、输出层以及dropout层和归一化层,经过5层输出之后,我们对最后一层的三维输出进行window_size维度的取平均之后,就可以得到最终的预测结果。在训练过程中,我们可以调整的超参数包括在不同预测任务下的window_size,以及是否添加噪声,dropout值以及初始学习率的衰减程度。
下图展示了RNN模型的预测结果,其中蓝线代表真实值,红线代表经过滑动平均的预测值。从图上可以看出,除了90天以外,其他的预测天数下的红线基本上都可以较好地反映出真实价格的变化趋势。而90天之所以预测效果较差,可能因为在90天局部变化的剧烈程度是最大的,因而预测难度也相对最大。
下图展示了RNN的具体预测误差。可以看出平均相对误差均满足了预先要求,与上图所示相同,90天的误差相对最大。
我们也进一步尝试了LSTM网络,该模型包括输入层、dropout层和输出层。因为输入输出维度相同,因此我们使用了全连接层输出,将最终的价格维度转化为1,可以调整的超参数包括LSTM的堆叠数量、层数、dropout值以及学习率,其他设置与RNN相同。
LSTM的误差相对大一些,但在较长时间间隔的预测是满足小于15%的要求的。但相比RNN并没有很明显的优势,所以后续并未使用。
此外我们还通过使用时间序列Transform模型(简称TST)进行1,4-丁二醇价格预测。TST价格模型如上图所示。除了将日期拆分为年、月、日三个特征并对数据进行标准归一化外,其输入与输出均与RNN和LSTM模型相同。TST模块主要由输入模块、三层的Transformer encoder block和FC阶层组成。在编码部分,除了输入编码外,通过加入sin、cosin位置编码表征了时间上的先后顺序。我们选择调整的超参数包括初始学习率、T样本数、dropout概率、历史时间跨度等,最终得到了六个不同预测时间间隔下的TST预测模型,其拟合与预测效果如下图所示。
下表展示了TST训练集和预测集上的误差。可以看到,TST模型在不同预测时间间隔下的相对误差在11%-16%左右,总体而言,TST模型具有一定时序预测能力,但就其效果而言,略逊于RNN模型,且在时间跨度越大的情况下,差别越明显。
本次大数据实践我们从数据预处理、特征筛选、价格预测建模与demo设计四方面出发,我们首先补全数据、统一数据粒度并初步删除缺失值过多数据,综合运用三种方法筛选出了11种相关化学品共54个重要特征。之后我们基于RNN、LSTM以及TST模型进行了1,4-丁二醇的价格预测并进行了demo设计,我们的试用版界面能满足简洁易用、响应快、平均相对误差小于15%及安全方面的要求。
在demo中,上传相关变量的历史数据并选择相应的预测时间间隔后,页面会弹出模型选择框,并弹出建议选择的预测模型。在点击提交按钮后,页面会出现预测时间点的1.4-丁二醇价格,并通过可交互的ECharts图表展示1.4-丁二醇的每日数据及变化趋势,以上就是本次汇报的全部内容。
编辑:文婧
校对:林亦霖