QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1912|回复: 0
打印 上一主题 下一主题

ELM的回归拟合——基于近红外光谱的汽油辛烷值预测鸢尾花种类识别

[复制链接]
字体大小: 正常 放大

1171

主题

4

听众

2781

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:# H8 J6 I2 S+ s# U+ J
4 @% |: ~/ y& `
1.数据加载和划分:
! t3 Z& Y- X9 H: ]& ~) T9 f2 N: w' O) V3 m2 w" I
2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。. j: M7 p  e3 a$ ^
3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat
    - [' [# H* G- R' r6 G# D  G& j) M\" b8 h

  2. * D' K1 G! e% `8 h. U3 D
  3. temp = randperm(size(NIR,1));
    ! N5 J/ g1 |\" H+ z/ \# f. ~
  4. / Y+ f. n8 v8 r+ l\" Q) r7 |6 C5 _
  5. P_train = NIR(temp(1:50),:)';$ D& f& e8 N+ J: i2 `) r; [

  6. * a1 D\" g/ r' t/ H& V  z
  7. T_train = octane(temp(1:50),:)';
    ( t$ M) E- D0 i2 W3 P/ H

  8. / K/ _* M8 ~- {+ I$ X  [
  9. P_test = NIR(temp(51:end),:)';
    0 N\" S0 L/ Y\" B4 Y+ ^* e1 S7 c( {
  10. % ?2 k) Y4 g& N+ ^\" N2 [3 K
  11. T_test = octane(temp(51:end),:)';\" O6 W$ `% N4 P6 v- j; X

  12. 7 j+ v. V) k* u+ ~
  13. N = size(P_test,2);
复制代码
4.数据归一化:8 {( F, G) E9 U8 A/ l7 J. Q

% P- h; A5 A' f$ u4 u5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);
    ( M+ D9 |( \9 J8 |+ v
  2. + S0 j/ `7 ]! \9 }) s8 q
  3. Pn_test = mapminmax('apply',P_test,inputps);# l' o, u5 l) C8 `% R

  4. # U0 Z9 C# N4 o) J1 |+ i
  5. [Tn_train,outputps] = mapminmax(T_train);
    ' _8 d: {1 |8 O0 ^% s# R
  6. / W7 p9 A* f' ^# t3 u
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:
) T  F/ B6 K$ h; E- u9 f$ [
) H9 P$ E4 K- `% ~! l3 `
8 X- Y! ?" @# H1 p5 s7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:" s0 |7 q: L& f0 l% s( k2 `: Q
9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);; d8 ]3 t. O# ]8 v5 }. z+ }
  2. 8 R; v$ `/ U* c1 z' O/ V  V0 c+ X& T
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:( z$ k9 D% U" v6 G* F# m* S" a* i
11.将真实值和预测值组合成一个矩阵 result。
2 V0 i% U* v6 ^0 Z- M12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];4 u( r+ n% o- l7 C+ l

  2. ( T$ I: p' y5 a' m# B7 e7 J
  3. E = mse(T_sim - T_test);: g/ T. S! q1 r$ u' t, B

  4. ; ^- y$ z* ~5 \) Z& y5 x* t3 C# u
  5. N = length(T_test);: X- j: A; J$ h9 D! ]* S& s& m

  6. ' r) h  B; Y  G
  7. R2 = (N * sum(T_sim .* T_test) - sum(T_sim) * sum(T_test))^2 / ((N * sum((T_sim).^2) - (sum(T_sim))^2) * (N * sum((T_test).^2) - (sum(T_test))^2));
复制代码
13.结果可视化:) T, A/ o$ N. r& V: X
14.绘制真实值和预测值的对比图。+ S4 F, q; ~5 V, d! K1 k  K9 K* R
15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)7 M! Z) @3 U7 i8 R
  2. ( C\" N/ l. C$ q& V2 Q
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')) r6 g; [# Q! L# Q6 e

  4. % M2 {+ s! p0 Y; \
  5. grid on\" ^& g4 ?6 H- d+ V9 R
  6. 6 U5 x: u+ h( K2 a6 i) f
  7. legend('真实值','预测值')
    3 M8 c1 I$ L9 ?
  8. 1 |( Y6 V\" z/ u5 ]' X
  9. xlabel('样本编号'), Q# c: C\" e' l
  10. $ K+ a7 Z7 V8 M9 K+ D
  11. ylabel('辛烷值')\" d  p; D/ E+ R
  12. ' p+ P. `3 f) m; F$ u
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};! k2 x8 M+ n, t- y% e
  14. 3 d/ {2 k\" X4 |: a. @
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。+ f- }9 m( l- U  K

0 M7 S3 s2 l7 ~% \3 F VeryCapture_20231122173210.jpg # C& U: n3 r& m7 ?1 C/ e6 `
! y! H0 `$ n( Z0 M, O

chapter30 极限学习机的回归拟合及分类——对比实验研究.rar

171.96 KB, 下载次数: 0, 下载积分: 体力 -2 点

售价: 2 点体力  [记录]  [购买]

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2025-6-27 08:32 , Processed in 0.407526 second(s), 54 queries .

回顶部