gusucode.com > matlab优化的遗传算法来优化支持向量机的参数源码程序 > 优化的遗传算法来优化支持向量机的参数/遗传优化向量机/main.m

    clc
clear all
close all
rand('state',1)
    %% 导入数据
[MIXtrain,MIXtest,DATAtrain,DATAtest]=online_dataproduce();
p_train = MIXtrain';
t_train = DATAtrain';

p_test = MIXtest'; 
t_test = DATAtest';

%% 数据归一化
% 输入集
[pn_train,inputps] = mapminmax(p_train',0,1);
pn_train = pn_train';
pn_test = mapminmax('apply',p_test',inputps);
pn_test = pn_test';
%% SVM模型创建/训练

[bestc,bestg]=gaSVMcgForRegress(t_train,pn_train);

% 创建/训练SVM  
cmd = [' -t 2',' -c ',num2str(bestc),' -g ',num2str(bestg),' -s 0 -p 0.01'];%%核函数修改:改变-t后面的数字即可,1-4
%http://blog.sina.com.cn/s/blog_57a1cae80101bit5.html
model = svmtrain(t_train,pn_train,cmd);

%% SVM仿真预测
[Predict_1,error_1,tt1] = svmpredict(t_train,pn_train,model);
[Predict_2,error_2,tt2] = svmpredict(t_test,pn_test,model);

predict_1 =Predict_1;
predict_2 =Predict_2;
% 结果对比
result_1 = [t_train predict_1];
result_2 = [t_test predict_2];
%% 绘图   
figure
plot(1:length(t_train),t_train,'r-*',1:length(t_train),predict_1,'b:o')
grid on
legend('真实值','预测值')
xlabel('样本编号')
ylabel('信号')

string_1 = {'训练集预测结果对比';
           ['准确率 = ' num2str(error_1(1))]};
title(string_1)

figure
plot(1:length(t_test),predict_2,'r-*',1:length(t_test),t_test,'b:o')
grid on
legend('预测值','真实值')
xlabel('样本编号')
ylabel('信号')
string_2 = {'测试集预测结果对比';
           ['准确率 = ' num2str(error_2(1))]};
title(string_2)


% RE=(t_test-predict_2)./t_test;
% MSE=sum((t_test-predict_2).^2)/length(t_test);