喻 夏,周李涌
(内蒙古科技大学,内蒙古 包头 014010)
中国作为畜牧业大国,畜牧业在农业的占比越来越重,所以农畜产品对于国家经济影响也就越大。并且农畜产品的价格对于国民食物的消费结构产生了巨大的影响。将前期畜牧业向多档次、多元化方向大幅度转变,当前重要的是提高畜产品的产出率和商品率,完成畜牧业的商品型转变,达成消费者对畜产品的多方面需要。但由于牧民的文化程度较低,牧民不完善的放牧方式以及不合理的出售羊肉,即不是凭经验出售羊肉,就是随意出售羊肉,导致牧民的经济效益不高,并且导致草原荒漠化,还影响了政府的经济效益。因此,迫切需要提出一种更准确的羊肉价格预测方法,达到农户生产、销售和利润最大化。一个好的预测方式不仅能预测某些食物发展走势,还能测出其在某行业的相关价值与含义,并且我国是一个人口大国,人们对农畜产品的需求量也是巨大的。本文以苏尼特羊为研究材料,提出一种结合气象因子的新型数据模型来提高预测精度。当前价格预测领域主要包含房地产、股市、电价、油价等,由于人工智能的兴盛崛起,贝叶斯网络理论的研究结果以及应用也被更多人所关注,特别是不确定性问题领域的发现,21世纪始,中国着手动态网络理论的研究,但其在其他国家早就开始探究钻研,理论根基相对更稳定。该理论开始引人注意是在军事方面,相关评估包括设备损伤、场威胁及目标损伤[1]。慢慢地,动态贝叶斯在经济方面的原始价格、房价、股票和产量等相关方面也有了更广泛应用。MURPHY通过扩展SEM算法,深入分析动态贝叶斯网络,解出推断表达式以及DBN推导方法,合理说明其应用。IBM的ASHUTOSH等人基于语音的人机交互界面,表示出关于Ada Boost框架的DBN学习计算方法。马再兴等人基于动态贝叶斯网络对生猪的价格与产量进行了预测。以上算法的预测都取得了较好的效果。但并未有核PCA降维和动态贝叶斯网络模型相结合的预测方法,且应用于畜牧业。本文以苏尼特羊为研究对象,验证其可行性。
本次实验位置为内蒙古自治区锡林郭勒盟的苏尼特左旗某户牧民草场,当地较少的降雨量,并且天气为中温带半干旱、干旱大陆气候,雨季为6-8月份,均降雨量在150~200 mm,夏季日照时数长,冬季短且寒冷漫长,该地主产业为畜牧业,苏尼特羊主要在热季放养及在冷季喂精饲料。
试验数据选取于内蒙古自治区锡林郭勒盟苏尼特左旗的气象数据及苏尼特羊肉价格,其中以2009-2019年的数据作为测试集和训练集,以2020年的数据作验证集。由于苏尼特羊大多以放养为主。本文选择主要影响气象因素为降雨量、温度、气压、湿度、风速、PM2.5、光照度、辐射强度、PM10、蒸发量进行研究。为保证数据预测的过程当中数据无误且有效,减少数据的冗余,要先预处理相关数据。其中包含两个部分:(1)格式化。以逗号为分隔气象数据,并删除空白部分且将其格式化,对于日期类型数据的处理;(2)对缺失值、问题值和反复出现的数值处理[2]。为了避免由于数据输入问题而对预测产生的影响,对数据中问题值和缺少值进行处理解决目的是为避免由数据输入等问题导致对预测结果产生影响。通过观察相关实验数据,使用均值的方法可以插补那些指标的缺失值。
核PCA降维(Kernel PCA)又称为核主成分分析法,Kernel PCA是PCA的改进版之一,其可以使非线性可分的数据转变成到一个适合线性分类的新的低维子空间上,核PCA将数据转变换成到一个高维空间中可以通过非线性映射完成,经过操作PCA将其从高维空间映射到其他的低维空间中,并且区分样本使用线性分类器操作。使数据完成多方面分析且在最大程度上减少信息损坏缺失的情况[3]。核方法的特点使其成为处理非线性问题的常用方法。核PCA方法已经应用于数据挖掘的各个领域,如支持向量机、KLDA和KPCA。核主成分分析法(KPCA)是对PCA计算的非线性处理改进。在KPCA进行特征提取之前,通过核函数将原始数据映射到高维,从而使非线性原始数据可以在高维中线性表示。也就是说,它被映射到高维特征空间,在这样的高维空间,地图数据由同一PCA处理。核PCA降维步骤如下:
(1)对所有源数据进行去中心化后标准化后。
(2)通过核函数(kernel function)转换成一个新空间,也就是升维过程。
(3)计算核矩阵K[相似度矩阵]。
(4)然后再用PCA进行降维处理。
动态贝叶斯网络(Dynamic Bayesian Network,DBN)是一个基于概率论和影响图的动态模型,静态贝叶斯网络模型与隐马尔科夫模型的结合而成。不仅消除了其模型缺陷,也保留了其长处。既可以随着时间发生变化,又可以增添新的状态[4]。
动态贝叶斯网络描述了系统随时间变化的动态特征。动态贝叶斯网络是一个使用序列数据建模的过程。动态贝叶斯网络可以很好地用于观测其状态。这些状态在时间上有关联关系。分析这些特定的关联状态可以描述最终需要查询的事件状态。在时间维度上的动态贝叶斯网络有着前后相关性特征,可以有效地反映系统的动态特性。它是对事件过程的描述。由于动态贝叶斯网络技术的特点,它在工程中得到了广泛的应用。至今,动态贝叶斯网络完全可以很好地用于语音识别、目标跟踪、数据挖掘等领域。动态贝叶斯网络技术的理论基础是动态系统状态估计技术。其主要思想来自数学家高斯对天文观测中行星轨道预测的研究。在特定的工程领域,时间是一个重要的属性。系统的动态特性在时间维度上展开。随着时间的推移,系统将通过输出和输入参数的状态来反映系统的内部特性。
动态贝叶斯网络(DBN)是传统的贝叶斯网络(BN)在时间上的延展。DBN是一种有向无环图,描述了一个随时间变化的系统模型,反映了系统随时间变化的动态特性。它可以表示条件关系或者因果关系,可以用常识或专家知识构造。动态贝叶斯网络可以将事物之间的前因后果通过条件概率展现出来,这使得动态贝叶斯网络能够有效地对复杂问题进行建模。特别指出动态贝叶斯网络在建模方面具有很强的灵活性,可以应用连续变量和离散变量进行多种方式交错的创建数学模型。在训练过程中,观测变量分为连续观测变量和离散观测变量。动态贝叶斯网络是定向的循环模型。它是由时间片组成的,每个片包括自己的变量,如图1、图2所示。
图1 动态贝叶斯网络的初始状态
图2 动态贝叶斯网络的2DBN
动态贝叶斯网络可以表示为(B1,B→),变量B1可理解为先验的网络,以其表示起始状态,而B→则是转移网络。假设一DBN模型,x[1]上的联合概率用B1来表示,则B→表示x[1]与x[2]之间的转移概率P(x[t+1]|x[t]),则 x[1],…,x[t]上的联合概率表示为:
由此可知,动态贝叶斯网络可定义为(B1,B→),其中B1表示传统的贝叶斯网络,将其定义的状态变量p(Z1)的初始或先验状态情况分布,通常情况下,Zt=(Ut,Xt,Yt)表示模型的输入、输出以及隐藏变量。两个时间片的贝叶斯网络(2TBN)则用B→表示,它诠释了转移模型 p(Zt|Zt-1)如下:
其中Zit是时间t的第i个节点,且为Ut,Xt,Yt的分量。Pa(Zit)是Zit的父项,这与上一个时间片有关(在此问题下,该模型只限于一阶马尔科夫模型)。2TBN网络的首个时间片段中的节点无关联的参数。时间切片中在第二个节点可以发现此节点具有联合概率表。此过程结构不仅重复而且是静止的,所以时间切片在t=2,3,…时间点一直不变。这也说明想要完整的表达模型需要给到前两个切片。用此方法,可用有限的参数数量来建模无界的序列长度。通过展现2TBN网络即可最后得到长度为T的序列的联合概率分布:
通过将苏尼特羊肉价格作为当前研究的对象,选出十项影响苏尼特羊肉价格的相关气象因子进行分析研究,因为每一个指标都具有一些相关性,并且为了避免数据的冗余,所以要对指标进行核PCA降维,减少输入的变量数量同时也减少数据量,以完成增加预测效率的目标。核PCA降维可以实现很多非线性映射问题,动态贝叶斯网络模型可预测其价格变化,因此将输出变量为苏尼特羊肉价格,将气象因子作为输入变量。以此核PCA-DBN预测模型的构建完成。
核PAC降维的目的是可在压缩数据的过程当中让数据信息损失最小,这是对高维度数据处理的方式之一。通过对每个气象指标因子进行核PCA降维分析得到累积贡献率结果展示,如图3所示。
图3 累积贡献率
由图3可知,前5个核主成分的累积贡献率在85% 之上,即可将全部指标展示出来,所以选出前5个主要因素来表示动态贝叶斯网络的输入参数进行预测研究。
将苏尼特羊肉的价格设成输出参数,预测2020年中所有月份的羊肉价格。在本次预测网络模型中入参的前5个作为主成分指标。所以输入参数为5个,输出参数为1个,将2020年所有月份的指标数据作为测试集,2009-2019年整个全月份的指标数据作为训练集,通过反复训练显示,效果最佳的状态是入参个数为6时,展示效果模型如图4所示。
图4 模型预测结果
由于动态贝叶斯网络在训练中会出现细小的误差,并且影响因子的数据也是入参的一部分,所以预测得到的苏尼特羊肉价格和实际的价格之间会显示固定范围内的误差。通过图4也可以发现,价格的预测值可以高效地显示出苏尼特羊肉的价格在每个月的浮动变化。
在机器学习模型的效果评价中,预测误差的分析是重中之重。对于现有的误差测量技术,如果方法使用不当,会得出非常误导的结论。这些结论会误导模型设计者去设计一个过拟合的模型。过拟合是指训练后的模型对训练集拟合得很好,但对新样本集的预测效果很差。如何正确测量模型误差以避免此类问题,相对于预测模型来比较的话,更加准确地预测出正确的样本显得更为重要。因此,在测量误差时必须考虑到这一点。
将苏尼特羊肉价格作为输出参数,其未经核PCA降维的气象影响因子作为输入参数,建设动态贝叶斯网络模型进行预测,相关误差分析结果展示见表1。
表1 相对误差分析结果
将苏尼特羊肉价格的预测值与其真实值比对验证,可发现前面的均相对误差为4.83% ,未使用降维的均相对误差为10.23% ,显然核PCA-DBN具有比较高的预测精准度。
导致苏尼特羊肉价格变化的气象因子众多,本文通过使用核PCA降维的方法对其数据降维处理,减少了数据维度对于预测的影响,并增加了预测的效率。核PCA是对维数处理、解决非线性问题的一个高效便捷的方法。
由于对苏尼特羊肉价格的预测主要是通过影响气象因子作为入参数,但因为导致苏尼特羊肉价格的气象因子不止这一种,且收集到的影响因子仅能表示苏尼特羊肉价格其中某一部分的特性,所以也需要再进行详细的后续研究。
为了更好地给苏尼特左旗牧民带来更大的经济效益,要对其价格作出相关预测,通过分析影响价格的气象因素,调整放牧策略来达到利益最大化。本文通过使用核PCA-DBN模型对苏尼特羊肉的价格作出预测,研究结果显示此模型具有较高的精度和比较小的拟合误差。