APP下载

基于特征扩充和LSTM模型的多变量工业订单预测

2021-03-10

系统仿真技术 2021年4期
关键词:残差订单预测

张 提

(同济大学电子与信息工程学院,上海 201804)

对于工业企业来说,订单量的不确定性给库存管理带来了巨大的风险,尤其是生产和运输提前期较长的企业,以及严格按照订单进行生产的企业,订单更是作为连接企业与客户的桥梁。对订单量进行精准预测,可以帮助企业及时改进生产计划,作出合理决策,提高市场竞争力。

工业订单可以作为时间序列数据进行研究。自回归差分移动平均模型(ARIMA)由G.P.Box和G.M.Jenkins于21世纪70年代初提出,是非常著名的线性单变量时间序列预测模型[1]。W.J.Kim基于时间序列,使用ARIMA模型对海外施工订单进行预测[2]。然而,ARIMA模型很难捕捉到时间序列的非线性特性。人工神经网络(ANN)可以有效地处理非线性问题,该方法也被广泛地应用于预测。黄建强等[3]使用低偏差序列混合遗传粒子群优化算法对灰色神经网络参数进行优化,并将其用于冰箱订单预测。华晓晖等[4]利用BP神经网络组合径向基神经网络建立订单预测模型,提高对订单数据的预测精度。M.Khashei等[5]和Voronin[6]利用ARIMA与ANN模型分别比较线性与非线性建模的优势,有效地将ARIMA和ANN模型进行混合建模,提高了模型的预测精度。此外,还有一些其他机器学习方法也成功地应用在时间序列的非线性回归问题中,并受到越来越多的关注。例如,支持向量机(SVM)[7]、多层感知器(MLP)[8]、贝叶斯神经网络[9]、广义回归神经网络(GRNN)[10-11]、K近邻回归算法[12]、分类与回归树(CART)[13]与高斯过程回归[14]。Nesreen K.Ahmed等[15]对用于时间序列预测问题的机器学习模型进行大规模的比较研究,验证了机器学习在时间序列预测领域的可行性。

与传统的机器学习方法相比,深度学习具有很强的学习能力,能够更好地利用数据集提取特征。随着计算能力的不断提高,深度学习也已经成为时间序列预测的重要方法。RNN及其改进算法LSTM的出现就是利用深度学习能够表征复杂的数据这一特征【16-19】。

本研究基于LSTM模型分析了瑞典某企业的订单预测问题。为了提升模型的泛化能力,采用STL方法对时序数据进行了特征分解。

1 问题描述

本研究针对瑞典某企业2016年11月至2020年12月近50个月的订单数据【20】进行分析,考虑到订单量作为企业的保密数据,因此使用该企业提供的每月订单量的增长率进行分析预测,可以达到和使用订单量预测相同的效果。

以订单月增长率作为目标变量,如图1所示,订单影响因素变量包括工业生产指数、经济趋势、生产者物价指数、制造业信息指数、消费者信心指数和家庭消费月增长率,分别如图2-7所示。

图1 工业订单月增长率Fig.1 Monthly growth rate of industrial orders

图2 工业生产指数月增长率Fig.2 Monthly growth rate of industrial production index

2 订单预测模型设计

本研究通过Keras框架构建基于LSTM的订单预测模型,包括Dense层即全连接层、LSTM层、Dropout层,如图8所示。

图3 经济趋势Fig.3 Economic trends

图8 订单预测模型结构Fig.8 The structure of order prediction model

LSTM层的激活函数采用ReLU函数,即f(x)=max(0,x)。模型评价指标采用第i个预测时刻的平均绝对误差、均方根误差以及趋势准确度,其定义分别如式(1)-式(3)所示。

图4 生产者物价指数月增长率Fig.4 Monthly growth rate of pproducer price index

图5 制造业信心指数Fig.5 Manufacturing confidence index

图6 消费者信心指数Fig.6 Consumer confidence index

其中,m为模型独立运行的次数,n为模型的预测时刻数,yi为实际值,fi为预测值。当前时刻的预测值fi和实际值yi分别与上一时刻的实际值yi-1作差,所得差值如果其符号一致,则表示该时刻的预测趋势正确。ri为预测趋势正确的时刻数,k为总的预测时刻数。

3 特征数据扩充

为了提高模型的泛化能力,本研究对时序数据进行一定的扩充并用于模型训练。根据时间序列分解方法STL可知,时间序列数据可分解为

图7 家庭消费月增长率Fig.7 Monthly growth rate of household consumption

其中,Ti表示趋势成分,Si表示季节成分,Ri表示残差成分。

为了进一步扩充特征数据,对{Ti,Si,Ri}三个成分进行加权,如式(5)所示,即

其中,α1+α2+α3=1。

本研究提出了一种动态加权的方法,在模型训练的过程中动态生成包含趋势成分、季节成分、残差成分的特征数据,如图8所示。

以原订单数据、影响因素数据及其分解后的趋势成分、季节成分、残差成分作为输入,在这些输入数据用于LSTM层训练之前,输入数据中的趋势成分、季节成分、残差成分作为全连接层Dense的输入,Dense层的输出为加权后的趋势成分、季节成分和残差成分,权重可以通过整个模型训练得到。

图9 时序数据特征分解动态加权Fig.9 Dynamic weighting for time series data feature decomposition

由于整个训练过程是在一个模型中,因此,模型在训练的过程中便会根据损失函数动态调整趋势成分、季节成分和残差成分的权重,以生成不同的时间序列数据并输入到后续网络层。用于LSTM层的输入数据保留了原数据的趋势性和季节性,同时,保留的残差成分有利于提升模型的泛化能力。

4 模型训练及预测

本研究将订单和6个影响因素进行时间序列分解,并通过不同的权重进行加权,每组影响因素数据产生10组扩充数据,加上原影响因素数据一共产生66组数据。然后,将66组数据与订单数据扩充产生的11组数据一同作为模型的输入进行训练,并将下一时刻的订单数据作为输出,对订单数据进行单步预测。输入输出结构如图10所示。

图10 订单预测模型输入输出结构Fig.10 The input-output structure of order prediction model

模型训练参数如表1所示。

表1 LSTM模型训练参数Tab.1 The parameters for LSTM model training

模型运行10次,其统计预测结果如图11所示。

图11 订单预测结果Fig.11 The results of order prediction

经统计,模型的均方根误差为1.97,趋势准确度为78.7%,结果可以接受。

5 结 语

本研究是作者硕士学位论文《基于LSTM的工业订单预测及应用研究》[21]的一部分,主要探讨了LSTM模型用于解决订单预测问题的可行性。LSTM模型用于订单预测具有两方面的优越性,一是其能够学习时间序列在时间维度上的依赖关系,二是其能够从众多的特征数据中学习到关键信息。为了进一步提高模型的泛化能力,采用时间序列分解方法STL对原订单数据及其影响因素进行了特征加权分解,并基于Dense网络对权重进行动态学习。原数据及扩充数据同时作为LSTM模型的输入,提高了订单预测模型的预测精度。

猜你喜欢

残差订单预测
春节期间“订单蔬菜”走俏
订单农业打开广阔市场
无可预测
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
基于双向GRU与残差拟合的车辆跟驰建模
基于残差学习的自适应无人机目标跟踪算法
基于递归残差网络的图像超分辨率重建
“最确切”的幸福观感——我们的致富订单
不必预测未来,只需把握现在