一种基于PSO‑LSSVM算法的粮食产量预测方法与流程

文档序号:12366791阅读:778来源:国知局

本发明属于粮食产量预测领域,具体涉及一种基于PSO-LSSVM算法的粮食产量预测方法。



背景技术:

粮食产量的准确预测可以为政府决策提供依据,粮食产量数据是典型的小样本数据,易受到不确定性因子的影响,表现为一个复杂的非线性系统。

目前,国内外预测粮食产量的方法多种多样,主要包括回归分析法、时间序列方法和人工神经网络方法。回归分析法可对变量之间进行因果分析,将此方法运用到粮食产量预测时,能找到粮食产量的主要影响因子,但由于此方法不能将所有的影响因子进行充分的考虑,因此只适用于短期预测。时间序列方法计算耗时短,对历史数据的数量要求较低,能够反映出产量的连续变化。但该方法建立的模型大多是基于线性数据的模型,而粮食时间序列数据往往呈现为非线性特征,因此导致预测精度不高。人工神经网络方法是一种非线性预测方法,具有高度的并行处理和容错能力,目前应用较为广泛。但是,神经网络要求数据样本大,而粮食产量数据属于小样本数据,所以在预测过程中常出现结果过拟合,泛化能力不强等现象。

综上,现有的粮食产量预测方法都存在或大或小的问题,而提供一种预测精度高的粮食产量预测方法,对于粮食预测具有重要的意义。



技术实现要素:

本发明旨在提供一种预测精度高的基于PSO-LSSVM算法的粮食产量预测方法。

为解决上述技术问题,本发明提供了如下的技术方案:一种基于PSO-LSSVM算法的粮食产量预测方法,该方法依次包括如下步骤:

(1)获取已知年份的粮食产量和主要影响因子的值;

(2)对步骤(1)获取到的已知年份的粮食产量和主要影响因子的原始数据进行平滑处理;

(3)根据最小二乘支持向量机模型得出预测模型,其中为第n年的粮食产量,为第i年的影响因子的值,为第n年的影响因子的值;是拉格朗日乘子,b为变量值,为径向基核函数;

(4)通过迭代算法求解惩罚因子和核函数的宽度;

(5)求解拉格朗日乘子和变量值b;

(6)求解径向基核函数的值;

(7)将求解出的拉格朗日乘子、变量值b和径向基函数代入预测模型

,并用该模型计算即第n年的粮食产量的预测值;其中i为能查询到的粮食产量和影响因子值的年度,第n年主要影响因子已知,粮食产量为待预测的。

主要影响因子的得出方法为:根据粮食产量和影响因子的值,计算影响因子和粮食产量之间的关联度,对影响因子和粮食产量之间的关联度进行比较,其中关联度最大的影响因子为主要影响因子。

步骤(2)所述的,对步骤(1)中的粮食产量和主要影响因子进行平滑处理的方法为:

1)分别对粮食产量和主要影响因子的原始数据做差分处理;

2)根据步骤1)的差分处理,分别计算粮食产量和主要影响因子的波动平均值p和py;

3)得平滑处理后粮食产量和主要影响因子的值,分别用Lp-Lp1Yp-Yp1计算相邻两个年度粮食产量和主要影响因子值之间的波动值p1py1

对于粮食产量有以下三种情况:

第一种情况: p1>p,且Lp<Lp1,则令Lp1=Lp+p

第二种情况: p1>p,且Lp>Lp1,则令Lp1=Lp-p

第三种情况: p1<p,则Lp1= Lp1

对于主要影响因子的值有以下三种情况:

第一种情况: py1>py,且Yp<Yp1,则命Yp1=Yp+py

第二种情况: py1>py,且Yp>Yp1,则命Yp1=Yp-py

第三种情况: py1<py,则Yp1= Yp1

其中Lp为第n-m年度的粮食产量;Lp1n-m+1年度的粮食产量;Yp为第n-m年度主要影响因子的原始值;Yp1n-m+1年度主要影响因子的原始值。

通过迭代寻优的方法求解出惩罚因子和核函数的宽度:

步骤1,根据预测模型得出适应度函数为:式中,和分别为第i年粮食产量的实际值和预测值;和分别是训练样本和检验样本数;

步骤2,按照如下公式,更新粒子速度和位置;

其中,

式中,t为迭代次数,是非负数,称为惯性权值,控制粒子每一代速度更新有多少以前的速度保留下来。和是非负常数,称为加速因子。是粒子的速度,,是常数,由用户设定用来限制粒子的速度,是粒子的位置。和是介于[0,1]之间的随机数。和分别是根据训练后的LSSVM对于测试样本集得到的测试误差确定的当前个体最优值和当前种群最优值;

步骤3,对每次迭代后的结果进行分析,用该次迭代得到的当前适应度值和个体极值进行比较,如果>,则用替换掉;用它的适应度值和全局极值比较,如果>,则用代替掉,同时根据步骤3更新粒子的速度和位置;

步骤4,如果适应度函数值达到预测精度或者达到预设的最大迭代次数,则输出参数最优解,寻优结束,若未达到上述条件,就转到步骤(3)重新进行搜索。

拉格朗日乘子和变量值b的求解方法为:根据公式,求解出b,根据公式,求解出;其中,为1i矩阵的倒置,是主要影响因子组成的方阵,其中第i行i列的值为x i×x i ,为i阶单位矩阵,y i是第i年粮食产量的值; 为惩罚因子。

径向基函数的求解方法为:利用公式求解即可,其中,为第i年的影响因子的值,为第n年的影响因子的值。

通过以上技术方案,本发明的有益效果为:

1、本发明所述的预测模型通过将PSO算法和最小二乘支持向量机模型结合起来,同时对原始数据进行了平滑处理,从而使得预测精度有了明显的提升,对于提高粮食产量预测准确率有着重要的意义。

2、通过确定主要影响因子的值,对于本粮食产量的预测有了很大程度上的简化。

3、惩罚因子和核函数的宽度的求解方法中,通过迭代优化,从而得出最佳值,进而进一步提高预测模型的预测精度。

附图说明

图1为本发明预测方法流程图。

具体实施方式

一种基于PSO-LSSVM算法的粮食产量预测方法,如图1所示,该方法依次包括如下步骤:

(1)获取已知年份的粮食产量和主要影响因子的值,已知年份粮食产量和主要影响因子的值可以通过现有的文献记载得知。

其中判断影响因子是否是主要影响因子的方法为:根据粮食产量和影响因子,计算影响因子和粮食产量之间的关联度,其中和粮食产量关联度最大的影响因子为主要影响因子。影响因子和粮食产量之间的关联度的计算方法为成熟的现有技术。其中,影响因子和粮食产量之间的关联度的计算可参考申请号为“201510985352.1”的中国专利申请。

(2)对获取的已知年份的粮食产量及主要影响因子的原始数据进行平滑处理,平滑处理的方法为:

第一步,分别对粮食产量和主要影响因子的原始数据做差分处理;

第二步,根据步骤1)的差分处理,分别计算粮食产量的波动平均值p和主要影响因子的波动平均值py;

第三步,得到平滑处理后粮食产量和主要影响因子的值:用Lp-Lp1计算相邻两个年度粮食产量之间的波动值p1,用Yp-Yp1计算相邻两个年度主要影响因子值py1;其中Lp为第m年度的粮食产量;Lp1为m+1年度的粮食产量;Yp为第m年度主要影响因子的原始值;Yp1为m+1年度主要影响因子的原始值(m=1,2,3…n-2)。

对于粮食产量有以下三种情况:

第一种情况: 若p1>p,且Lp<Lp1,则命Lp1=Lp+p;

第二种情况: 若p1>p,且Lp>Lp1,则命Lp1=Lp-p;

第三种情况: 若p1<p,则Lp1= Lp1;

对于主要影响因子的值有以下三种情况:

第一种情况: 若py1>py,且Yp<Yp1,则命Yp1=Yp+py;

第二种情况: 若py1>py,且Yp>Yp1,则命Yp1=Yp-py;

第三种情况: 若py1<py,则Yp1= Yp1;

通过平滑处理减小粮食产量和主要影响因子的波动值,从而提高预测精度。

(3)根据最小二乘支持向量机模型得出预测模型,其中为第n年的粮食产量,为第i年的影响因子的值,为第n年的影响因子的值;是拉格朗日乘子,b为变量值,为径向基核函数;该预测模型是根据最小二乘法得出的。

(4)通过迭代算法求解惩罚因子和核函数的宽度;

惩罚因子和核函数的宽度的求解方法为:

通过迭代寻优的方法求解出惩罚因子和核函数的宽度:

步骤1,根据预测模型得出适应度函数为:式中,和分别为第i年粮食产量的实际值和预测值;和分别是训练样本和检验样本数;

步骤2,按照如下公式,更新粒子速度和位置;

其中,

式中,t为迭代次数,是非负数,称为惯性权值,控制粒子每一代速度更新有多少以前的速度保留下来。和是非负常数,称为加速因子。是粒子的速度,,是常数,由用户设定用来限制粒子的速度,是粒子的位置。和是介于[0,1]之间的随机数。和分别是根据训练后的LSSVM对于测试样本集得到的测试误差确定的当前个体最优值和当前种群最优值;

步骤3,对每次迭代后的结果进行分析,用该次迭代得到的当前适应度值和个体极值进行比较,如果>,则用替换掉;用它的适应度值和全局极值比较,如果>,则用代替掉,同时根据步骤3更新粒子的速度和位置;

步骤4,如果适应度函数值达到预测精度或者达到预设的最大迭代次数,则输出参数最优解,寻优结束,若未达到上述条件,就转到步骤(3)重新进行搜索。

对于随机数rand(1,1),为电脑自动生成的,在预测过程中不受人为影响,只要有已知的主要影响因子的值和粮食产量,就可以根据预测模型得出未知的粮食产品。

(5)求解拉格朗日乘子和变量值b,拉格朗日乘子和变量值b的求解方法为:根据公式,求解出b,根据公式(其中i=1,2,n-1),求解出;其中,为1i矩阵的倒置,是主要影响因子组成的方阵,其中第i行i列的值为x i ,x i是第i年主要影响因子的值,y i是第i年粮食产量的值; 为惩罚因子。

(6)求解径向基核函数的值,径向基函数的求解方法为:利用公式求解即可,其中,为第i年的影响因子的值,为第n年的影响因子的值,其中n为主要影响因子的值已知,粮食产量待预测的年份。其中的得出可参考申请号为“201510985352.1”的中国专利申请。

(7)将求解出的拉格朗日乘子、变量值b和径向基函数代入公式

,并用该模型计算第n年的预测值;其中i为能查询到的粮食产量和主要影响因子的值的年度,第n年的主要影响因子的值已知,粮食产量为待预测的。

根据以上步骤,对2011年、2012年以及2013年的粮食产量进行了预测,同时利用现有的LS-SVM、SVM和ARIMA模型对这三年的粮食产量也进行了预测,预测结果如下表1所示:

表1 粮食产量预测结果比较

根据上述预测结果,将真实值和上述预测结果进行了比较,其中预测误差如表2所示:

表2 平均相对误差比较

通过表1和表2可知,ARIMA预测模型的精度最低,平均相对误差为1.73%,SVM模型具有非线性优势,使得在预测精度上比ARIMA提高了一点,平均相对误差为1.56%;LSSVM由于需确定的模型参数比SVM少,较好地协调了模型的复杂化和泛化能力之间的关系,预测精度也得到明显提升;而PSO-LSSVM预测模型通过引入粒子群优化算法,找到LSSVM模型中的最佳参数,再次提高了模型精度,预测结果也显示了该模型的性能非常优越,平均相对误差为0.8%,本发明的预测方法通过将PSO-LSSVM预测模型用到的原始数据进行平滑处理,平均相对误差最小,预测效果也最佳。

本发明公开了一种基于PSO-LSSVM算法的粮食产量预测方法,通过该预测方法可以对粮食产量进行预测,该方法将PSO算法和最小二乘支持向量机模型结合起来,同时对原始数据进行了平滑处理,预测精度明显优于传统的LSSVM、SVM以及ARIMA模型,可以提高我国粮食产量的预测结果,对于粮食消费、种植和收购提供指导。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1