clear
clc
close all
load('kelm.mat')
train_simu1kelm=train_simu1;
test_simu1kelm=test_simu1;
load('vmd-kelm.mat')
train_simu1vmd=train_simu1;
test_simu1vmd=test_simu1;
load('vmd-bwo-kelm.mat')
train_simu1bwovmd=train_simu1;
test_simu1bwovmd=test_simu1;
figure
plot(output_train)
hold on
plot(train_simu1kelm)
plot(train_simu1vmd)
plot(train_simu1bwovmd)
legend('真实值','预测值')
title('训练集')
legend('真实值','kelm','vmd-kelm','vmd-bwo-kelm')
xlabel('时间/5min')
ylabel('光伏发电功率/kW')
figure
plot(output_test )
hold on
plot(test_simu1kelm)
plot(test_simu1vmd)
plot(test_simu1bwovmd)
legend('真实值','预测值')
title('测试集')
legend('真实值','kelm','vmd-kelm','vmd-bwo-kelm')
xlabel('时间/5min')
ylabel('光伏发电功率/kW')
%%
reay = output_train; % 真实数据
prey = train_simu1kelm ; % 仿真数据
reay = reshape(reay,1,size(reay,1)*size(reay,2)); % 真实数据
prey = reshape(prey,1,size(prey,1)*size(prey,2)); % 仿真数据
num=length(reay);%统计样本总数
error=prey-reay; %计算误差
mae=sum(abs(error))/num; %计算平均绝对误差
me=sum((error))/num; %计算平均绝对误差
mse=sum(error.*error)/num; %计算均方误差
rmse=sqrt(mse); %计算均方误差根
r=min(min(corrcoef(prey,reay)));
R2=r*r;
disp('训练集')
disp('------------------------kelm----------------------------------')
disp(['平均绝对误差mae为: ',num2str(mae)])
disp(['平均误差me为: ',num2str(me)])
disp(['均方误差根rmse为: ',num2str(rmse)])
disp(['相关系数R2为: ',num2str(R2)])
reay = output_test; % 真实数据
prey = test_simu1kelm; % 仿真数据
reay = reshape(reay,1,size(reay,1)*size(reay,2)); % 真实数据
prey = reshape(prey,1,size(prey,1)*size(prey,2)); % 仿真数据
num=length(reay);%统计样本总数
error=prey-reay; %计算误差
mae=sum(abs(error))/num; %计算平均绝对误差
me=sum((error))/num; %计算平均绝对误差
mse=sum(error.*error)/num; %计算均方误差
rmse=sqrt(mse); %计算均方误差根
r=min(min(corrcoef(prey,reay)));
R2=r*r;
disp('测试集')
disp(['平均绝对误差mae为: ',num2str(mae)])
disp(['平均误差me为: ',num2str(me)])
disp(['均方误差根rmse为: ',num2str(rmse)])
disp(['相关系数R2为: ',num2str(R2)])
%%
reay = output_train; % 真实数据
prey = train_simu1vmd ; % 仿真数据
reay = reshape(reay,1,size(reay,1)*size(reay,2)); % 真实数据
prey = reshape(prey,1,size(prey,1)*size(prey,2)); % 仿真数据
num=length(reay);%统计样本总数
error=prey-reay; %计算误差
mae=sum(abs(error))/num; %计算平均绝对误差
me=sum((error))/num; %计算平均绝对误差
mse=sum(error.*error)/num; %计算均方误差
rmse=sqrt(mse); %计算均方误差根
r=min(min(corrcoef(prey,reay)));
R2=r*r;
disp('训练集')
disp('------------------------vmd-kelm----------------------------------')
disp(['平均绝对误差mae为: ',num2str(mae)])
disp(['平均误差me为: ',num2str(me)])
disp(['均方误差根rmse为: ',num2str(rmse)])
disp(['相关系数R2为: ',num2str(R2)])
reay = output_test; % 真实数据
prey = test_simu1vmd; % 仿真数据
reay = reshape(reay,1,size(reay,1)*size(reay,2)); % 真实数据
prey = reshape(prey,1,size(prey,1)*size(prey,2)); % 仿真数据
num=length(reay);%统计样本总数
error=prey-reay; %计算误差
mae=sum(abs(error))/num; %计算平均绝对误差
me=sum((error))/num; %计算平均绝对误差
mse=sum(error.*error)/num; %计算均方误差
rmse=sqrt(mse); %计算均方误差根
r=min(min(corrcoef(prey,reay)));
R2=r*r;
disp('测试集')
disp(['平均绝对误差mae为: ',num2str(mae)])
disp(['平均误差me为: ',num2str(me)])
disp(['均方误差根rmse为: ',num2str(rmse)])
disp(['相关系数R2为: ',num2str(R2)])
%%
reay = output_train; % 真实数据
prey = train_simu1bwovmd ; % 仿真数据
reay = reshape(reay,1,size(reay,1)*size(reay,2)); % 真实数据
prey = reshape(prey,1,size(prey,1)*size(prey,2)); % 仿真数据
num=length(reay);%统计样本总数
error=prey-reay; %计算误差
mae=sum(abs(error))/num; %计算平均绝对误差
me=sum((error))/num; %计算平均绝对误差
mse=sum(error.*error)/num; %计算均方误差
rmse=sqrt(mse); %计算均方误差根
r=min(min(corrcoef(prey,reay)));
R2=r*r;
disp('训练集')
disp('------------------------bwo-vmd-kelm----------------------------------')
disp(['平均绝对误差mae为: ',num2str(mae)])
disp(['平均误差me为: ',num2str(me)])
disp(['均方误差根rmse为: ',num2str(rmse)])
disp(['相关系数R2为: ',num2str(R2)])
reay = output_test; % 真实数据
prey = test_simu1bwovmd; % 仿真数据
reay = reshape(reay,1,size(reay,1)*size(reay,2)); % 真实数据
prey = reshape(prey,1,size(prey,1)*size(prey,2)); % 仿真数据
num=length(reay);%统计样本总数
error=prey-reay; %计算误差
mae=sum(abs(error))/num; %计算平均绝对误差
me=sum((error))/num; %计算平均绝对误差
mse=sum(error.*error)/num; %计算均方误差
rmse=sqrt(mse); %计算均方误差根
r=min(min(corrcoef(prey,reay)));
R2=r*r;
disp('测试集')
disp(['平均绝对误差mae为: ',num2str(mae)])
disp(['平均误差me为: ',num2str(me)])
disp(['均方误差根rmse为: ',num2str(rmse)])
disp(['相关系数R2为: ',num2str(R2)])
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于白鲸优化算法DBO优化的VMD-KELM光伏发电短期功率预测MATLAB代码 KELM的核参数g 和正则化系数C是影响预测性能的重要因素,程序采用白鲸优化算法优化对着两个参数进行优化,预测效果很好。对比了VMD-KELM、KELM算法,具有优越性,可自行替换数据。附带算法说明文件!
资源推荐
资源详情
资源评论
收起资源包目录
VMD-BWO-KELM光伏功率预测.rar (15个子文件)
VMD-BWO-KELM光伏功率预测
initialization.m 567B
KELM.m 2KB
getObjValue.m 2KB
VMD.m 4KB
vmd-bwo-kelm.mat 407KB
main_bwo_vmd_kelm.m 5KB
main_vmd_kelm.m 4KB
main.m 5KB
BWO.m 4KB
main_kelm.m 3KB
kernel_matrix.m 2KB
原始数据.xlsx 74KB
kelm.mat 216KB
vmd-kelm.mat 449KB
BWO-VMD-KELM说明.pdf 440KB
共 15 条
- 1
学习不好的电气仔
- 粉丝: 5429
- 资源: 280
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页