分类预测 | MATLAB实现基于LSTM-AdaBoost长短期记忆网络结合AdaBoost多输入分类预测
目录
预测效果
基本介绍
模型描述
程序设计
- 完整源码和数据获取方式:私信博主回复MATLAB实现基于LSTM-AdaBoost长短期记忆网络结合AdaBoost多输入分类预测;
%% 创建网络
layers = [ ...
sequenceInputLayer(12) % 输入层
lstmLayer(6, 'OutputMode', 'last') % LSTM层
reluLayer % Relu激活层
fullyConnectedLayer(4) % 全连接层
softmaxLayer % 分类层
classificationLayer];
%% 参数设置
options = trainingOptions('adam', ... % Adam 梯度下降算法
'MiniBatchSize', 100, ... % 批大小
'MaxEpochs', 1000, ... % 最大迭代次数
'InitialLearnRate', 1e-2, ... % 初始学习率
'LearnRateSchedule', 'piecewise', ... % 学习率下降
'LearnRateDropFactor', 0.1, ... % 学习率下降因子
'LearnRateDropPeriod', 700, ... % 经过700次训练后 学习率为 0.01 * 0.1
'Shuffle', 'every-epoch', ... % 每次训练打乱数据集
'ValidationPatience', Inf, ... % 关闭验证
'Plots', 'training-progress', ... % 画出曲线
'Verbose', false);
%% 训练模型
net = trainNetwork(p_train, t_train, layers, options);
%% 仿真预测
t_sim1 = predict(net, p_train);
t_sim2 = predict(net, p_test );
%% 数据反归一化
T_sim1 = vec2ind(t_sim1');
T_sim2 = vec2ind(t_sim2');
%% 性能评价
error1 = sum((T_sim1 == T_train)) / M * 100 ;
error2 = sum((T_sim2 == T_test )) / N * 100 ;