基于基因表达式编程的模拟退火改进算法股票预测模型论文_杨迪

杨迪 辽宁石化职业技术学院 辽宁 锦州 121001

摘 要:本文以GEP为基础,引入模拟退火算法当中的Metropolis准则,并且根据实际情况对GEP与SA的操作算子加以改进,结合。这样可以在一定程度上保持物种的多样性,抑制“早熟”现象的发生。本文以此理论为基础,建立基于基因表达式编程的模拟退火改进算法股票预测模型(GEP-SA-Stock,GSS)。

关键词:基因表达式编程 模拟退火算法 时间序列 股票预测

本文讨论了两种基于GSS模型的构造方法,传统滑动窗口预测法和建立关于时间序列的微分方程法。前者找到在同一窗口大小内的前后数据间的函数关系,并使用该关系来进行预测;后者通过分析整个测试数据,建立关于时间序列的微分方程,从而进行预测。

一、GSS模型中相关参数的设计

1.适应度函数及提取。适应度函数是为了评价预测数据与真实数据的符合程度,直观地理解所挖掘函数模型的精度。在传统的GEP算法中,Candida提出了两种评价模型,采取利用绝对误差与相对误差进行评价。两者各有自身的不足。评价两组数据符合程度在统计学中主要采用相关系数法。针对GSS模型,引入统计学中的复相关系数(R),公式如下:

其中,y为变量y的平均值,称SST为总离差平方和。

由于GSS分别针对滑动窗口预测和微分方程预测建立了两种模型,所以在这里设计了两种提取函数适应度算法:

算法1(发现滑动窗口函数的适应度):

输入:z为时间序列数据,h为历史长度,L为未来长度,f为待评价的公式。

输出:公式f的适应度。

过程:

①从z开始,取长度为h+L的数据段;For每一个数据段g do。

④计算预测值a和真实值g的差别ε。

⑤带入评价函数计算适应度。

算法2(微分方程的适应度的发现):

输入:z为时间序列,z`为其一阶导数,h为历史长度,L为未来长度,f为待评价的公式。

输出:公式f的适应度。

步骤:For每个时间点t do。

①a0←[t,z(t),z'(t)];For i←1 to L do。

②以ai-1为初值条件,求解z"= f(t,z,z') 步,得到ai。

③计算预测值和真实值的差异ε。

④带入评价函数计算适应度。

2.基于基因表达式编程的模拟退火改进算法股票预测模型的建立。以上述算法为基础,结合传统GEP算法,建立GSS模型如下:

输入:最大进化代数MaxGen,降温参数α,种群规模n,训练数据Tr,测试数据Te,历史数据天数n, GEP进化时其他各参数值。

输出:挖掘模型(函数表达式),复相关系数。Begin。

(1)初始化当前运行代数,generation=0。

(2)初始化种群。

(3)利用适应度函数计算第0代种群的适应值。

(4)调用算法3,计算初始温度。While(generation<MaxGen) do。

(5)保留老一代个体。

(6)调用算法5.4进行模拟退火选择操作。

(7)遗传操作新一代个体:①复制(Replication);②变异(Mutation);③IS插串(IS Transposition)、RIS插串(RIS Transposition)、Gene插串(Gene Transposition);④1-点重组(One-Point Recombination)、2-点重组(Two-Point Recombination)、基因重组(Gene Recombination)。

(8)利用适应度函数计算遗传操作后的种群的适应度值;//调用算法1或算法2。

(9)保留最优个体。

(10)进行降温操作,T(new)=T(old)*α。

(11)更新遗传代数,generation++;End while。

(12)根据新种群,获得函数表达式。

(13)计算复相关系数。

(14)Return 复相关系数,函数表达式;End。

二、结语

本文将模拟退火算法的引入GEP中的选择操作,建立了基于滑动窗口预测法和微分方程两个股票预测模型,并分别给出了相应的测评适应度函数算法。GSS模型可在一定概率接受劣解,延缓早熟发生,增加趋于全局最优解的概率。同时GSS算法还具有自动获取初始温度功能,有效解决了传统模拟退火算法中初始温度确定的盲目性。

参考文献

[1]王超学 张星 马春森 张涛 基于协同进化基因表达式编程的函数发现研究[J].计算机工程与应用,2013,(17)。

[2]谢国强 基于支持向量回归机的股票价格预测[J].计算机仿真,2012,(04)。

论文作者:杨迪

论文发表刊物:《教育学文摘》2017年9月总第241期

论文发表时间:2017/9/20

标签:;  ;  ;  ;  ;  ;  ;  ;  

基于基因表达式编程的模拟退火改进算法股票预测模型论文_杨迪
下载Doc文档

猜你喜欢