QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:
, w+ s# b$ r* @. K3 Q; `* U* S; d9 {: @  g' P" n! d
1.数据加载和划分:( E: p3 N/ \# S
5 l' Y7 |" G! ~9 g4 R! I
2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。
; K  A  t. F, Z- H  h; D7 W. v3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat( Z3 G2 a1 r4 ]) v) M

  2. 3 b; [% x2 Q% ?3 n
  3. temp = randperm(size(NIR,1));5 G) ]7 ^: b9 X) y, A

  4. 3 E2 Q8 ?. w6 ?2 {; C8 N9 Z2 i* m
  5. P_train = NIR(temp(1:50),:)';8 w* t* _9 S# t: u+ D- ?
  6. 5 l. H( {0 }: @
  7. T_train = octane(temp(1:50),:)';1 p1 M% f& C# P5 Q6 w7 N4 @0 s
  8. ! V. ^7 Y8 S' R8 ~' r# ?
  9. P_test = NIR(temp(51:end),:)';
    1 Y, b) C+ L: ^+ K1 u
  10. / M& n% D5 N3 v; r  o4 d7 A
  11. T_test = octane(temp(51:end),:)';/ I; Y5 |# l! z: p' }+ I, j1 ?

  12. 1 u7 U$ s- [7 j2 P
  13. N = size(P_test,2);
复制代码
4.数据归一化:/ v: M2 y7 ~* ?" A) J$ m

' g3 W; ?' v4 u' }0 \) d# J5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);+ v; l& |& E3 b9 L3 s0 e
  2. . N* }  }- Z' u* P- Z  V# \  m9 b
  3. Pn_test = mapminmax('apply',P_test,inputps);
    % T/ X7 X) v0 P$ G+ a
  4. 1 {# m$ F: Q9 J1 G7 c
  5. [Tn_train,outputps] = mapminmax(T_train);6 |! ~% @3 N# I# h: R+ l% E\" i

  6. 2 b: @5 g: z\" N2 @, P
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:% Q3 c. O: |  x6 S0 l5 m+ c
/ ]8 B& ~6 g) Q; V. W/ w( q% `/ Y

$ N. T" w7 n& k* ?0 Y7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:1 `8 n7 d' v8 E/ o) p+ y
9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);! j% [# M\" Z: a
  2. ' H) l9 t4 a% z7 g3 L( `
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:
9 v( X( j, o! c* j) o11.将真实值和预测值组合成一个矩阵 result。
) x2 J0 B/ U! J6 P) ~) I8 F12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];
    * F) n0 |\" ?# h) `5 }  |7 o
  2. $ ?0 P% R: k3 |& S
  3. E = mse(T_sim - T_test);
    0 L5 j/ S0 h+ m' p

  4. $ E% t/ r; K2 {7 M
  5. N = length(T_test);# n# _  n3 L+ b; [& |
  6. 4 g  F2 `1 X3 C% ]7 R8 h
  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.结果可视化:( T3 y1 Q" h) K% _
14.绘制真实值和预测值的对比图。, A3 I8 [5 X. W) C5 w7 p  j6 Y
15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)
    ' \* w1 G% }3 k  b! r1 @, Z
  2. ! s) e5 u: S1 l7 [6 \
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')
    6 E, a3 \! |. t) n/ C3 ^
  4. 3 {3 V5 H; U) n* H\" U0 o2 e4 x  M
  5. grid on
    ; u! a( S! N/ O2 \- V6 I

  6. 6 m% f0 F) q. Y  G% }
  7. legend('真实值','预测值'): S, `, ~& `9 X$ r, B0 m' m  ^

  8. , X* _2 t& p* X\" y
  9. xlabel('样本编号')$ g7 E* f& c, @- R; n4 r
  10. \" ]2 G( P5 `\" @1 @! C- ~0 c# g- @
  11. ylabel('辛烷值')
    : q9 |\" R& O1 z& f- R; [) w
  12. 6 {0 n0 f5 K/ Z. F\" D6 j9 K
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};( n  H+ H: }: A2 Z

  14. % ^; u6 P, a# P
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。! o8 v7 e  [, V9 w

6 ]% o: z; A6 s: C, C) E( t; j VeryCapture_20231122173210.jpg
8 i5 b* p  H+ x5 w. T! I9 c
; q, j/ ~6 v1 n2 O9 w! g

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-7-10 01:22 , Processed in 0.335080 second(s), 55 queries .

回顶部