赞
踩






MATLAB实现SSA-LSSVM麻雀算法优化最小二乘支持向量机多输入单输出。
Matlab实现SSA-LSSVM麻雀算法优化最小二乘支持向量机多变量回归预测
1.data为数据集,输入6个特征,输出一个变量。
2.MainSSA_LSSVMNN.m为程序主文件,其余为函数文件无需运行。
3.命令窗口输出MAE、MBE和R2,可在下载区获取数据和程序内容。
4.麻雀算法优化最小二乘支持向量机,优化RBF 核函数gam和sig。
注意程序和数据放在一个文件夹,运行环境为Matlab2018及以上.
麻雀搜索算法(sparrow search algorithm,SSA)是目前比较新型的优化算法,它能够解决一些特定的优化算法问题。该算法的提出是基于麻雀捕食和反捕食的行为。

整体的种群数量会随着适应度值的变化而进行调整,会越来越适应环境变化。而在这个群体中的部分个体有比较高的适应度值,会在搜寻的过程中优先获取猎物。

%% 清空环境变量 warning off % 关闭报警信息 close all % 关闭开启的图窗 clear % 清空变量 clc % 清空命令行 %% 划分训练集和测试集 M = size(P_train, 2); N = size(P_test, 2); %% 数据归一化 [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); %% 转置以适应模型 p_train = p_train'; p_test = p_test'; t_train = t_train'; t_test = t_test'; %% 参数设置 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] = SSA(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); %% 均方根误差 error1 = sqrt(sum((T_sim1' - T_train).^2) ./ M); error2 = sqrt(sum((T_sim2' - T_test ).^2) ./ N); %% 优化曲线 figure plot(curve, 'linewidth', 1.5); title('SSA-LSSVM ') xlabel('The number of iterations') ylabel('Fitness') grid on;
[1] https://blog.csdn.net/article/details/126072792?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/article/details/126044265?spm=1001.2014.3001.5502
[3] https://blog.csdn.net/article/details/126043107?spm=1001.2014.3001.5502
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。