QQ登录

只需要一步,快速开始

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

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

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

1188

主题

4

听众

2931

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:* {, W; s) y' U- P3 Z$ \$ H

2 k1 p5 K: j- \5 J0 n* m# ?( v1.数据加载和划分:
. }6 \3 u! J: {$ Q( D2 i5 [2 a- S: h4 j1 A$ t8 H# ?8 ~
2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。( K/ V, L9 e- Q5 E  s; N
3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat
    1 p5 |! z# s' N+ S  t* g
  2. 0 V2 G/ e4 k1 G5 ?; _3 v
  3. temp = randperm(size(NIR,1));7 t4 U\" @; L\" N+ s! G

  4. - ]1 [* [' q& }9 O9 M) K6 y
  5. P_train = NIR(temp(1:50),:)';
    ; y) O3 |: I# G7 v

  6. 0 C- o/ b+ l, s* @) b( J% v( }+ _4 `
  7. T_train = octane(temp(1:50),:)';
    - v7 o% P: h& \# S! ?

  8. * h) D) Q& D4 S
  9. P_test = NIR(temp(51:end),:)';* N7 m( T9 M6 k. _) ^0 X/ N

  10. 3 g$ O8 x( a& p4 }; E
  11. T_test = octane(temp(51:end),:)';
    # O' i# k+ M0 B

  12. $ h- n6 T0 H\" O
  13. N = size(P_test,2);
复制代码
4.数据归一化:& p' ~- a! N9 h" {  I/ g
: R6 L* }$ {/ x5 b+ i9 Z, U
5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);8 N: T# i) k  y! q/ ^* }  q  }

  2. 3 e8 j/ m\" T2 u0 Z2 y
  3. Pn_test = mapminmax('apply',P_test,inputps);\" c9 Y1 F* i7 E. ]3 W

  4. : @% F; J* Z% n# T& ?: Q
  5. [Tn_train,outputps] = mapminmax(T_train);
    ! X5 r& w# o+ [: M5 x2 m

  6. : l6 g0 V2 _6 T5 T+ ~
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:! W0 ?% Q) F  c2 {& R
' E2 V0 G) p" K( n

. r7 a/ O: O) O$ t7 F$ _# t! A7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:
& S; s" @) ?- ]; v7 U* O9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
    ( [* |0 l/ n# H\" m* P

  2. 6 N9 D5 E; R0 k5 f6 ^- F1 P7 ]. j
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:) m) X6 X7 A* T0 w# l9 g2 Q
11.将真实值和预测值组合成一个矩阵 result。
0 Z& t" V4 V0 }; h/ @12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];
    2 u  ~/ G' Y0 Y* k/ i
  2. 8 m! G0 {0 ^\" V5 n# X- O: F/ P
  3. E = mse(T_sim - T_test);& d1 y; n3 i1 W, A, ~; Q; T- I
  4. + G8 W$ Q+ V5 {8 F5 V% i3 r7 [
  5. N = length(T_test);
    . a6 S! B- `& ~) `; @6 a  u

  6. 6 j- c) e  K& d
  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.结果可视化:( S9 u# {; P2 y: d' \+ B, p2 w+ t
14.绘制真实值和预测值的对比图。
7 B" ^$ ~1 t( f3 b% R, h5 L15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)
    4 T\" @8 Y9 E2 t: ]0 t' m
  2. 8 K: C' G' j; W: ^$ {
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')6 |6 w0 d# A4 p. W  G

  4. - b0 x  c& j- N- |/ }6 l- f5 S
  5. grid on/ _% `! g\" l3 X- |6 R8 K9 @0 g
  6. ' f9 e\" _\" A9 q; O6 |/ f1 G
  7. legend('真实值','预测值')4 V6 @- d; K4 R\" |: ~
  8. 6 t: a& s% u. \1 `1 ?# B
  9. xlabel('样本编号'): M+ G6 g2 j, p! q( a& L

  10. 7 P8 K# r! q* o' e0 U. b7 [
  11. ylabel('辛烷值')4 Z! K' \  A5 F) K1 k7 P3 r
  12. / e7 g: V0 P7 h2 M\" [$ ~8 p
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};
    , U) H1 e: W4 d

  14. 7 `( j% y3 k2 y& C, G
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。
' ?7 h0 P2 m2 ~9 Z
7 A/ g9 M7 c* c6 |% g. Z% F  ^1 O VeryCapture_20231122173210.jpg
5 @3 Z) O" q/ s: v% k- k$ d8 P+ g% |! j/ n  j. ~$ Y4 K5 v) r

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-5-26 10:37 , Processed in 0.307616 second(s), 55 queries .

回顶部