支持向量回归机 matlab,求助支持向量机做回归

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;

%%%

第一次发帖不知道地点对不对?

我想请问,为什么只有九组数据,支持向量机拟合效果这么差?求人指点,谢谢。

ab1c7ee18da4dfd6bd0e53ac6dfdfdba.gif

2011-7-19 00:29 上传

点击文件名下载附件

2.24 KB, 下载次数: 4297

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值