tic;
close all;
clear;
clc;
%% 数据的提取和预处理
input=[8 1 1 60
8 1.5 2 75
8 2 3 90
12 1 2 90
12 1.5 3 60
12 2 1 75
16 1 3 75
16 1.5 1 90
16 2 2 60];
output=[99.80
102.56
112.09
108.30
146.24
103.78
126.81
96.63
113.20];
input=input';
output=output';
[inputn,inputps3] = mapminmax(input);
[outputn,outputps3] = mapminmax(output);
inputn_train=inputn(:,1:8);
outputn_train=outputn(1,1:8);
inputn_train=inputn_train';
outputn_train=outputn_train';
%% 选择回归预测分析最佳的SVM参数c&g
[bestmse,bestc,bestg] = gaSVMcgForRegress(outputn_train,inputn_train);
disp('打印选择结果');
str = sprintf( 'Best Cross Validation MSE = %g Best c = %g Best g = %g',bestmse,bestc,bestg);
disp(str);
%% 利用回归预测分析最佳的参数进行SVM网络训练
cmd = ['-c ', num2str(bestc), ' -g ', num2str(bestg) , ' -s 3 -p 0.01'];
model3 = svmtrain(outputn_train,inputn_train,cmd);
%% SVM网络回归预测
[predict,mse] = svmpredict(outputn_train,inputn_train,model3);
predict = mapminmax('reverse',predict',outputps3);
predict = predict';
% 打印回归结果
str = sprintf( '均方误差 MSE = %g 相关系数 R = %g%%',mse(2),mse(3)*50);
disp(str);
figure;
hold on;
plot(output(1:8),'-o');
plot(predict,'r-^');
legend('原始数据','回归预测数据');
hold off;
title('原始数据和回归预测数据对比','FontSize',12);
xlabel('实验号','FontSize',12);7
ylabel('提取量','FontSize',12);
grid on;
%%%
第一次发帖不知道地点对不对?
我想请问,为什么只有九组数据,支持向量机拟合效果这么差?求人指点,谢谢。
2011-7-19 00:29 上传
点击文件名下载附件
2.24 KB, 下载次数: 4297