%% ?清空環(huán)境變量
warning off ? ? ? ? ? ? % 關(guān)閉報(bào)警信息
close all ? ? ? ? ? ? ? % 關(guān)閉開(kāi)啟的圖窗
clear ? ? ? ? ? ? ? ? ? % 清空變量
clc ? ? ? ? ? ? ? ? ? ? % 清空命令行
tic
%% ?導(dǎo)入數(shù)據(jù)
P_train = xlsread('data','training set','B2:G191')';
T_train= xlsread('data','training set','H2:H191')';
% 測(cè)試集——44個(gè)樣本
P_test=xlsread('data','test set','B2:G45')';
T_test=xlsread('data','test set','H2:H45')';
%% ?劃分訓(xùn)練集和測(cè)試集
M = size(P_train, 2);
N = size(P_test, 2);
%% ?數(shù)據(jù)歸一化
[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);
%% ?轉(zhuǎn)置以適應(yīng)模型
p_train = p_train'; p_test = p_test';
t_train = t_train'; t_test = t_test';
%% ?參數(shù)設(shè)置
fun = @getObjValue; ? ?% 目標(biāo)函數(shù)
dim = 2; ? ? ? ? ? ? ? % 優(yōu)化參數(shù)個(gè)數(shù)
lb ?= [0.01, 0.01]; ? ?% 優(yōu)化參數(shù)目標(biāo)下限
ub ?= [ 100, ?100]; ? ?% 優(yōu)化參數(shù)目標(biāo)上限
pop = 10; ? ? ? ? ? ? ?% 種群數(shù)量
Max_iteration = 20; ? % 最大迭代次數(shù) ??
%% ?優(yōu)化算法
[Best_score,Best_pos, curve] = PSO(pop, Max_iteration, lb, ub, dim, fun);?
%% ?獲取最優(yōu)參數(shù)
bestc = Best_pos(1, 1); ?
bestg = Best_pos(1, 2);?
%% ?建立模型
cmd = [' -t 2 ', ' -c ', num2str(bestc), ' -g ', num2str(bestg), ' -s 3 -p 0.01 '];
model = svmtrain(t_train, p_train, cmd);文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-433411.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-433411.html
到了這里,關(guān)于粒子群算法PSO優(yōu)化支持向量機(jī)(PSO-SVM)的數(shù)據(jù)回歸預(yù)測(cè) matlab代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!