豆粕价格对相关产业链、畜牧产业效益具有重要影响[1-4]。为保障我国畜牧业高质量发展,农业农村部2021年起出台多部相关政策,推行豆粕减量替代新模式[5]。因此,建立精准有效的豆粕期货价格预测模型对稳定饲料原料价格,助力饲料行业、畜牧业高质量发展和转型升级具有重大意义[6]。目前,一些学者采用一元线性回归等传统计量模型对饲料原料价格进行预测[7]。但传统线性模型不足以刻画其时变过程,预测精度较低[8]。近年来,随着人工智能技术不断发展,更多学者使用神经网络、支持向量机和其他机器学习方法进行预测[9-10]。与传统机器学习模型相比,极限梯度提升算法基于最优特征的重要性,描绘了输入特征与目标结果之间的底层机制,具有预测精度高、不易过拟合等优势[11],因而受到学者的广泛关注并被应用于多种产品的价格预测[12]。本文将极限梯度提升树(XGBoost)作为主要预测模型,贝叶斯优化(BO)算法为模型参数选择的优化器,分别进行预测,比较BP神经网络、梯度提升决策树(GBDT)模型和XGBoost模型的准确性,并对3种机器学习模型参数进行贝叶斯优化,以提高算法性能和测试速度,选择效果最优的算法进行预测,结合SHAP模型分析预测结果,为饲料行业和相关产业决策提供一定参考。1研究方法1.1BP神经网络原理BP神经网络算法是由输入层、隐含层和输出层所构成,其中输入层的作用将外界输入的信息传递给隐含层,并对接收到的信息进行一定的处理和转换,最后通过输出层输出结果。这一过程是对信息的正传播。若与预期的输出目标不符或与设定误差相差过大时,按梯度下降原则修正所有的权值和阈值,反复迭代,直至误差降至可接受范围,或完成预定学习次数为止,具体算法实现过程为[13-14]:Step1.前向传播Yj=∑i=1i Yiwij-bj (1)式中:Yj为第j个节点输出;wij为权值;bj为阈值。Step2.误差函数BP神经网络算法的误差函数基于均方误差函数,以算法的输入和对应的期望输出作为样本的集合为:{x1,t1},{x2,t2},…,{xR,tk} (2)式中:xR为神经网络的输入;tk为目标输出。每一个输入样本与实际的输出结果和期望的输出结果进行比较,计算出新的神经网络参数,使均方误差最小化,可表示为:F(z)=Ee2=Et-y2 (3)式中:E[e2]为期望值;F(z)为神经网络的权值和偏置值的向量。Step3.权值修正wij=wij-α∂e∂wij (4)bj=bj-α∂e∂bj (5)式中:α为学习速率[α∈(0,1)],通过不断地迭代调整各层的权值和阈值。1.2GBDT类算法原理GBDT模型是提升算法(Boosting)的一种,以CART决策树作为基学习器的集成模型,采用加法模型和前向分布算法完成学习优化的过程[15]。GBDT回归模型的实现过程为[16]:输入:训练集Data={(x1,y1),(x2,y2),…,(xn,yn)},基学习器数量以及损失函数。a.初始化估计一个使损失函数极小化的常数值c,此时构建了只有一个根节点的树;b.对样本i=1, 2, … , n,计算损失函数的负梯度并作为残差的估计值;c.将每个叶子节点的Rtk上使损失函数最小的最佳拟合值Ctk求和,得到第t棵树模型对本轮损失的估计值htxi[17];公式如下:htXi=∑k=1kctk I (X∈Rtk) (6)d.进行更新迭代,得到最终的强学习器。XGBoost是GBDT的一种高效实现,是陈天奇等人近年研发的一种集成式学习算法,通过集成多个弱分类器而构建强分类器,对损失函数二阶泰勒展开[18],同时使用正则项,防止模型过拟合[19]。1.3试验流程构建对豆粕期货月度结算价进行预测的机器学习方法。对豆粕期货月度结算价格多维影响因素进行特征选择,利用皮尔逊相关系数筛选出重要特征,选择80%的数据作为训练数据集,其余20%作为测试集进行训练测试。再使用贝叶斯优化算法调整BP神经网络、GBDT和XGBoost等3种机器学习算法的超参数,在测试集中对每个模型的性能进行评估和比较。通过对多个评价指标综合评价,选出表现最优模型进行豆粕期货月度结算价预测,并结合SHAP模型解析预测结果。1.4试验环境与模型评估机器学习算法环境配置为:系统为win11,GPU型号为RTX3060,Python配置环境为TensorFlow2.8.0、Pytorch1.11.0、Python3.9、Conda、Opencv4、CUDA11.6和Imblearn、Sklearn、Xgboost、bayesian-optimization和Shap库。机器学习模型的预测性能由平均绝对百分比误差(MAPE)和决定系数(R2)2个指标综合评价。2数据来源与特征选择2.1数据来源所有指标统一使用月度数据,相关数据均来自布瑞克农业数据智能终端、大连商品交易所和郑州商品交易所。考虑到数据的可得性与科学性,在预测豆粕期货月度结算价时,样本的起止时间为2006年1月至2023年4月,为保证各变量与豆粕期货结算价的一致性,剔除缺失值,经处理得到207组样本数据。为验证预测模型的有效性,将3种机器学习模型进行对较。构建BP神经网络、GBDT与XGBoost等3种机器学习算法以便更好地预测豆粕期货月度结算价,并对不同的预测结果进行比较,找出预测最准确的模型,对预测结果进行分析。2.2Pearson相关性分析Pearson相关系数用于衡量自变量与因变量之间相关程度的大小,其值介于-1和1之间,绝对值越大,相关性则越强。利用Pearson系数对所有解释变量进行划分,找出解释变量中的高度、中度、弱以及无关变量[20]。结合与豆粕价格波动相关文献[21-23],将前一月的大连豆油月度期货结算价和大连豆一月度期货结算价等影响因素作为解释变量,当月的豆粕期货结算价作为被解释变量,根据Pearson系数的大小判定解释变量与被解释变量之间的相关性强弱豆粕结算价的Pearson相关系数见表1。10.13557/j.cnki.issn1002-2813.2023.23.034.T001表1豆粕结算价的Pearson相关系数变量名称指标名称先导长度Pearson系数X1豆粕收盘价-10.935X2豆粕最高价-10.934X3豆粕最低价-10.933X4豆粕开盘价-10.932X5豆一结算价-10.792X6豆油结算价-10.739X7玉米结算价-10.706X8豆粕成交量-10.125X9豆粕持仓量-10.043根据相关性大小、成交量和持仓量的Pearson相关性系数小于0.3为几乎不相关变量,说明该两种解释变量与被解释变量收盘价没有直接或间接的必要联系。为避免因指标太多使机器学习模型的计算时间增加以及无关变量对实验精确度的影响。从指标变量中剔除与结算价不相关的成交量和持仓量特征变量,将剩余变量作为模型的最终解释变量。3结果与分析3.1模型性能的比较使用验证测试样本比较这3种机器学习模型。基准预测模型参数设置如下:在BP神经网络模型中输入层为7,隐藏层节点数为15,输出节点为1;GBDT模型参数为:基学习器数量为100,学习率为0.1,树的最大深度为1;XGBoost模型参数设置为基学习器为100,树的最大深度为3。研究结果证实了解释变量预测豆粕期货月度结算价的能力,基准模型评价表见表2。10.13557/j.cnki.issn1002-2813.2023.23.034.T002表2基准模型评价表模型名称MAPER2BP神经网络0.080.430GBDT0.030.871XGBoost0.030.874由表2可知,MAPE值最低和R2值最高的模型被认为是最佳预测模型。R2从BP神经网络的0.43到XGBoost的0.874。XGBoost算法预测集的MAPE为0.03,误差较小,R2为0.874,模型精度最高,优于其他两种模型。3.2贝叶斯优化方法的最佳参数选择贝叶斯优化由Pelikan等学者于1998年提出[24],可选择最接近最优参数的一组参数而不浪费大量的时间。其核心思想是利用贝叶斯定理构建一个代理模型,通过不断地更新这个代理模型确定下一步的优化方向[25-26]。文章找出了可能影响BP神经网络、GBDT和XGBoost模型效果的最重要的参数和取值范围,将其替换到贝叶斯优化算法中。贝叶斯优化的参数见表3。10.13557/j.cnki.issn1002-2813.2023.23.034.T003表3贝叶斯优化的参数模型名称参数名称参数设置BO-BP神经网络隐藏层809.92BO-GBDT基学习器269.67学习率0.49树的最大深度2.24BO-XGBoost基学习器416.26学习率0.50树的最大深度8.48叶子节点最小权重12.953.3算法效果的比较BO-优化模型评价表见表4。由表4可知,与基准模型相比,R2均得到不同程度的提高,表明贝叶斯优化算法可有效提高算法的性能。BO算法优化后的BP神经网络、GBDT和XGBoost预测模型精度分别较基准模型提升了79.06%、0.34%和2.06%。其中,BO-XGBoost算法的所有指标值均为最优,其预测集的MAPE和R2分别为0.03和0.892,精度较高。BP神经网络最低,其预测集的MAPE和R2分别为0.05和0.770,误差较大。10.13557/j.cnki.issn1002-2813.2023.23.034.T004表4BO-优化模型评价模型名称MAPER2BO-BP神经网络0.050.770BO-GBDT0.030.874BO-XGBoost0.030.892豆粕月度期货结算价模型预测结果见表5。由表5可知,最优模型在2022年5月至2023年4月对豆粕月度期货结算价预测的平均相对误差为0.61%,预测效果良好。10.13557/j.cnki.issn1002-2813.2023.23.034.T005表5豆粕月度期货结算价模型预测结果时间豆粕月度期货结算价/(元/t)BO-XGBoost预测值/(元/t)相对误差/%2022年5月4 077.844 035.181.052022年6月4 065.484 035.180.752022年7月3 883.334 035.183.912022年8月3 788.223 788.230.002022年9月3 966.523 966.530.002022年10月4 061.274 061.260.002022年11月4 209.324 209.310.002022年12月4 020.844 020.850.002023年1月3 867.133 806.211.582023年2月3 858.053 858.050.002023年3月3 685.143 685.140.002023年4月3 539.183 539.180.003.4特征分析使用XGBoost-Bayes作为模型进行训练和测试时,因素的特征重要性见图1。其中影响因子X1~X7分别代表滞后一期的豆粕期货月度收盘价、豆粕期货月度最高价、豆粕期货月度最低价、豆粕期货月度开盘价、豆粕期货月度结算价、豆油期货月度结算价和玉米期货月度结算价。由图1可知,滞后一期的豆粕期货收盘价(X1)为关键预测因子,占比为0.63。XGBoost-Bayes可充分利用各种因子,说明因子库的构建合理。10.13557/j.cnki.issn1002-2813.2023.23.034.F001图1因素的特征重要性机器学习在预测时间序列数据方面具有很大的潜力,但研究人员通常不解释他们的预测,这是采用机器学习的一个障碍。针对该问题,Lundberg和Lee于2017年提出了一种解释ML预测的统一框架[27],是一种解释各种黑盒ML模型的新方法。SHAP值起源与博弈论,主要用于量化每个特征对模型预测的贡献,通过计算一个特征加入模型当中时的边际贡献[28],然后计算该特征在所有特征序列中不同的边际贡献,计算该特征的SHAP值[29-30]。XGBoost模型的SHAP全局特征分析见图2。一个特征的SHAP值越高,豆粕期货月度结算价就越高。通过取SHAP值的平均绝对值得出每个特征的相对重要性。X1和X6分别代表滞后一期豆粕期货收盘价和滞后一期豆油期货结算价,由图2可知,X1和X6对当月豆粕期货结算价影响较大,并具有正向作用。10.13557/j.cnki.issn1002-2813.2023.23.034.F002图2XGBoost模型的全局特征分析4结论本试验表明,BO-XGBoost模型测试集的MAPE和R2分别为0.03和0.892,精度较高。滞后一期豆粕期货收盘价为BO-XGBoost模型的关键预测因子,且滞后一期豆油期货结算价对豆粕期货月度结算价波动具有显著正向作用。基于XGBoost-Bayes算法的饲料原料价格预测模型能够准确预测豆粕期货结算价短期波动,具有良好的应用前景。

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读