优化预测基于matlab差分优化灰狼算法优化支持向量机SVM预测含Matlab源码 1576期.zip

Posted 紫极神光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了优化预测基于matlab差分优化灰狼算法优化支持向量机SVM预测含Matlab源码 1576期.zip相关的知识,希望对你有一定的参考价值。

一、混沌灰狼算法简介

1 Tent混沌反向学习策略
为保持种群多样性和使初始化种群个体尽可能均匀分布。在目前文献中,采用较多的是混沌映射Logistic,但它在[0,0.1]和[0.9,1]两个范围的取值概率较高,而且寻优速度受Logistic遍历不均匀性的影响,会降低算法效率。单梁等指出Tent映射比Logistic具有更好的遍历均匀性和更快的迭代速度。且在[0,1]间产生的混沌序列分布均匀。而Tent映射表达式如下:

笔者根据Tent映射的特性,在可行域中产生Tent映混沌序列,提出了Tent混沌反向初始化方法学习初始化策略,即利用Tent混沌序列产生初始解Xi,为每个初始解产生对应的反向解OPi=K(XdminXdmax)-Xi,其中K为[0,1]间的随机数。最后对两类解排序选择,将适应度值较优的前N个解作为初始种群的解,这有助于求解效率的提高与解质量的改善。

2 位置更新调整策略
在灰狼种群接近目标过程中,其位置更新方程式(12)表现出α、β和δ位置的同等重要性,却忽略了三者的不同特征,灰狼α的领导位置与最优解的所占比例在式(12)中没有得到很好的体现。本文采用适应度值去衡量个体重要性,对位置更新方程式(12)进行改进,采用式(15)进行位置更新:

3 混沌局部搜索策略
混沌具有相空间的遍历性和内在随机性,利用混沌序列的搜索算法可以在迭代中产生局部最优解的许多邻域点,进行优化搜索能够跳出局部最优。本文采用的Tent混沌搜索是以当前搜索到的灰狼群体的最优位置Xk=(xk1,xk2,…,xk D)为基础,利用Tent混沌搜索产生的最优解作为新的灰狼位置或灰狼种群的全局极值,使其跳出局部最优。假设[Xdmin,Xdmax]是搜索空间范围,Xdmin、Xdmax分别表示所有初始解中第d维向量的最小值和最大值。混沌搜索主要步骤如下:

二、部分源代码

tic % 计时
%% 清空环境导入数据
clear
clc
close all
format long
load wndspd
%% HGWO-SVR
% 训练/测试数据准备
x=wndspd;
embed=6;        % 用多少个来预测
test_size=12;   % 预测多少个数据
[input_train,output_train,input_test,output_test]=transfer(x,embed,1,1,1,length(x)-test_size);
input_train=input_train'; % 训练集输入 m行n列,m表示样本个数,n表示每次用多少个预测下1个
output_train=output_train'; % 训练集输出 m行1列
input_test=input_test'; % 测试集输入   p行n列,p表示预测多少个数据
output_test=output_test'; % 测试集输出 p行1列
para=[20,20,0.2,0.8,0.2];
% 分别表示:种群规模、最大迭代次数、缩放因子下界、缩放因子上界、交叉概率
[bestc,bestg,test_pre]=my_HGWO_SVR(para,input_train,output_train,input_test,output_test);

%% 打印参数选择结果
disp('打印选择结果');
str=sprintf('Best bestc = %g,Best bestg = %g',bestc,bestg);
disp(str)

%% 画图
err_pre=x(end-test_size+1:end)-test_pre;
figure('Name','测试数据残差图')
set(gcf,'unit','centimeters','position',[0.5,5,30,5])
plot(err_pre,'*-');
figure('Name','原始-预测图')
plot(test_pre,'*r-');hold on;plot(x(end-test_size+1:end),'bo-');
legend('预测','原始')
set(gcf,'unit','centimeters','position',[0.5,13,30,5])

%% 预测性能计算
result=[x(end-test_size+1:end),test_pre];
MAE=mymae(result(:,1),result(:,2));
MAPE=mymape(result(:,1),result(:,2));
MSE=mymse(result(:,1),result(:,2));

%% 显示程序运行时间
toc
function [X_train,Y_train,X_test,Y_test]=transfer(indata,lag_day,horizon,interval,start_train,end_train)

%   input   
%   indata           : N * 1 vector with the input of original data
%   lag                : 1 * 1
%   horizon         : 1 * 1
%   start_train     : 1 * 1
%   end_train       : 1 * 1
%   length_test     : 1 * 1

%  output

%    X_train              : x  for training 
%    Y_train              : y  for training 
%    X_test               : x  for testing
%    Y_test               : y  for testing

total_lag_day=lag_day+horizon-1;
input_node=ceil(lag_day/interval);
index=start_train;
train_size=end_train-start_train+1-total_lag_day;
for i=1:train_size
   orip(:,i)= indata(index:index+lag_day -1);
   T(i)=indata(index+total_lag_day,1);
   pointer=lag_day;
   for j=input_node:-1:1 
      P(j,i)=orip(pointer,i);
      pointer=pointer-interval;
   end
   index=index+1;
end
start_test=end_train+1;
start_test=start_test-total_lag_day;
index=start_test;
testsize=length(indata)-start_test+1-total_lag_day;
for i=1:testsize
   oritestp(:,i) = indata(index:index+lag_day -1);
   act(i)=indata(index + total_lag_day );
   pointer= lag_day;
   for j=input_node:-1:1
      testp(j,i)=oritestp(pointer,i);
      pointer=pointer-interval;
   end
   index=index+1;
end

X_train=P;
Y_train=T;
X_test=testp;
Y_test=act;

三、运行结果


四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]周品.MATLAB 神经网络设计与应用[M].清华大学出版社,2013.
[4]陈明.MATLAB神经网络原理与实例精解[M].清华大学出版社,2013.
[5]方清城.MATLAB R2016a神经网络设计与应用28个案例分析[M].清华大学出版社,2018.
[6]徐辰华,李成县,王尤军,林小峰.基于混沌灰狼优化算法的氧化铝质量指标预测模型[J].广西大学学报(自然科学版). 2016,41(06)

以上是关于优化预测基于matlab差分优化灰狼算法优化支持向量机SVM预测含Matlab源码 1576期.zip的主要内容,如果未能解决你的问题,请参考以下文章

优化预测基于matlab差分进化改进灰狼算法优化SVR预测含Matlab源码 1575期

LSSVM回归预测基于matlab灰狼算法优化最小支持向量机GWO-LSSVM数据预测含Matlab源码 2259期

LSSVM回归预测基于matlab灰狼算法优化最小支持向量机GWO-LSSVM数据预测含Matlab源码 2259期

SVM预测灰狼算法优化svm支持向量机预测matlab源码

SVM预测灰狼算法优化svm支持向量机预测matlab源码

SVM预测灰狼算法优化svm支持向量机预测matlab源码