✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
针对当前智能算法对股票市场预测精度不高的问题,提出使用布谷鸟算法优化神经网络(CS-BP)的方法,对股票市场进行预测.并与粒子群算法优化神经网络模型(PSO-BP)和遗传算法优化神经网络模型(GA-BP)的测试结果进行比较.通过对SZ300091(金通灵)日线的收盘价数据回测分析看出,布谷鸟算法优化神经网络模型明显优于这两种算法,能有效对股票市场进行预测,对于30天的预测精度约为98.633%。
布谷鸟算法是英国剑桥大学著名学者 Yang 和 Deb 于 2009年根据布谷鸟的繁殖特征和飞行提出的一种新型启发式优化算法。学者运用了大量的函数进行测试证明该算法在某些方面优于粒子群算法和遗传算法,优势体现在: 全局搜索能力强、收敛速度快、所含参数少、通用性和鲁棒性更好等。布谷鸟算法是通过布谷鸟特殊的繁殖方式和飞行演变而来的。其将自己的鸟蛋产在别的宿主鸟的巢穴里进行孵化,如果布谷鸟这一行为被宿主鸟当场发现,就会出现激烈的冲突; 如果布谷鸟将蛋产完后宿主发现蛋并非自己的,则会将这个蛋或巢穴直接放弃。因此布谷鸟产蛋一般会选择刚刚产完蛋的巢穴进行产蛋,这样一旦布谷鸟的蛋被保留下来,则通常情况下布谷鸟蛋会比其余鸟蛋先孵化出来。而布谷鸟新幼体又有本能会将其余鸟蛋推出巢穴之外,这样宿主鸟就会将布谷鸟抚养长大。另 外,许多学者研究发现许多动物和昆虫的飞行行为都具有飞行的特征[16 - 19]。如果蝇飞行过程中突然转 90°弯,如 Ju’hoansi的狩猎行为等行为,都符合 飞行的特征。Yang 提出的布谷鸟算法,是基于以下三种假设的: ( 1) 每只布谷鸟一次只产一个蛋,同时随机选择鸟巢产蛋; ( 2) 最好鸟巢中的高质量的蛋会被保留并孵化出下一代; ( 3) 宿主发现外来鸟蛋的概率 ,一旦发现,宿主会将这个蛋或巢穴直接放弃。以此为前提,布谷鸟算法位置更新公式如下:
⛄ 部分代码
clc
clear
%读取数据
load data
z=data';
n=length(z);
for i=1:6;
sample(i,:)=z(i:i+n-6);
end
%% BP网络训练
%网络进化参数
net.trainParam.epochs=100;
net.trainParam.lr=0.1;
%net.trainParam.goal=0.00001;
%网络训练
[net,per2]=train(net,inputn,outputn);
%% BP网络预测
%数据归一化
inputn_test=mapminmax('apply',input_test,inputps);
an=sim(net,inputn_test);
test_simu=mapminmax('reverse',an,outputps);
error=test_simu-output_test
E=mean(abs(error./output_test))
plot(output_test,'g*')
hold on;
plot(test_simu,'-o')
title('布谷鸟算法优化BP神经网络实际值和预测值对比','fontsize',10)
legend('实际值','预测值')
xlabel('时间')
ylabel('比较值')
⛄ 运行结果
⛄ 参考文献
[1]BP公司. BP预测未来20年全球能源走势——根据《BP 2030年世界能源展望》的最新预测,未来20年全球能源增长主要集中于中国,印度.俄罗斯和巴西等新兴经济体[J]. 世界石油工业, 2011(2):7.