1. 引言
水果作为我国种植产业中仅次于粮食、蔬菜和油料的第四大农作物种植类别,在我国国民经济中占据着重要地位。同时,水果作为人们日常生活饮食的重要组成部分,富含人体需要的多种维生素,也是人体营养的重要来源之一,其价格不仅关乎消费者的购买力和生活质量,也直接影响着果农的收入和经销商的经营策略。近年来,随着生活水平的提高,人们对于水果的需求也在上升,而水果的产量和品质都明显受到气候的变化,这两年我国的气候变化同往年相比较为明显,其带来的水果与蔬菜产量都有明显波动,这将使得水果的价格波动变得更为复杂和难以预测。贵州省有着独特的地理环境和气候条件,其水果种植具有明显的地域性和季节性,多数日常水果,例如苹果、香蕉等大多来自我国其它省市,这些都会使得水果价格的形成和波动更具复杂性。
本文使用VMD (变分模态分解)-SSA (麻雀算法)-LSTM (长短期记忆神经网络)模型对贵州省的红富士苹果、巨峰葡萄、麒麟西瓜的价格进行预测分析,希望为政府、果农、经销商和消费者提供价格波动趋势,为促进水果产业稳定发展提供智力支持。
2. 文献综述
近些年,国内外的一些学者对水果价格预测问题进行了研究,取得了一些不错的成果。2021年,王晓蕾提出将计量经济模型和深度神经网络相结合的方法,再利用LSTM模型自身的学习特性以及GARCH (广义ARCH)簇模型挖掘经济数字特征的能力,研究并构建了LSTM和GARCH簇多模型结合的组合模型[1]。2020年,张顺利等针对苹果价格数据的特征,提出了一种基于LSTM神经网络的苹果价格预测模型,也有比较好的预测效果图[2]。使用LSTM模型对农产品进行价格预测是近年来的常用方法之一[3] [4]。2020年Shins S等使用LSTM模型对农产品的价格进行预测并取得了较好的效果[5]。2019年,Soetrisno等提出SARIMA (季节性自回归插值移动平均线)模型来进行苹果价格预测,其可以帮助检测苹果的库存水平,并取得不错的效果[6]。2020年,Alameer等提出的LSTM (长短期记忆模型)-DNN (深度神经网络模型)模型,用来预测在不同区间的月度煤炭的价格变化趋势,获得了比使用单一模型更好的预测效果[7]。
卢志平等融合VMD和LSTM模型对新能源的汽车销量进行预测,得到了较高的预测精度[8]。楼泽霖等提出一种基于改进SSA-LSTM的销量预测模型,该模型相较于其他模型具有更好的预测效果[9]。樊冲等提出CEEMDAN (完全自适应噪声完备集合经验模态分解)-VMD-SSA-LSTM模型。通过CEEMDAN和VMD对数据进行两次模态分解,并通过寻优能力强、稳定性好的SSA对LSTM进行优化,得到预测效果更为精准的预测模型[10]。郭庆辉等提出了一种基于NGO (北方苍鹰优化算法)-VMD-SSA-ESN (回声状态网络)的短期电价混合预测模型,以美国PJM电力市场为例,与其他电价预测模型进行对比,提出的组合模型具有更好的预测精度[11]。组合预测模型越来越受到国内外广大学者的关注和研究,逐渐成为预测模型应用领域的热点问题之一。
3. 模型介绍与数据来源
针对水果价格时间序列数据的季节性、非平稳性、非线性性等特性,VMD可以对复杂信号进行模态分解,SSA可以优化LSTM中的超参数,能够有效避免超参数选取不当带来的误差。故本文采用VMD-SSA-LSTM组合预测模型对水果价格进行预测。
3.1. SSA
SSA [12]是模拟自然界中麻雀的觅食和反捕食行为建立的一个数学模型,分为发现者、加入者和警戒者,其特点是寻优能力强,鲁棒性好,收敛速度快,在求解复杂的优化问题方面具有明显优势。SSA的步骤如下:
麻雀的随机初始位置X如下:
(1)
式(1)中,麻雀的总数量用n表示,模型中需要优化的变量维度用d表示。麻雀的适应度值如下:
(2)
式(2)中,元素f表示单只麻雀在所有维度下的适应度值。
每次迭代过程中,种群中发现者的位置都会进行更新,目的是为了避免危险,位置更新形式如下:
(3)
式(3)中,t代表目前所处的迭代轮次,
(
表示事先设置好的最大迭代次数);j是用来代表维度;
表示第i只麻雀在第t次迭代中在第j个维度处的位置;而
是一个定义在区间
上的随机变量;Q是一个随机数,要求它服从正态分布;L是一个给定的,要求其元素全是1的一个
维矩阵。判定条件
和
是两个很关键的阈值,其中
是报警阈值,
则代表的是安全阈值。
当
时,报警阈值比较低,可以认为此时的觅食环境安全,种群内的发现者能够进行较大范围的搜索;而当
时,报警阈值高于安全阈值,则表示当前种群所在的觅食环境危险程度较高,环境中可能存在一定数量的捕食者,整个麻雀种群都需要转移到安全区域。下面是加入者的位置更新公式:
(4)
其中,
表示当前发现者位于环境中的最优位置,
表示此时整个环境中最差的位置。A是一个内部元素被随机赋值为1或者−1的
维矩阵,要求矩阵A满足条件
。当
(此时的n表示加入者数量,并不代表整个种群的数量)时,则表示第i个加入者为加入者中的较差加入者,它在整个麻雀种群中的适应度值比较低,并处于极度饥饿状态,需要随机飞到其它地方其寻找食物,获取能量。下面是预警者的位置更新公式:
(5)
式(5)中的i只遍历种群中意识到危险的麻雀数量,并不遍历整个种群。式(5)中,
表示此轮迭代中的全局最优位置。
是一个随机数,限制它服从正态分布,且均值为0,方差为1;
也是一个随机数,其大小被限制在
之间;
表示当前麻雀个体的适应度值,
和
则分别表示麻雀种群中的最大适应度值和最小适应度值;
的存在是为避免式(5)中的分母为0,它是一个无限趋于0的常数。当判定条件
成立时,表示当前的麻雀是在种群边缘地带,所处环境更危险,容易遭受捕食者攻击。而当
成立时,表示位于种群中心的麻雀已经感受到了危险,为了降低自身被捕食的风险而需要靠近其它麻雀。
3.2. VMD方法
Konstantin Dragomiretskiy在2014年提出了VMD方法,也就是变分模态分解方法[13],是基于EMD (经验模态分解)方法来改进的一种复杂信号分解方法。VMD方法可以克服EMD方法的模态混叠问题。VMD与EMD原理不同,VMD是一种自适应的、完全非递归的模态变分及信号处理方法,其分解原理是利用迭代搜索变分模型的最优解来确定每个分解的分量中心频率和有限带宽。使用该方法前需要先确定模态的数量。EMD是基于瞬时频率和本征模态函数的概念,将一个复杂信号分解为若干个IMF变量,每个IMF表示信号的一个局部特征,主要依据数据本身的时间序列特征进行分解,不需要事先设定基函数等,具有一定的自适应性。但EMD在进行IMF分解时存在模态混叠问题,即一个IMF中会包含不同时间尺度的特征成分,这其中既有信号自身的原因,也有EMD算法的不足。
VMD方法的具体分解步骤[13]如下:
1) 利用Hilbert (希尔伯特)变换来计算所有模态函数
的分析信号,得到单边频谱;
2) 各个模态上的频谱经由各自特有的分析信号,再乘以其中心频率对应的指数因子,实现向基带的迁移。
3) 通过解调信号的高斯平滑度也就是梯度的平方范数来估计带宽。由此步骤得到的受限变分问题如下:
(6)
(7)
其中,
是所有模态的集合,
,k表示为分解的模态分量的数量,
为其对应的中心频率的集合,
表示狄拉克函数,f表示分解的子信号。
4) 为了解决优化问题,Konstantin Dragomiretskiy建议同时利用二次惩罚项和拉格朗日乘子法,得到如下形式的拉格朗日函数:
(8)
其中
表示二次惩罚项。
5) 通过不断迭代来计算
,
,
的值,直到式(9)的条件被满足,则式(8)的鞍点就是式(6)、(7)的最优解。
(9)
其中
为设定的误差,n为迭代的次数。
3.3. LSTM模型
由于RNN (循环神经网络)在反向传播时,无法学习到序列中早期的数据信息,并且在处理长序列数据时,RNN会出现梯度消失或梯度爆炸问题。针对上述问题,LSTM [14]神经网络可以有效地解决,相比较标准的RNN,LSTM引入了更加复杂的结构来维护和更新内部状态(细胞状态)。LSTM是通过引入三个门来控制信息的流动以及记忆的更新,分别是遗忘门、输入门和输出门。遗忘门主要是决定哪些信息应该被丢弃,输入门由
层和tanh层两部分构成,
层决定将更新哪些值,tanh层是创建一个新的候选值变量。细胞状态通过结合遗忘门和输入门的信息来进行更新。输出门是决定哪些信息将被输出,且输出的值通过tanh函数进行缩放。
LSTM通过下列公式对细胞状态
和隐藏状态
进行更新:
(10)
(11)
(12)
(13)
(14)
(15)
其中,
、
、
分别表示遗忘门、输入门和输出门的激活值,
表示候选记忆细胞,
表示激活函数,
表示逐元素乘法。LSTM的这些设计能够显著提升其处理数据的性能,使其成为处理序列建模问题的主要模型。
3.4. VMD-SSA-LSTM模型
VMD-SSA-LSTM模型是一种基于VMD (变分模态分解)、SSA (麻雀搜索算法)和LSTM (长短期记忆神经网络)的组合预测模型。首先,使用VMD将水果的每周监测批发价格序列分解为多个子序列,再使用SSA算法对LSTM神经网络的最大迭代次数、初始化学习率和隐藏单元数目这3个超参数进行寻优,最后,使用最优超参数建立LSTM网络,并对价格子序列进行预测,将预测后的价格进行求和,以此作为每种水果的价格预测结果。
3.5. 数据处理
为了保证预测结果的准确性和客观性,文中采用的数据均来自贵州省农业农村厅每周发布的《贵州省农产品批发市场价格监测周报》,选取的是自2021年第22周至2024年第38周,共计174周的红富士苹果、巨峰葡萄、麒麟西瓜这三种水果的批发价格数据。选取数据中的70%作为训练集,剩下的30%作为测试集。
数据的预处理采用了归一化的处理方式,将价格数据映射到
之间,可以有效防止因数据尺度不平衡而造成的算法不稳定问题。数值实验中采用滑动窗口(m)的方式对价格数据进行扩展,即使用连续的m个价格数据作为下一个待预测的价格的特征,在具体的数值实验中,针对不同的水果种类,滑动窗口m的大小也有所区别。
4. 预测结果及分析
4.1. 实验过程
首先使用VMD方法对3类水果的价格序列数据进行分解,各得到9个模态分量。VMD的惩罚参数
,收敛准则的阈值
,SSA中选用MSE为适应度值。为了更直观的说明VMD-SSA-LSTM模型的预测效果,文中还使用单一的LSTM、VMD-LSTM模型来进行对比实验。单一的LSTM和VMD-LSTM中的LSTM超参数的设置见表1,其中,标
的超参数是SSA的寻优目标。
Table 1. LSTM parameter settings (
indicates parameters optimized in SSA)
表1. LSTM参数设置(带
的参数在SSA中作为寻优目标)
训练参数 |
质量 |
最大迭代次数 |
50 |
隐藏单元数目 |
35 |
求解器 |
Adam |
L2正则化项系数 |
1e−4 |
初始学习率 |
1e−2 |
梯度阈值 |
1 |
学习率下降周期轮次 |
30 |
学习率下降因子 |
0.2 |
4.2. 评价指标
为了能够全面评估模型性能,进一步量化模型效果,实验中还选用RMSE (均方根误差)、MAE (平均绝对误差)和MAPE (平均绝对百分比误差)作为模型预测效果的评价指标,它们的计算公式形式如下:
(16)
其中,
表示真实值,
表示预测值,n表示数据长度。RMSE (均方根误差)、MAE (平均绝对误差)和MAPE (平均绝对百分比误差)用来衡量实际值与预测值之间的误差大小,数值越小,表示预测值与实际值之间的差距越小,模型的预测精度就越高,预测模型的效果也就越好。其中,RMSE的优点是易于理解,但缺点是对一些偏离值比较敏感;MAE则是减少了偏离值可能带来的显著性影响,但是不能记录误差方向,可能会丢失一些重要信息;MAPE同样解决了偏离值干扰的问题,不过当真实值为0时就不再适用。因此,综合使用上述三个指标,能够更加准确地刻画模型的预测能力和效果。
4.3. 模型的预测效果及结果分析
在matlab软件上面编写LSTM、VMD-LSTM、VMD-SSA-LSTM三种预测模型的程序代码,其中红富士苹果、巨峰葡萄、麒麟西瓜的滑动窗口m分别选用
、
、
,预测结果见图1~3;真实的水果价格与所预测的水果价格的RMSE、MAE、MAPE的数据见表2~4。
从图1~3可以看出,在30%的测试数据中,VMD-SSA-LSTM模型的水果预测价格与真实价格最接近,差距最小,均优于LSTM和VMD-LSTM的预测效果。从表2~4所列出的数据也可以看出,VMD-SSA-LSTM模型中的RMSE、MAE、MAPE的数值是LSTM、VMD-LSTM和VMD-SSA-LSTM三个模型中最小的,这进一步说明VMD-SSA-LSTM模型的预测效果最好。
Figure 1. Red Fuji apple price forecast chart
图1. 红富士苹果价格预测图
Figure 2. Jufeng grape price forecast chart
图2. 巨峰葡萄价格预测图
Figure 3. Qilin watermelon price forecast chart
图3. 麒麟西瓜价格预测图
Table 2. Evaluation of Red Fuji apple prediction results on different models
表2. 红富士苹果在不同模型上的预测结果评价
模型 |
RMSE |
MAE |
MAPE |
LSTM |
0.37138 |
0.31707 |
4.3082% |
VMD-LSTM |
0.55115 |
0.43075 |
5.3819% |
VMD-SSA-LSTM |
0.068912 |
0.052939 |
0.73312% |
Table 3. Evaluation of Jufeng grape prediction results on different models
表3. 巨峰葡萄在不同模型上的预测结果评价
模型 |
RMSE |
MAE |
MAPE |
LSTM |
0.83999 |
0.60064 |
4.6318% |
VMD-LSTM |
0.57909 |
0.4515 |
3.4582% |
VMD-SSA-LSTM |
0.1859 |
0.15547 |
1.1553% |
Table 4. Evaluation of Qilin watermelon prediction results on different models
表4. 麒麟西瓜在不同模型上的预测结果评价
模型 |
RMSE |
MAE |
MAPE |
LSTM |
0.31892 |
0.23808 |
5.5884% |
VMD-LSTM |
0.27758 |
0.23855 |
5.43% |
VMD-SSA-LSTM |
0.07777 |
0.06276 |
1.5618% |
5. 结论
由于水果价格与气候、季节、物流以及供需等多种因素相关,这使得水果价格的趋势是非平稳的时间序列,因此,文中采取VMD-SSA-LSTM模型来对红富士苹果、巨峰葡萄、麒麟西瓜这三类水果的价格进行预测,并使用LSTM和VMD-LSTM模型进行预测效果的对比。实验表明,使用VMD-SSA-LSTM模型来预测上述三类水果价格,其预测价格与真实价格之间的差距最小,拟合效果最优,且其RMSE、MAE、MAPE的数值也最小,可以证明该模型对于贵州省的红富士苹果、巨峰葡萄、麒麟西瓜这三类水果的价格预测具有较高的适用性。针对其它种类的水果,如车厘子、榴莲等需要结合其自身的数据特征,选择适合其特征的预测模型进行建模及价格预测。