QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:) ]) U4 l) i" M
0 F8 [) O( O! t7 Y
1.数据加载和划分:  _# V. t: D* h7 j- r: f

( I# A( ~  x$ `5 H7 _2 v2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。
; s8 v, O0 i2 J* K& c+ h3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat/ j' i6 S8 F( L  S; l7 {
  2. . F/ Z6 O% e; u& I. h
  3. temp = randperm(size(NIR,1));
    9 A8 l& I* `) k- v5 z

  4.   r0 x7 [8 @  [9 ~
  5. P_train = NIR(temp(1:50),:)';
    - Z7 L3 a& Y- I9 q. V* w' G0 E

  6.   F' {3 J2 E9 K2 J, }) Y) F) h
  7. T_train = octane(temp(1:50),:)';* C9 v! T( b2 [: h6 g

  8. % @+ Z0 i6 k& D7 q0 J- t; q
  9. P_test = NIR(temp(51:end),:)';! y& |- }* K2 \9 M, y+ B

  10. 1 f\" g% x% w! V\" O8 M$ a9 ?  N2 c
  11. T_test = octane(temp(51:end),:)';
    ; F% A; v0 x1 c' z! ^
  12. ( y; L, s& n! x2 `5 q8 }
  13. N = size(P_test,2);
复制代码
4.数据归一化:5 i, H; `( ^- Z: }# ?
/ N+ q5 r& c& T$ {: U
5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);
    6 k/ w* [0 }# y9 j' |5 ~
  2. , C) Y8 p( U- I
  3. Pn_test = mapminmax('apply',P_test,inputps);2 ]9 u% @! c2 C- q! \2 X' a, z4 t

  4. ( h- @- `5 a0 k7 `
  5. [Tn_train,outputps] = mapminmax(T_train);# _3 X8 N& I4 m* `

  6. 0 P, \6 [1 j* X5 p
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:5 r5 H' K. t+ b" f+ X
+ q9 h3 F1 _' l- n( u: h

$ k' s( n# K" N5 G8 j' b9 d) U0 @7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:  S; V  k/ X+ v( Y8 u
9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
    . [0 S+ U! k- ^  w' }

  2. 9 z. k, D# ~! {8 S. T( j( l9 T
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:
8 Z& \0 ]/ {( X* [" j11.将真实值和预测值组合成一个矩阵 result。7 ]3 H. u. Z* }4 U# z  Z% T
12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];
    # e) ^; d: g. ]% i\" h$ s
  2. 3 ?5 M% d  c& B9 B* o5 j4 A! N8 l
  3. E = mse(T_sim - T_test);
    % Y. z  [1 h! r, X& p
  4. . L( K5 `  F\" j  o: T
  5. N = length(T_test);
    ; ~+ s. Y' ~1 c1 y1 ?' r+ e2 P
  6. 4 ?) z8 J- \3 _- y
  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.结果可视化:: c6 r- x. Y8 D0 o4 }& O
14.绘制真实值和预测值的对比图。
- n, D7 u, n5 U+ u15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)8 n& K- o- ?( Z! q
  2. 4 i4 J4 d4 Z: f9 S7 O
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')5 u! {! L, w0 J/ {  C% }# }' O
  4. ! E7 @9 Y* y0 v4 D: u
  5. grid on6 q: i: U/ b* ]0 R- K  L
  6. 1 ?; @5 g- ~6 W. n: y
  7. legend('真实值','预测值'): E( I$ P, H5 p: u& Y$ E1 j8 `8 B

  8. . O. Y. L1 o7 Z. O- x' D5 `
  9. xlabel('样本编号')& a( u5 a/ V$ s( b9 F' r

  10. 3 A1 \- @* F* c9 K
  11. ylabel('辛烷值')
    1 L1 M8 U  Z3 H4 a5 t) |\" d
  12. ( ?: E: s- c8 j3 _: X  X( k
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};5 J0 A6 e1 }; V# A. D
  14. 6 r7 B9 M' g  a  y. i5 |
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。
  a; I( V& O+ \! S' ^6 B( x6 @: ?  t9 d# Y4 s8 X
VeryCapture_20231122173210.jpg ; C3 J  f+ t, x
/ V4 T) P( l6 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, 2026-7-30 08:28 , Processed in 0.755166 second(s), 55 queries .

回顶部