失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 回归预测 | MATLAB实现PSO-LSSVM粒子群算法优化最小二乘支持向量机多输入单输出

回归预测 | MATLAB实现PSO-LSSVM粒子群算法优化最小二乘支持向量机多输入单输出

时间:2020-12-16 21:44:13

相关推荐

回归预测 | MATLAB实现PSO-LSSVM粒子群算法优化最小二乘支持向量机多输入单输出

回归预测 | MATLAB实现PSO-LSSVM粒子群算法优化最小二乘支持向量机多输入单输出

目录

回归预测 | MATLAB实现PSO-LSSVM粒子群算法优化最小二乘支持向量机多输入单输出预测效果基本介绍模型描述程序设计参考资料

预测效果

基本介绍

MATLAB实现PSO_LSSVM粒子群算法优化最小二乘支持向量机多输入单输出。

Matlab实现PSO-LSSVM粒子群算法优化最小二乘支持向量机多变量回归预测

1.为数据集,输入6个特征,输出一个变量。

2.PSO_LSSVM.m为主程序主文件,其余为函数文件无需运行。

3.命令窗口输出MAE、MSE、R2、RMSEP和RPD,可在下载区获取数据和程序内容。

4.粒子群算法优化最小二乘支持向量机,优化RBF 核函数gam和sig。

注意程序和数据放在一个文件夹,运行环境为Matlab及以上.

模型描述

LSSVM参数优化问题没有确定或通用的共识方法。由于智能算法在预测模型参数的选取确定方面具有稳健性和通用性,预测模型参数最优化过程中主要采用了遗传算法、果蝇优化算法、萤火虫算法、粒子群算法(PSO)、网格搜索算法、神经网络等智能算法。粒子群算法不断调整自身和种群最优位置关系,具有更强寻优能力。因此,为进一步得到可靠的模型参数,可沿用粒子群算法进行尝试验证。

程序设计

完整程序和数据下载方式1(资源处直接下载):MATLAB实现PSO-LSSVM粒子群算法优化最小二乘支持向量机多输入单输出完整程序和数据下载方式2(订阅《智能学习》专栏,同时获取《智能学习》专栏收录程序6份,数据订阅后私信我获取):MATLAB实现PSO-LSSVM粒子群算法优化最小二乘支持向量机多输入单输出

%% 参数设置pop = 5; % 种群数目Max_iter = 50; % 迭代次数dim = 2;% 优化参数个数lb = [10, 10]; % 下限ub = [1000, 1000]; % 上限%% 优化函数fobj = @(x)fitnessfunclssvm(x, p_train, t_train);%% 优化[Best_pos, Best_score, curve] = PSO(pop, Max_iter, lb, ub, dim, fobj);%% LSSVM参数设置type = 'f';% 模型类型 回归kernel= 'RBF_kernel'; % RBF 核函数proprecess = 'preprocess'; % 是否归一化%% 建立模型gam = Best_score(1); sig = Best_score(2);model = initlssvm(p_train, t_train, type, gam, sig, kernel, proprecess);%% 训练模型model = trainlssvm(model);%% 模型预测t_sim1 = simlssvm(model, p_train);t_sim2 = simlssvm(model, p_test);%% 数据反归一化T_sim1 = mapminmax('reverse', t_sim1, ps_output);T_sim2 = mapminmax('reverse', t_sim2, ps_output);%% 定义粒子群算法参数% N 种群 T 迭代次数 %% 随机初始化种群D=dim; %粒子维数c1=1.5; %学习因子1c2=1.5; %学习因子2w=0.8; %惯性权重Xmax=ub;%位置最大值Xmin=lb;%位置最小值Vmax=ub;%速度最大值Vmin=lb;%速度最小值%%%%%%%%%%%%%%%%%%初始化种群个体(限定位置和速度)%%%%%%%%%%%%%%%%x=rand(N,D).*(Xmax-Xmin)+Xmin;v=rand(N,D).*(Vmax-Vmin)+Vmin;%%%%%%%%%%%%%%%%%%初始化个体最优位置和最优值%%%%%%%%%%%%%%%%%%%p=x;pbest=ones(N,1);for i=1:Npbest(i)=fobj(x(i,:)); end%%%%%%%%%%%%%%%%%%%初始化全局最优位置和最优值%%%%%%%%%%%%%%%%%%g=ones(1,D);gbest=inf;for i=1:Nif(pbest(i)<gbest)g=p(i,:);gbest=pbest(i);endend%%%%%%%%%%%按照公式依次迭代直到满足精度或者迭代次数%%%%%%%%%%%%%for i=1:Tifor j=1:N%%%%%%%%%%%%%%更新个体最优位置和最优值%%%%%%%%%%%%%%%%%if (fobj(x(j,:))) <pbest(j)p(j,:)=x(j,:);pbest(j)=fobj(x(j,:)); end%%%%%%%%%%%%%%%%更新全局最优位置和最优值%%%%%%%%%%%%%%%if(pbest(j)<gbest)g=p(j,:);gbest=pbest(j);end%%%%%%%%%%%%%%%%%跟新位置和速度值%%%%%%%%%%%%%%%%%%%%%v(j,:)=w*v(j,:)+c1*rand*(p(j,:)-x(j,:))...+c2*rand*(g-x(j,:));x(j,:)=x(j,:)+v(j,:);%%%%%%%%%%%%%%%%%%%%边界条件处理%%%%%%%%%%%%%%%%%%%%%%if length(Vmax)==1for ii=1:Dif (v(j,ii)>Vmax) | (v(j,ii)< Vmin)v(j,ii)=rand * (Vmax-Vmin)+Vmin;endif (x(j,ii)>Xmax) | (x(j,ii)< Xmin)x(j,ii)=rand * (Xmax-Xmin)+Xmin;endend elsefor ii=1:Dif (v(j,ii)>Vmax(ii)) | (v(j,ii)< Vmin(ii))v(j,ii)=rand * (Vmax(ii)-Vmin(ii))+Vmin(ii);endif (x(j,ii)>Xmax(ii)) | (x(j,ii)< Xmin(ii))x(j,ii)=rand * (Xmax(ii)-Xmin(ii))+Xmin(ii);endendendend%%%%%%%%%%%%%%%%%%%%记录历代全局最优值%%%%%%%%%%%%%%%%%%%%%Convergence_curve(i)=gbest;%记录训练集的适应度值

参考资料

[1] /article/details/126072792?spm=1001..3001.5502

[2] /article/details/126044265?spm=1001..3001.5502

如果觉得《回归预测 | MATLAB实现PSO-LSSVM粒子群算法优化最小二乘支持向量机多输入单输出》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。