%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
%% 导入数据
f = xlsread('windspeed.xls','Sheet1','B2:B1001');
[x,y]=data_process(f,12); %步长为12
n=size(x,1);
m=round(n*0.7); %前70%训练,对最后30%进行预测
P_train=x(1:m,:)';
T_train=y(1:m,:)';
P_test=x(m+1:end,:)';
T_test=y(m+1:end,:)';
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; %自变量个数
智能算法及其模型预测