当前位置: 代码网 > 科技>人工智能>机器学习 > VMD-LSTM的数据回归预测(主要应用于风速,负荷,功率)

VMD-LSTM的数据回归预测(主要应用于风速,负荷,功率)

2024年08月01日 机器学习 我要评论
VMD-LSTM的数据回归预测(主要应用于风速,负荷,功率)

%% vmd-lstm预测
clc
clear all
close all
warning off
% restoredefaultpath
tic
%% 导入数据
ff=xlsread('windspeed.xls','b2:b1001'); 
ff=ff';
data=ff;
len=length(data);
f=data(1:len);

%--------- some sample parameters forvmd:对于vmd样品参数进行设置---------------
alpha = 2000;      % moderate bandwidth constraint:适度的带宽约束/惩罚因子
tau = 0;           % noise-tolerance (no strict fidelity enforcement):噪声容限(没有严格的保真度执行)
k = 7;             % modes:分解的模态数
dc = 0;            % no dc part imposed:无直流部分
init = 1;          % initialize omegas uniformly  :omegas的均匀初始化?
tol = 1e-7;         
%--------------- run actual vmd code:数据进行vmd分解---------------------------
[u, u_hat, omega] = vmd(f, alpha, tau, k, dc, init, tol);
%[m,~]=size(u);   %程序中omega就是中心频率,k为多少,分解的个数就为几个,
%omega就有几列,然后就每列的均值,程序里面有。
%% 浣滃浘
figure
subplot(size(u,1)+1,1,1);
plot(f,'k');grid on;
title('原始数据');
for i = 1:size(u,1)
    subplot(size(u,1)+1,1,i+1);
    plot(u(i,:),'k');
end

%% 预测模型
l=15; %嵌入维度
imf=u;
c=size(imf,1);
tre_result=[];
pre_result=[];
%% 对每个分量建模
for i=1:c
disp(['对第',num2str(i),'个分量建模'])
[x,y]=data_process(imf(i,:),l);
%归一化
[xs,mappingx]=mapminmax(x',0,1);x=xs';
[ys,mappingy]=mapminmax(y',0,1);y=ys';
%划分数据
n=size(x,1);
m=round(n*0.7);%前70%训练,对最后30%进行预测
xtrain=x(1:m,:)';
xtest=x(m+1:end,:)';
ytrain=y(1:m,:)';
ytest=y(m+1:end,:)';

numfeatures = size(xtrain,1);
numresponses = 1;
numhiddenunits = 200;
layers = [ ...
    sequenceinputlayer(numfeatures)
    lstmlayer(numhiddenunits)
    fullyconnectedlayer(numresponses)
    regressionlayer];

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com