%LS-SVMh回归测试程序代码模板
%清空变量空间
clc;clear;close all
format compact
%程序代码计时开始
tic;
%数据导入
load('FJ14SumN.mat')
%数据预处理
trainset=FJ14SumN(1:1600,1);
trainset_label=FJ14SumN(1:1600,2);
testset=FJ14SumN(1600:2000,1);
testset_label=FJ14SumN(1600:2000,2);
%LS-SVM模型参数初始化
type = 'function estimation';
kernel = 'RBF_kernel';
preprocess='original';
gam = 100;
sig2 =0.1;
%交叉验证优化参数
model=initlssvm(trainset,trainset_label,type,gam,sig2,kernel,preprocess);
costfun = 'crossvalidatelssvm';
costfun_args = {10,'mse'};
optfun = 'gridsearch';
model=tunelssvm(model,optfun,costfun,costfun_args)
%进行模型训练
model = trainlssvm(model);
%回归预测
predictlabel = simlssvm(model,testset);
testMAE = mae(abs(predictlabel-testset_label))
testmse=sum((predictlabel-testset_label).^2)/length(testset_label);
testrmse=sqrt(testmse)
% 结果作图
figure(1)
plot(predictlabel,'-kx','LineWidth',1,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','k',...
'MarkerSize',7)
hold on
plot(testset_label,'-.ko','LineWidth',1,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','w',...
'MarkerSize',7)
legend('预测功率','实际功率')
title('lssvm预测输出','fontsize',12)
ylabel('功率/kW','fontsize',12)
xlabel('时间/5min','fontsize',12)
% plot(1:length(testset_label),testset_label,'r-',1:length(predictlabel),predictlabel,'b--')
% title('秋季(红色为真实值,蓝色为预测值)')
% ylabel('功率/kW','fontsize',12)
% xlabel('时间/10min','fontsize',12)
%程序运行计时结束
toc;