QQ登录

只需要一步,快速开始

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

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

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

1198

主题

4

听众

2978

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:
; P; I, |4 [, e. x
# n2 C! K- y" i* M1 \1.数据加载和划分:
; u7 Y8 {" k+ M% E' K
! `8 `# j9 P9 {9 T2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。
7 d# F, t  k1 E9 n( A. f8 g% }3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat  c  s7 U) Z, Y\" D

  2. \" o# S4 P% l2 e/ Y* R0 d7 d
  3. temp = randperm(size(NIR,1));
    3 l0 B  R. S) v( c9 m
  4. 8 m/ {  r3 z  l$ h5 _1 c
  5. P_train = NIR(temp(1:50),:)';
    ) z/ h\" Z& ]! ]

  6. $ G: G: Z, R. ^6 K
  7. T_train = octane(temp(1:50),:)';
    2 i4 c  G0 p) q$ W% C1 ?( L5 b) H1 I

  8. ' F( g* ], s6 e' L
  9. P_test = NIR(temp(51:end),:)';! I  h8 A6 w8 W0 O. N) g

  10. \" u: c, G. Y1 J; T
  11. T_test = octane(temp(51:end),:)';) d$ U& [5 S# g) y- \% Q) i8 S
  12. . Z$ j% a( [7 O0 B- `( s3 M
  13. N = size(P_test,2);
复制代码
4.数据归一化:
5 C& O, U/ v. o+ I# G5 n' `0 `3 G
5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);/ J  @( L0 N6 A4 v) U* Y: [, A: C( K  Y

  2. 1 w$ d/ F. r) O' L
  3. Pn_test = mapminmax('apply',P_test,inputps);
    ) A) s; o; f2 i# H9 U: n2 h9 n
  4. ( G7 P5 @; u) R- o
  5. [Tn_train,outputps] = mapminmax(T_train);: c\" A: z4 j  U) d3 m9 w4 Y

  6. % h: T5 D$ X3 M' k- N# b3 W  U
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:/ ]- O) p2 v& G0 b. G8 b  j

. c, |: C" e2 z1 V) Z6 N; Z* K9 Z& h$ \' z4 [3 l/ P# y$ j* B
7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:9 u$ ?3 C! z5 L+ i5 k- L
9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);! ~; s! q1 ~: Z7 M( y! [
  2. ) ~; m, P1 z\" N8 N
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:
, I7 P2 n1 ~, Y7 g11.将真实值和预测值组合成一个矩阵 result。
% A, U  S0 ~7 {( W! N4 u9 x12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];
    7 {' A: L. q- p9 \

  2. ( {* [, E. t$ v3 u0 W% R2 t
  3. E = mse(T_sim - T_test);
    2 b1 V+ c$ j8 i0 _\" ^; t2 E0 Q
  4. 3 V4 }3 W/ r) ^
  5. N = length(T_test);
    ( c/ W4 D' z/ x6 W# O9 r. o0 ?

  6. , ?% S) ~( @9 H1 R' F6 a
  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.结果可视化:5 m# o' T8 f/ ^  a1 V* q4 h
14.绘制真实值和预测值的对比图。
( ?' d3 T$ d* n& s! A, H, Z15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)
    / @\" @8 Q# T) q. D

  2. 9 f8 C% T; s) P: V' ?5 x: M
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')
    1 Z) f) l& C1 T! s( L* B

  4. & c2 r6 h+ E- n2 ^+ t* g% r
  5. grid on
    \" ]/ K/ l- v8 \& e. h7 ~: h
  6. % T, X; z/ L) A) L$ D+ V
  7. legend('真实值','预测值')
    0 z\" f: C\" y$ ^5 I\" q7 Q: O3 @
  8. ' Y$ ], K, h  M8 n3 O
  9. xlabel('样本编号'). [# p; E( T2 j2 Q5 b0 ]
  10. 2 H& z& c% n6 i% d
  11. ylabel('辛烷值')0 f+ w8 ~& L\" o, N  w) g

  12. ; e4 Z' g* S9 F/ X7 {' {$ X
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};% W3 {* D7 d0 ^# Y! K3 h5 C

  14. 3 M; E* b  [/ x- [. o8 M5 n' p
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。
6 O+ T* N' N% I' c8 @% e3 K1 x1 k+ h; Q+ }, A5 s
VeryCapture_20231122173210.jpg
, G2 Q6 L/ n0 h: o
# r) w6 C9 x3 i* Y1 X8 G0 P7 N

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, 2026-10-15 09:11 , Processed in 0.495590 second(s), 54 queries .

回顶部