QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:
# P8 [8 y$ o. P
4 u% f5 P2 A7 Z9 }; L% ]1.数据加载和划分:" t6 P9 e4 r! `% J2 A5 e8 G
& T, m" U% f9 @$ f
2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。
4 _7 e) t; D, U& c- ?# T! w3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat2 ?6 f5 ^1 z; D$ B! q1 v5 Y3 ]5 h

  2. * A/ P, G# b1 ^  Y
  3. temp = randperm(size(NIR,1));
    5 k0 C% t( E. }$ T+ {

  4. ' i1 |# y3 o2 Y: ?\" [( p
  5. P_train = NIR(temp(1:50),:)';8 l- a( h2 T# I) i

  6. + Y( E9 P: C& p$ T0 P* J
  7. T_train = octane(temp(1:50),:)';7 F3 z. h+ K3 I  \# M

  8. 1 |1 F( p5 c6 y  k5 i# @) e( T% X
  9. P_test = NIR(temp(51:end),:)';5 m5 o* E* x1 U# x+ n2 i- k

  10. & Y0 t% @9 v$ P, r0 k
  11. T_test = octane(temp(51:end),:)';& _( N& Q4 A# d! l  |/ k
  12. 1 N7 m' r: Z4 i4 A. e5 s
  13. N = size(P_test,2);
复制代码
4.数据归一化:
; ]3 _: }( |6 A
. R2 D: y3 `) O0 i5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);
    / a) _1 i6 Z/ G' t3 I1 s2 O9 n

  2. ; _$ x3 ~. O. I4 g9 ~# M
  3. Pn_test = mapminmax('apply',P_test,inputps);1 b) x7 z3 y; M( b

  4. 0 ^, V1 }, ^$ ]. z; p) ?% L
  5. [Tn_train,outputps] = mapminmax(T_train);( n* h$ o: j! f  T4 z6 a' j5 k, \( E: d\" m

  6. 6 O7 f9 F, v( Z
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:' c' v  P- E, a4 f) F5 V; p4 I

1 Z* r8 Z. d3 f1 S6 c
# r, t9 x% B0 W# s* X3 O) ^9 ?7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:6 y  F4 Y0 y8 Q9 V( n3 G9 u
9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
    $ o6 D1 ~, `1 ^\" `! }  V

  2. 9 u0 D\" d0 R) j( p4 y7 g- ~
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:
6 U4 N0 O1 t' S7 P: x11.将真实值和预测值组合成一个矩阵 result。- X0 E$ S3 W$ O$ l8 u) _
12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];
    4 k% |8 A2 j$ |$ t$ n
  2. 9 L0 y( z$ Q/ {/ @  a
  3. E = mse(T_sim - T_test);
    ) T( |+ I% b+ M1 X: g' T
  4. & f; z$ D+ ]1 w- M
  5. N = length(T_test);
    1 m\" |+ o  @3 a' ?
  6. $ |4 K8 t2 h/ ~: t( C$ ^
  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.结果可视化:" s, T" ]) z- M4 W# I: ]
14.绘制真实值和预测值的对比图。
/ j+ m& L) H) a) n9 f+ r& E15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)\" F  e( [- J7 `

  2. 4 F+ b, ]( o\" c1 @7 I$ o\" W) h( E* J
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')3 B9 G! t; {2 y, V6 k4 a8 W$ l: o
  4. ' N9 ~: ?0 `0 M$ |  y/ _7 A
  5. grid on0 G+ ~$ |4 k! s9 v( Y# V$ S) M' o+ Z9 \

  6. 8 X3 }9 i, V- z) G: |( G* F8 f; N
  7. legend('真实值','预测值')
    3 E; Y. w3 @1 u3 x8 D+ {0 j  n
  8. 4 }& O& p5 w5 _8 `0 p5 y% d2 z
  9. xlabel('样本编号')# r- s  v# H; \: S/ A1 W
  10. & p; X3 J. ~/ ?* Z6 J  t
  11. ylabel('辛烷值')
    ; j: K8 u3 Y' b$ e+ C2 k
  12. * h# p4 [+ {7 z- s  }: a
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};
    + y! F. F. ]\" U+ e\" V

  14. ! ^7 }# f; b6 C
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。( Y: {$ C3 n7 F8 L' g

6 N8 t! \- X5 g& G1 z0 R& p  p4 P VeryCapture_20231122173210.jpg & n3 G" f& U- c: E3 c1 {
' L4 i$ ^# b4 [. U: ^* Q

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-4-14 12:07 , Processed in 0.431873 second(s), 55 queries .

回顶部