%数据归一化
Xdata=mapminmax(x')'; % 按照行归一化[-1 1]
Ydata=mapminmax(y')';
[M,N]=size(x);
X_train=Xdata(1:round(3*M/4),:);X_test=Xdata(round(3*M/4)+1:M,:);
Y_train=Ydata(1:round(3*M/4),:);Y_test=Ydata(round(3*M/4)+1:M,:);
%参数寻优
[mse,bestc,bestg] = SVMcgForRegress(Y_train,X_train); % bestc=3.0314 bestg=0.0118
% 回归模型
model = svmtrain(Y_train,X_train,'-s 3 -t 2 -c 3.0314 -g 0.0118 -p 0.01');
% 模型预测
[py,mse] = svmpredict(Y_test,X_test,model);
% 返归一化
miny=min(y);maxy=max(y);
py=postmnmx(py,miny,maxy);
% 显示预测结果
Y_test=y(round(3*M/4)+1:M,:); % 原始数据
plot(1:length(py),Y_test,'o');
hold on
plot(1:length(py),py); % 预测数据
hold off
Y_test=y(round(3*M/4)+1:M,:); % 原始数据
plot(1:length(py),Y_test,'o');
hold on
plot(1:length(py),py); % 预测数据
hold off
Y_test=y(round(3*M/4)+1:M,:); % 原始数据
plot(1:length(py),Y_test,'o');
hold on
plot(1:length(py),py); % 预测数据
hold off
数据在附件里 |
|