基于PSO-CNN-BiLSTM的单变量时间序列股票预测

matlab R2023b以上

​1.数据集介绍

2.粒子群算法

粒子群优化算法(Particle Swarm Optimization,PSO)是一种基于群体智能的优化算法,由Kennedy和Eberhart于1995年提出。PSO源于对鸟群捕食行为的模拟,是一种进化计算技术。该算法通过群体中各个个体(称为粒子)的相互协作和信息共享来寻找最优解。

粒子群算法的基本概念

  • 粒子:每个粒子代表了一个潜在的解。在多维空间中,每个粒子的位置和速度都对应着解的候选值和变化率。

  • 群体:粒子群是一组粒子的集合。群体中的每个粒子通过相互通信来调整自己的位置和速度,以逐步逼近最优解。

算法流程

  1. 初始化:随机生成粒子群,设定每个粒子的初始位置和速度。

  2. 适应度评估:计算每个粒子的适应度值(fitness),即根据目标函数评估当前解的好坏。

  3. 更新个体最优和全局最优

  • 每个粒子记录自己经历过的最佳位置(个体最优,pBest)。

  • 在整个群体中记录当前的最佳位置(全局最优,gBest)。

  1. 更新速度和位置:根据以下公式更新每个粒子的速度和位置:

  2. 迭代:重复步骤2至4,直到满足终止条件(如达到最大迭代次数或解的变化小于预定阈值)。

3.CNN-BiLSTM网络

4.效果展示

5.代码获取

感兴趣的朋友可以关注最后一行

%  参数设置
options0 = trainingOptions('adam', ...                 % 优化算法Adam
    'MaxEpochs', 300, ...                            % 最大训练次数
    'GradientThreshold', 1, ...                       % 梯度阈值
    'InitialLearnRate', 0.01, ...         % 初始学习率
    'LearnRateSchedule', 'piecewise', ...             % 学习率调整
    'LearnRateDropPeriod',100, ...                   % 训练100次后开始调整学习率
    'LearnRateDropFactor',0.01, ...                    % 学习率调整因子
    'L2Regularization', 0.002, ...         % 正则化参数
    'ExecutionEnvironment', 'cpu',...                 % 训练环境
    'Verbose', 1, ...                                 % 关闭优化过程
    'Plots', 'none');                    % 画出曲线

% 网络训练
net0 = trainNetwork(Train_xNorm,Train_yNorm,lgraph0,options0 );

%% https://mbd.pub/o/bread/ZpmUlZ9t

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值