极限学习机在回归拟合及分类中的应用

极限学习机在回归拟合及分类中的应用

极限学习机

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

算法及其流程图

在这里插入图片描述
在这里插入图片描述

代码及结果

数据集及详细代码可私聊笔者,非诚勿扰

回归拟合

% 极限学习机

% 基于近红外光谱的汽油辛烷值预测 
clear
clc
% 产生训练集/测试集
load spectra_data.mat
temp = randperm(size(NIR,1));
ptrain = NIR(temp(1:50),:)';
ttrain = octane(temp(1:50),:)';
ptest = NIR(temp(51:end),:)';
ttest =octane(temp(51:end),:)';
n = size(ptest,2);
% 数据归一化
[pntrain,inputs] = mapminmax(ptrain);
pntest = mapminmax('apply',ptest,inputs);
[tntrain,outputs] = mapminmax(ttrain);
tntest = mapminmax('apply',ttest,outputs);
% 创建/训练ELM
[IW,B,LW,TF,TYPE] = elmtrain(pntrain,tntrain,30,'sig',0);
% ELM仿真测试
tnsim = elmpredict(pntest,IW,B,LW,TF,TYPE);
tsim = mapminmax('reverse',tnsim,outputs);
% 结果对比
result = [ttest' tsim'];
e = mse(tsim-ttest);
n = length(ttest);
r2 = (n*sum(tsim.*ttest)-sum(tsim)*sum(ttest))^2/((n*sum((tsim).^2)-(sum(tsim))^2)*(n*sum((ttest).^2)-(sum(ttest))^2));
% 画图
figure(1)
plot(1:n,ttest,'r-*',1:n,tsim,'b:o')
grid on
legend('真实值','预测值')
xlabel('样本编号')
ylabel('辛烷值')
string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse= ',num2str(e),'r2^2',num2str(r2)]};
title(string)

在这里插入图片描述

分类

% 鸢尾花种类识别
clear
clc
% 产生训练集/测试集
load iris_data.mat
ptrain = [];
ttrain = [];
ptest = [];
ttest = [];
for i =1:3
    tempinput = features((i-1)*50+1:i*50,:);
    tempoutput = classes((i-1)*50+1:i*50,:);
    n = randperm(50);
    ptrain = [ptrain tempinput(n(1:40),:)'];
    ttrain = [ttrain tempoutput(n(1:40),:)'];
    ptest = [ptest tempinput(n(41:50),:)'];
    ttest = [ttest tempoutput(n(41:50),:)'];
end
% 创建训练ELM% ELM仿真测试
[IW,B,LW,TF,TYPE] = elmtrain(ptrain,ttrain,20,'sig',1);
tsim1 = elmpredict(ptrain,IW,B,LW,TF,TYPE);
tsim2 = elmpredict(ptest,IW,B,LW,TF,TYPE);
% 结果对比
result1 = [ttrain' tsim1'];
result2 = [ttest' tsim2'];
k1 = length(find(ttrain == tsim1));
n1 = length(ttrain);
accuracy1 = k1/n1*100;
disp(['训练集正确率accuracy=',num2str(accuracy1)])
k2 = length(find(ttest == tsim2));
n2 = length(ttest);
accuracy2 = k2/n2*100;
disp(['训练集正确率accuracy=',num2str(accuracy2)])
% 画图
figure(1)
plot(1:30,ttest,'bo',1:30,tsim2,'r-*')
grid on
xlabel('测试集样本编号')
ylabel('测试集样本类别')
string = {'测试集预测结果对比(ELM)';['(正确率accuracy=',num2str(accuracy2),'%)']};
title(string)
legend('真实值','ELM预测值')

在这里插入图片描述
在这里插入图片描述

数据集及详细代码可私聊笔者,非诚勿扰

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

原创小白变怪兽

帮助原创小白成为怪兽吧!

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

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

打赏作者

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

抵扣说明:

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

余额充值