【MATLAB第43期】基于MATLAB的BO-NAR贝叶斯优化动态神经网络NAR时间序列股票预测模型

【MATLAB第43期】基于MATLAB的BO-NAR贝叶斯优化动态神经网络NAR时间序列股票预测模型

一、效果展示

【MATLAB第43期】基于MATLAB的BO-NAR贝叶斯优化动态神经网络NAR时间序列股票预测模型_第1张图片
【MATLAB第43期】基于MATLAB的BO-NAR贝叶斯优化动态神经网络NAR时间序列股票预测模型_第2张图片
【MATLAB第43期】基于MATLAB的BO-NAR贝叶斯优化动态神经网络NAR时间序列股票预测模型_第3张图片

【MATLAB第43期】基于MATLAB的BO-NAR贝叶斯优化动态神经网络NAR时间序列股票预测模型_第4张图片

二、模型介绍

1.数据情况

一列数据,499个值

ratio = 0.9;% 训练集比例
MaxEpochs = 600;% 最大训练次数 
% % 导入股票数据
xall= importdata('数据.xlsx');

2.优化参数

**贝叶斯优化7个超参数:

学习率
训练目标函数
动量值
归一方式
滑动窗口值
隐含层1神经元数
隐含层2神经元数**

适应度函数: mae

3.贝叶斯结构参数

贝叶斯参数:

'MaxTime',10*60*60, ...%10*60*60  训练最大时间
'Verbose',1,...
'NumSeedPoints',info(1),...%初始评估点数
'MaxObjectiveEvaluations',100,...%迭代次数
'ExplorationRatio',0.7,...%搜索倾向概率

4.NAR参数:

 net.trainParam.epochs = MaxEpochs ; % 600
        net.trainParam.goal = 1e-6;   %训练目标值
         net.trainParam.max_fail = 30; % 最大失败次数
               net.divideParam.trainRatio = 0.7;训练集划分
        net.divideParam.valRatio = 0.15;:验证集划分
        net.divideParam.testRatio = 0.15;%测试集划分

三、代码展示

clear all
ratio = 0.9;% 训练集比例
MaxEpochs = 600;% 最大训练次数 
NetOption = 'NarNet';% NET网络

% % 导入股票数据
xall= importdata('数据.xlsx');
Date=datetime(xall.textdata)';
data= xall.data';

numStepsTraining = round(ratio*numel(data));
indexTrain = 1:numStepsTraining;
dataTrain = data(indexTrain );
dateTrain = Date(indexTrain);

indexTest = numStepsTraining+1:size(data,2);
dataTest = data(indexTest);
dateTest = Date(indexTest);

 
    optimVars = [
        optimizableVariable('learningrate',[1e-5 1e-2],'Type','real','Transform',"log")
        optimizableVariable('performFcn',{'mse' 'mae' 'sse' 'msesparse'},'Type','categorical')
        optimizableVariable('mc',[5e-1 0.99],'Type','real',"Transform","log")
        optimizableVariable('processFcns',{'mapminmax' 'mapstd'},'Type','categorical')
        optimizableVariable('Lag',[5 20],'Type','integer')
        optimizableVariable('hiddenLayerSize1',[7 25],'Type','integer')
        optimizableVariable('hiddenLayerSize2',[7 25],'Type','integer')];

  
    BayesObject = bayesopt(ObjFcnSN,optimVars, ...
        'MaxTime',10*60*60, ...%10*60*60  训练最大时间
        'Verbose',1,...
        'NumSeedPoints',info(1),...%初始评估点数
        'MaxObjectiveEvaluations',100,...%迭代次数
        'ExplorationRatio',0.7,...%搜索倾向概率
  

    % 得到最佳参数
    optVars = bestPoint(BayesObject),
   

四、代码获取

后台**私信回复“43期”**即可获取下载链接

你可能感兴趣的:(matlab,贝叶斯,时间序列预测,股票价格预测,NAR)