【ORELM回归预测】离群鲁棒极限学习机ORELM回归预测【含Matlab源码 1441期】

本文介绍了ORELM(Outlier-RobustExtremeLearningMachine)在风速预测中的应用,使用MATLAB实现并比较了ELM、RELM、WRELM和ORELM的性能。实验结果显示ORELM在处理异常值时具有鲁棒性。
摘要由CSDN通过智能技术生成

一、运行结果

在这里插入图片描述

二、ORELM简介

理论知识参考:基于MRMR的ORELM的短期风速预测

三、部分源代码


clear all;clc;
addpath(genpath('./.'));
%rng('default');

%%%------------------------------------------------------------------------
%%%   Load Data
%%%------------------------------------------------------------------------

%[traindata,trainlabel,testdata,testlabel] = sinc_Huang;
[traindata,trainlabel,testdata,testlabel] = sinc_K(0.4);

%%%------------------------------------------------------------------------
%%%   Global Setting
%%%------------------------------------------------------------------------

nn.hiddensize     = 20;
method            = {'ELM','RELM','WRELM','ORELM'};
type              = {'regression','classification'};
nn.type           = type{1};
nn.inputsize      = size(traindata,1);
nn.activefunction = 's';
nn.orthogonal     = false;
fprintf('            method             |  Training Acc.  |    Testing Acc.   |   Training Time \n');

%%%------------------------------------------------------------------------
%%%   ELM / Original ELM
%%%------------------------------------------------------------------------

nn.method         = method{1};
nn                = elm_initialization(nn);
[nn, acc_train]   = elm_train(traindata, trainlabel, nn);
[nn1, acc_test]   = elm_test(testdata, testlabel, nn);
fprintf('      %19s      |      %.3f      |      %.5f      |      %.5f      \n',nn.method,acc_train,acc_test,nn.time_train);

%%%------------------------------------------------------------------------
%%%   RELM / Regularized ELM
%%%------------------------------------------------------------------------

nn.method         = method{2};
nn                = elm_initialization(nn);
nn.C              = 0.0001;
[nn, acc_train]   = elm_train(traindata, trainlabel, nn);
[nn2, acc_test]   = elm_test(testdata, testlabel, nn);
fprintf('      %19s      |      %.3f      |      %.5f      |      %.5f      \n',nn.method,acc_train,acc_test,nn.time_train);

%%%------------------------------------------------------------------------
%%%   WRELM / Weighted Regularized ELM
%%%------------------------------------------------------------------------

nn.method         = method{3};
nn.wfun           = '1';
nn.scale_method   = 1;
nn                = elm_initialization(nn);
nn.C              = 2^(-20);
[nn, acc_train]   = elm_train(traindata, trainlabel, nn);
[nn3, acc_test]   = elm_test(testdata, testlabel, nn);
fprintf('      %19s      |      %.3f      |      %.5f      |      %.5f      \n',nn.method,acc_train,acc_test,nn.time_train);

%%%------------------------------------------------------------------------
%%%   ORELM / Outlier-Robust ELM
%%%------------------------------------------------------------------------

nn.method         = method{4};
nn                = elm_initialization(nn);
nn.C              = 2^(-40);
[nn, acc_train]   = elm_train(traindata, trainlabel, nn);
[nn4, acc_test]   = elm_test(testdata, testlabel, nn);
fprintf('      %19s      |      %.3f      |      %.5f      |      %.5f      \n',nn.method,acc_train,acc_test,nn.time_train);


%%%------------------------------------------------------------------------
%%%   Plot
%%%------------------------------------------------------------------------
function [nn, acc_test] = elm_test(X,Y,nn)

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

Y_hat    = nn.beta*H;

if ismember(nn.type,{'c','classification','Classification'})
    [~,label_actual]  = max(Y_hat,[],1);
    [~,label_desired] = max(Y,[],1);
    acc_test = sum(label_actual==label_desired)/ndata;
else
    normfro   = norm(Y-Y_hat,'fro');
    acc_test = sqrt(normfro^2/ndata);
 %   acc_test = sqrt(mse(Y-Y_hat)); 
end
nn.testlabel  = Y_hat;
nn.acc_test   = acc_test;





 

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]周品.MATLAB 神经网络设计与应用[M].清华大学出版社,2013.
[4]陈明.MATLAB神经网络原理与实例精解[M].清华大学出版社,2013.
[5]方清城.MATLAB R2016a神经网络设计与应用28个案例分析[M].清华大学出版社,2018.
[6]王琦,关添升,秦本双.基于MRMR的ORELM的短期风速预测[j].可再生能源. 2018,36(01)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值