%% 清空环境,准备数据
clear
clc
close all
load wndspd % 示例数据为风速(时间序列)数据,共144个样本
% 训练/测试数据准备(用前3天预测后一天),用前100天的数据做训练
train_input(1,:)=wndspd(1:97);
train_input(2,:)=wndspd(2:98);
train_input(3,:)=wndspd(3:99);
train_output=[wndspd(4:100)]';
test_input(1,:)=wndspd(101:end-3);
test_input(2,:)=wndspd(102:end-2);
test_input(3,:)=wndspd(103:end-1);
test_output=[wndspd(104:end)]';
% 数据归一化处理
[input_train,rule1]=mapminmax(train_input);
[output_train,rule2]=mapminmax(train_output);
input_test=mapminmax('apply',test_input,rule1);
output_test=mapminmax('apply',test_output,rule2);
%% %%%%%%%%%%%%%用ABC算法优化SVR中的参数c和g开
始%%%%%%%%%%%%%%%%%%%%
%% 参数初始化
NP=20; % 蜂群规模
FoodNumber=NP/2; % 蜜源(解)数量
limit=100; % 当有蜜源连续没被更新的次数超过limit时,该蜜源将被重新初始化
maxCycle=10; % 最大迭代次数
% 待优化参数信息
D=2; % 待优化参数个数,次数为c和g两个
ub=ones(1,D)*100; % 参数取值上界,此处将c和g的上界设为100
lb=ones(1,D)*(0.01); % 参数取值下界,此处将c和g的下界设为0.01
runtime=2; % 可用于设置多次运行(让ABC算法运行runtime次)以考察程序的稳健性
BestGlobalMins=ones(1,runtime); % 全局最小值初始化,这里的优化目标为SVR预测结果中的平均平
方误差(MSE),初始化为最差值1