用于回归问题的异常鲁棒极限学习机(ORELM附Matlab代码

该文提出了一种新的短期风速预测方法,结合最大相关最小冗余(MRMR)算法和离群鲁棒极限学习机(ORELM)。首先,MRMR用于选择相关性最高的风速属性特征;然后,通过ORELM建立预测模型,提高预测精度。实测数据验证显示,该方法具有高预测准确性,适用于风电并网的稳定性分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

​由于风速具有间歇性,随机性及波动性等特点,导致大规模风电并网对电力系统的安全,稳定运行带来严重影响.文章提出一种基于最大相关最小冗余(Maximum Correlation Minimum Redundancy,MRMR)的离群鲁棒极限学习机(Outlier Robust Extreme Learning Machine,ORELM)的短期风速预测新方法.首先分析影响风速的属性特征,采用MRMR算法来衡量不同风速属性特征与风速的相关性,进而确定风速属性特征的输入维度;然后对极限学习机(Extreme Learning Machine,ELM)进行优化,构建ORELM风速预测模型.最后以美国某大型风电场实测数据为依据进行风速预测,仿真结果表明该方法具有较高的预测精度.

⛄ 部分代码

=========================================================================

% Outlier-robust extreme learning machine, Version 2.0

%

% ----------------------------------------------------------------------

% Permission to use, copy, or modify this software and its documentation

% for educational and research purposes only and without fee is here

% granted, provided that this copyright notice and the original authors'

% names appear on all copies and supporting documentation. This program

% shall not be used, rewritten, or adapted as the basis of a commercial

% software or hardware product without first obtaining permission of the

% authors. The authors make no representations about the suitability of

% this software for any purpose. It is provided "as is" without express

% or implied warranty.

%----------------------------------------------------------------------

%

% This is an implementation of the algorithm for "SinC" function regression

%

% Please cite the following paper if you use this code:

%

% Zhang, Kai, and Minxia Luo. "Outlier-robust extreme learning machine for regression problems."

% Neurocomputing 151 (2015): 1519-1527.

%

%--------------------------------------------------------------------------

function [nn, acc_train] = elm_train(X, Y, nn)

% beta f(Wx+b) = y

tic;

ndata = size(X,2);

tempH = nn.W*X + repmat(nn.b,1,ndata);

switch lower(nn.activefunction)

    case{'s','sig','sigmoid'}

        H = 1 ./ (1 + exp(-tempH));

    case{'t','tanh'}

        H = tanh(tempH);

end

clear tempH;

switch(nn.method)

    case 'ELM'

        [beta] = regressor(H', Y', 0);

    case 'RELM'

        [beta] = regressor(H', Y', nn.C);

    case 'WRELM'

        [beta] = regressor(H', Y', nn.C);

        e = beta'*H - Y;

        %s = iqr(e)/(2*0.6745);

        %e = sum(abs(e),1);

        s = median(abs(e))/0.6745;

        w = weight_fun(e, nn.wfun, s);

        [beta] = regressor(repmat(sqrt(w'),1,size(H,1)).*H', repmat(sqrt(w'),1,size(Y,1)).*Y', nn.C);

    case 'ORELM'

        [beta] = regressor_alm(H', Y', nn.C, 20);

end

nn.time_train = toc;

nn.beta  = beta';

Y_hat    = nn.beta*H;

if ismember(nn.type,{'c','classification','Classification'})

    [~,label_actual]  = max(Y_hat,[],1);

    [~,label_desired] = max(Y,[],1);

    acc_train = sum(label_actual==label_desired)/ndata;

else

    normfro   = norm(Y-Y_hat,'fro');

    acc_train = sqrt(normfro^2/ndata);

%    acc_train = sqrt(mse(Y-Y_hat)); 

        ​end

nn.trainlabel  = Y_hat;

nn.acc_train   = acc_train;

⛄ 运行结果

⛄ 参考文献

[1]陈明帆, 宁光涛, 何礼鹏,等. 基于分位回归鲁棒极限学习机的短时负荷预测方法[J]. 水电能源科学, 2018, 36(10):4.

❤️ 关注我领取海量matlab电子书和数学建模资料

❤️部分理论引用网络文献,若有侵权联系博主删除      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值