
%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
%% 导入数据
% 训练集—
P_train = xlsread('data','training set','B2:G191')';
T_train= xlsread('data','training set','H2:H191')';
% 测试集——44个样本
P_test=xlsread('data','test set','B2:G45')';
T_test=xlsread('data','test set','H2:H45')';
M = size(P_train,2);
% 测试集—200个
N = size(T_test,2);
outdim=1; %输出的维度
%% 数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);
[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);
%% 获取输入层节点、输出层节点个数
inputnum=size(p_test,1);
outputnum=size(t_test,1);
hiddennum=10;
%% 算法寻最优权值阈值
net=newelm(p_train,t_train,hiddennum,{'tansig','purelin'},'trainlm');% 建立模型
fobj = @(x) fun(x,inputnum,hiddennum,outputnum,net,p_train,t_train,p_test,t_test);
%初始化SSA参数
popsize=10; %初始种群规模
maxgen=20; %最大进化代数
dim=inputnum*hiddennum+hiddennum*hiddennum+hiddennum+hiddennum*outputnum+outputnum; %自变量个数
智能算法及其模型预测
该文利用神经网络进行数据建模,首先对训练集和测试集进行数据预处理,包括归一化操作。然后,通过极端学习机(ELM)建立隐藏层节点数为10的模型,并采用Levenberg-Marquardt算法进行训练。接着,使用遗传算法寻找最优权值和阈值。该方法旨在提高预测精度,适用于多输入单输出的预测问题。

503

被折叠的 条评论
为什么被折叠?



